28. Mai 2012 ActionScript, Sound midi
Schon seit längerem interessiere ich mich für die MIDI Wiedergabe im Browser mittels Flash.
Da Flash von Hause aus kein MIDI-Format unterstützt, muss man tief in die Trickkiste greifen. Seit dem Flash Player 10 kann man dynamischen Sound mit Flash generieren. (SampleDataEvent) Es gibt mittlerweile eine Menge Projekte, die diese Möglichkeit nutzen und ein Online Musik Studio bereitstellen. Leider gibt es kein Projekt, das auf den General-MIDI Standard baut und es so erlaubt MIDI-Dateien zu importieren/exportieren.
Ich habe vor 2 Jahren schon mal einen Sequencer auf Basis des SiON Synthesizer gebaut, den ich aber nicht veröffentlicht habe.
http://sites.google.com/site/sioncenter/
Vom Prinzip her hat das auch gut geklappt, nur ist SiON nicht so gut dafür geeignet akustische Instrumente abzubilden. Hier ein Beispiel: http://wonderfl.net/c/rdrN
Meine neueste Endeckung ist ein Projekt, dass den C Synthesizer FluidSynth mit Hilfe von Alchemy nach Actionscript portiert hat. http://code.google.com/p/flash-midi-player/
Ich habe die swc Library um wichtige Funktionen erweitert, die es mir nun erlauben komplette MIDI-Dateien abzuspielen. Für das Parsen der MIDI-Datei habe ich einen eigenen Decoder programmiert.
Beim Starten des Players wird eine 1MB große SoundFont-Datei reingeladen, die die General-MIDI Sounds beinhaltet. Durch die SoundFont-Datei kann man die Qualität der MIDI-Wiedergabe steuern; man könnte aber auch eigene Soundbänke laden, die sich nicht an den GM-Standard halten.
Nun ein Demo meines MIDI-Players, den ich bald zu einem Sequencer ausbauen will:
[swfobj src=“https://www.bitworking.de/wp-content/uploads/2012/05/MidiPlayer.swf“ width=“215″ height=“210″ allowfullscreen=“false“ required_player_version=“10″ quality=“high“]
Durch weitere Optimierungen insbesondere die Compileroptionen „-as3 -optimize“ schluckt der Player jetzt deutlich weniger CPU und ruckelt bei keinem Lied mehr.
Schreibe einen Kommentar