Grin logo
de en es fr
Shop
GRIN Website
Publicación mundial de textos académicos
Go to shop › Ciencias de la computación - Programación

Ein Musikspiel in Python. Entwicklung eines Side-Scrollers kontrollierbar durch Tonhöhe

Título: Ein Musikspiel in Python. Entwicklung eines Side-Scrollers kontrollierbar durch Tonhöhe

Proyecto de Trabajo , 2022 , 12 Páginas , Calificación: 1,3

Autor:in: Erik Winkelmann (Autor)

Ciencias de la computación - Programación
Extracto de texto & Detalles   Leer eBook
Resumen Extracto de texto Detalles

Im Rahmen der Übung sollte ein Projekt erstellt werden, welches Bezug zu den Themen der Übung hatte und in irgendeiner Form mit der Verarbeitung von Musikdaten zu tun hat. Da ich schon etwas Erfahrung mit dem Programmieren hatte und auch Spaß daran habe, habe ich mich entschieden, ein etwas komplexeres Projekt zu erstellen. Ich kannte bereits ein Spiel, das mit der Lautstärke der Stimme gesteuert werden kann („Scream Go Hero“). So kam ich auf die Idee, ein Spiel zu entwickeln, welches mithilfe der Tonhöhe gesteuert werden kann. Ich habe mich für einen Side-Scroller entschieden, da mir dieses Spielkonzept einfach genug erschien, um es nur mithilfe der Tonhöhe der Stimme oder eines Instrumentes zu steuern. Um die Tonhöhe in Echtzeit zu erkennen, wurde die Bibliothek PyAudio verwendet, die ich bereits in einer Hausaufgabe im Rahmen des Seminars etwas näher betrachtet habe. Zur Realisierung des Spiels wurde die Bibliothek pygame verwendet, für die es sehr viele Tutorials im Internet gibt.

Extracto


Inhaltsverzeichnis

1. Einleitung

2. Verwendete Bibliotheken

2.1 pygame

2.2 PyAudio

2.3 NumPy und SciPy

3. Verschiedene Algorithmen zur Tonhöhenerkennung

3.1 Nulldurchquerungsrate

3.2 Autokorrelation

3.3 (p)YIN-Kalkulator

3.4 Signalspitzenauswahl

4. Dokumentation des eigenen Programms

4.1 pitch_detection.py

4.2 __main__.py

4.3 loudness_threshold.py

5. Fazit

Zielsetzung & Themen

Die vorliegende Arbeit dokumentiert die Entwicklung eines Videospiels, das durch die Tonhöhe der Stimme oder eines Instruments gesteuert wird. Das primäre Ziel ist die Implementierung und Evaluierung verschiedener Algorithmen zur Echtzeit-Tonhöhenerkennung in Python, um eine intuitive Interaktion innerhalb einer Spieleumgebung zu ermöglichen.

  • Grundlagen der Audioverarbeitung in Python
  • Einsatz der Bibliothek PyAudio zur Audiostreaming-Integrierung
  • Analyse und Vergleich von Algorithmen zur Grundfrequenzbestimmung (Nulldurchquerung, Autokorrelation, YIN)
  • Strukturierung und Dokumentation eines Python-basierten Spiel-Projekts mit pygame
  • Evaluierung der Leistungsfähigkeit der Tonhöhenerkennung in einer Echtzeit-Umgebung

Auszug aus dem Buch

3.1 Nulldurchquerungsrate

Bei der Nulldurchquerung wird das Signal in der Zeitdarstellung betrachtet. Es wird, wie der Name schon sagt, bestimmt, wie häufig die Wellenform die Zeit-Achse durchquert. Die Nulldurchquerungsrate ist die Anzahl der Nulldurchquerungen in einer Zeiteinheit. Ist die spektrale Leistungsdichte der Wellenform nahe bei der Grundfrequenz, durchquert diese die Nulllinie zweimal in einer Periode. Wenn es allerdings viele höhere Partialtöne im Signal gibt, kann es durchaus sein, dass das Signal die Nulllinie häufiger durchquert, weshalb die Nulldurchquerungsrate zum Bestimmen der Grundfrequenz eines Signals nur bei simplen, sinusähnlichen Signalen zuverlässig funktioniert (vgl. Gerhard, 2003).

Zusammenfassung der Kapitel

1. Einleitung: Dieses Kapitel erläutert die Motivation für das Projekt, ein Spiel zu entwickeln, dessen Steuerung auf der Analyse von Tonhöhendaten in Echtzeit basiert.

2. Verwendete Bibliotheken: Hier werden die eingesetzten Python-Bibliotheken wie pygame, PyAudio, NumPy und SciPy vorgestellt und deren spezifischer Nutzen für das Projekt dargelegt.

3. Verschiedene Algorithmen zur Tonhöhenerkennung: In diesem Kapitel werden theoretische Grundlagen und Funktionsweisen von Algorithmen wie Nulldurchquerung, Autokorrelation und (p)YIN zur Frequenzbestimmung analysiert.

4. Dokumentation des eigenen Programms: Dieses Kapitel beschreibt die technische Umsetzung des Spiels, die Modularisierung des Codes und die konkrete Implementierung der Signalverarbeitungsskripte.

5. Fazit: Das Fazit fasst die Ergebnisse zusammen, bewertet die Zuverlässigkeit der gewählten Methoden und diskutiert potenzielle Erweiterungen für zukünftige Entwicklungen.

Schlüsselwörter

Tonhöhenerkennung, Python, Spieleentwicklung, Signalverarbeitung, Echtzeit-Analyse, Nulldurchquerung, Autokorrelation, YIN-Algorithmus, PyAudio, pygame, Echtzeit-Daten, Frequenzbestimmung, Klangsynthese, Audioprogrammierung, Softwareentwicklung

Häufig gestellte Fragen

Worum geht es in dieser Arbeit grundsätzlich?

Die Arbeit beschäftigt sich mit der Programmierung eines Videospiels in Python, bei dem die Spielmechanik durch die Tonhöhe eines Mikrofonsignals gesteuert wird.

Was sind die zentralen Themenfelder?

Die Arbeit verknüpft die Bereiche Informatik und Musikwissenschaft, insbesondere im Hinblick auf Audioverarbeitung, Algorithmenentwicklung zur Tonhöhenanalyse und Spielprogrammierung.

Was ist das primäre Ziel der Arbeit?

Das Ziel ist die Erstellung eines spielbaren Programms, das Audiodaten in Echtzeit auswertet, um basierend auf der erkannten Frequenz Aktionen im Spiel auszulösen.

Welche wissenschaftlichen Methoden werden verwendet?

Es werden verschiedene Verfahren der digitalen Signalverarbeitung (DSP) implementiert und hinsichtlich ihrer Eignung für Audio-Interaktion vergleichend analysiert.

Was wird im Hauptteil behandelt?

Im Hauptteil liegt der Fokus auf der Vorstellung der verwendeten Bibliotheken, der theoretischen Herleitung von Tonhöhen-Algorithmen und der detaillierten Beschreibung der Programmstruktur.

Welche Schlüsselwörter charakterisieren die Arbeit?

Die Arbeit lässt sich am besten mit Begriffen wie Python-Programmierung, Tonhöhenerkennung, Echtzeit-Audio, Signalverarbeitung und Softwarearchitektur in der Spieleentwicklung beschreiben.

Warum wurde Python für dieses Projekt gewählt?

Python bietet durch Bibliotheken wie pygame und umfangreiche wissenschaftliche Pakete wie NumPy und SciPy ein geeignetes Ökosystem für schnelle Prototypenentwicklung im Bereich Audio.

Welche Herausforderung bei der Tonhöhenerkennung wird besonders hervorgehoben?

Gerade bei komplexen Signalen mit vielen Obertönen stoßen einfache Verfahren wie die Nulldurchquerungsrate an ihre Grenzen, was eine kritische Auseinandersetzung mit der Genauigkeit der Daten erfordert.

Welche Rolle spielt die Geschwindigkeit bei der Ausführung?

Da es sich um eine Echtzeit-Anwendung handelt, ist die Performance der Algorithmen entscheidend, weshalb bei der Programmierung auf eine effiziente Blockverarbeitung geachtet wurde.

Welche Ausbaupotenziale werden im Fazit diskutiert?

Der Autor schlägt vor, die Robustheit der Frequenzberechnung durch multithreading-Prozesse zu verbessern und die visuelle Gestaltung des Spiels weiter zu animieren.

Final del extracto de 12 páginas  - subir

Detalles

Título
Ein Musikspiel in Python. Entwicklung eines Side-Scrollers kontrollierbar durch Tonhöhe
Universidad
University of Osnabrück
Curso
Einführung in das Programmieren mit Musikdaten in Python
Calificación
1,3
Autor
Erik Winkelmann (Autor)
Año de publicación
2022
Páginas
12
No. de catálogo
V1300937
ISBN (PDF)
9783346766519
ISBN (Libro)
9783346766526
Idioma
Alemán
Etiqueta
Python Musikinformatik Spiel Tonhöhe Algorithmus Nulldurchquerungsrate Autokorrelation YIN pYIN Signalspitzenauswahl Peak picking
Seguridad del producto
GRIN Publishing Ltd.
Citar trabajo
Erik Winkelmann (Autor), 2022, Ein Musikspiel in Python. Entwicklung eines Side-Scrollers kontrollierbar durch Tonhöhe, Múnich, GRIN Verlag, https://www.grin.com/document/1300937
Leer eBook
  • Si ve este mensaje, la imagen no pudo ser cargada y visualizada.
  • Si ve este mensaje, la imagen no pudo ser cargada y visualizada.
  • Si ve este mensaje, la imagen no pudo ser cargada y visualizada.
  • Si ve este mensaje, la imagen no pudo ser cargada y visualizada.
  • Si ve este mensaje, la imagen no pudo ser cargada y visualizada.
  • Si ve este mensaje, la imagen no pudo ser cargada y visualizada.
Extracto de  12  Páginas
Grin logo
  • Grin.com
  • Envío
  • Contacto
  • Privacidad
  • Aviso legal
  • Imprint