FluidSynth ist ein in C geschriebener Synthesizer basierend auf dem SoundFont 2 Format. Er ist Plattform unabhängig und besitzt eine relativ einfache Schnittstelle zum Erzeugen von Tönen. Für Python gibt es daher auch eine Reihe von Bindings. Sie erlauben einen mehr oder weniger direkten Zugriff auf die Funktionen der FluidSynth Bibliothek. Zwei bekannte Implementierungen sind pyFluidSynth von Nathan Whitehead und pyfluidsynth von MostAwesomeDude. Dabei handelt es sich um Bindings für Python 2.x. Leider scheint es bis heute aber keine Bindings für Python 3.x zu geben. Aus diesem Grund habe ich mich entschieden auf Basis der beiden erwähnten Bindings eine eigene Implementierung unter dem Namen pyfluidsynth3 zu entwickeln. Es handelt sich dabei zum größten Teil um eine einfache Portierung der beiden Bindings von Python 2 zu Python 3. Der größte Teil des Codes basiert auf der Implementierung von MostAwesomeDude, kombiniert mit Anregungen von Whiteheads Version. Zusätzlich wurden einige Features erweitert, wie eine komplette Schnittstellen Dokumentation, ein besseres Finden der Library und bessere Rückgabewerte für Funktionen. Das Projekt wurde auf GitHub in meinem Repository tea2code veröffentlicht. Es steht unter der LGPL und darf gerne von jedem verwendet werden.

Advertisements