Donnerstag, 7. Juli 2011

Visualisierung und Geschwindigkeitsanpassung eines Sounds

Die Visualisierung eines direkt eingeladenen Sounds (per Webadresse) in der MP3-Pitch-Player-Klasse geschieht über das Anzeigen des aktuellen Signals. Das Ändern der Geschwindigkeit passiert über die Manipulation derselben Daten. Da diese Algorithmen regelmäßig ausgeführt werden müssen – idealer Weise jedes Sample -, stehen diese Operation in einer Methode, die vom geworfenen SoundEvent SAMPLE_DATA aufgerufen wird.
Durch die Initialisierung des Sounds haben wir einen Byte-Stream erhalten, der im Wechsel Float-Werte für den linken und für den rechten Stereo-Ausgang enthält. Die aktuelle Soundposition (anhand der Phase=seconds*Abtastrate von 44,100Hz) stellt den aktuellen Index im Byte-Stream dar. Wir speichern uns die nächsten 2048 Werte vor und können an Hand dieser weiterarbeiten.
Für die Visualisierung werden sie auf ein BitmapData-Objekt gezeichnet. Die horizontale Achse beschreibt den Zeitverlauf, die vertikale Achse beschreibt die Amplitudenauslenkung. Anschließend wird darauf ein Blur-Filter angewandt um den gezeigten Effekt zu erhalten.
Visualisierung von Sounds in Strix 

Zum Verschnellern und Verlangsamen wird die Soundposition nicht um den gewohnten Faktor (1) inkrementiert, sondern um den durch die Variable speed definierten Faktor. Für Strix haben wir den Wertebereich auf -2 bis 2 festgelegt, sodass die Musik bis zu doppelt so schnell Rückwärts und Vorwärts gespielt werden kann. Die so ermittelten Float-Werte schreiben wir wieder in das Target des Events, welches dem gespielten Byte-Stream entspricht. 

Keine Kommentare:

Kommentar veröffentlichen