Ein kleines Tutorial, wie man sich mit Synthedit ein Wave-Player VST-Plugin erstellen kann, welche per MIDI-Keyboard verschiedenste Wave-Dateien abspielen kann.
Das fertige VST-PlugIn ist natürlich auch mit im ZIP-Archive am Ende dieses Tutorials und kann auch ohne Synthedit getestet werden.
Damit SyntEdit ein VST-PlugIn exportieren kann, brauchen wir zuerst einen leeren Container. Diesen öffnen wir und fügen 2 IO-Module ein. Einen für den MIDI-Input und einen für die beiden Soundausgänge (L+R).
Um die Funktionsweise auch innehalb von SynthEdit testen zu können, verbinden wir den Container für MIDI mit ein MIDI-In, und die Ausgänge mit SoundOut 1+2. Diese Verbindungen müssen wir vor dem Export als VST-Plugin natürlich wieder entfernen.
Als nächstes fügen wir in den Container ein Modul MIDI-to-CV ein. Für unsere Vorhaben benötigen wir davon das Gate-Signal um die WavePlayer-Module zu triggern, und das Pitch-Signal aus welchem wir die Notenwerte ableiten, da wir ja mit jeder Taste der MIDI-Tastatur eine eigenes WAVE-File abspielen möchten.
Damit wir den MIDI-Kanal in unserem PlugIn auswählen können, fügen wir als nächstes ein ListEntry-Control ein, welche wir mit dem Channel-Eingang des MIDI-to-CV Moduls verbinden. Ein weiters ListEntry-Control verbinden wir mit dem MonoMode-Eingang selbigen Moduls.
Der MIDI-Standart erlaub 128 (0-127) unterschiedliche Notenwerte. Da SynthEdit aber nur mit Werten von 0-10 Volt arbeitet fallen ein paar Werte weg. Das MIDI-to-CV Modul liefert uns, je nach Tastendruck auf dem MIDI-Keyboard einen Spannungswert (1 Volt/Oktave). Damit wir aus diesen Wert unterschiedliche Signale ableiten können, um die WavePlayer anzusteuern gehen wir wie folgt vor.
Wir fügen ein Voltage-to-List Modul ein, welcheswir mit dem Pitch-Ausgang des MIDI-to-CV Moduls verbinden. Als nächstes nehmen wir eine Flow-Control Switch(1->Many) und verbinden dessen Choice-Eingang mit List-Out Ausgang des Voltage-to-List Moduls, und den Input mit dem Gate-Ausgang des MIDI-to-CV Moduls.
Nun müssen wir dafür sorgen, dass das Flow-Control Switch(1->Many) genügend Ausgänge bekommt, damit die Notenwerte richtig aufgelöst werden. Dazu bedienen wir uns eines kleinen Tricks. Da die Ausgänge des Flow-Controls mit irgendwas verbunden sein müssen, stellen wir erstmal für die unteren Oktaven die verbindungen zu einem LED-Indikator, den wir „zu tief“ nennen, her. 4 Oktaven a 12 Töne macht 48 Verbindungen.
Da bei SyntEdit die geraden Voltzahlen immer auf ein a fallen, die MIDI Notenwerte aber einen möglichen Notenumfang von C-2 bis G8 haben, brauchen wir noch einen Offset-Wert damit es passt. Also nochmal 5 Verbindungen extra.
Normalereweise ist das mittlere a die Nummer 69 bei den MIDI-Noten. In unserer Liste ist es der Gateausgang 62. D.h. wir benutzen die Ausgänge 53 – 64 für die Töne c-h.
Jetzt kommen die WavePlayer zum Einsatz. Für die Demo hier nehmen wir jetzt einmal 12 Stück. Es ist zu beachten, dass einige Windows-Versionen (98, NT 4.0, 2000) nur 50-100 Wave-Dateien gleichzeitig handhaben können. Somit sollten wir bei 12 WavePlayern keine Probleme zu erwarten haben.
Das Flow-Control Switch(1->Many) stellt an den Ausgängen für jeden Ton das Gate-Signal zur Verfügung. D.h. wir verbinden jetzt je einen Ausgang der Reihe nach (aufsteigend) mit einem Wave-Player. Die Ausgänge der WavePlayer verbinden wir (L+R) mit dem 2. IO-Modul.
Damit wir den Überblick behalten, welcher Wave-Player gerate getriggert wird, bekommt jeder davon noch einen LED-Indicator dazu, der mit dem entsprechenden Gate-Ausgang an dem Flow-Control Switch(1->Many) verbunden wird.
Als nächstes verbinden wir die letzten notwendigen Gate-Ausgänge mit einem 2. LED-Indicator, den wir „zu hoch“ nennen.
Jetzt brauchen wir noch eine Möglichkeit, im PlugIn auch Dateien für die Wave-Player-Module laden zu können. Dazu verfügen diese über den „File Name“-Eingang. An diese schließen wir jeweils ein TextEntry-Modul an. Das ermöglicht uns später im Dateisystem nach passenden Wave-Dateien zu suchen, und diese dann zu nutzen.
Es ist vollbracht. Wir können dies jetzt als VST-Plugin exportieren. Nicht vergessen, vor dem Expotieren das MIDI-In und das SoundOut-Modul vom Container trennen.
Wir haben natürlich noch die Möglichkeiten mit Pitsch, ADSR, VCF, VCA, u.v.m. in den Sound einzugreifen. Doch das würde den Rahmen hier sprengen. Seid selber kreativ!
Hier nun die SynthEdit Datei und das fertige VST-Plugin als ZIP-Archiv:
Erstellt und getestet mit:
===================
SyntEdit Version 1.0160 Unicode
Samplitude 9 SE
Windows XP (SP3)
Tascam FW-1884 Audio und MIDI Interface
Roland MC-307 als MIDI Input-Device