Ganz kurz: JSFX sind Skripte, die in der Programmiersprache EEL2 (Embeddable Expression Language) geschrieben werden, und in der DAW – insbesondere in Reaper – dann als Effektplugins oder Tools eingesetzt werden können. EEL2 wurde von Cockos – den Entwicklern von Reaper – erschaffen und ist eine Open Source Programmiersprache, die C etwas ähnelt.

JSFX Editor in Reaper DAW

Aber von vorne: 2004, noch bevor es Reaper gab, hat Cockos versucht Software zu schreiben, die live auf der Bühne zum Einsatz kommt. Man wollte Gitarreneffekte programmieren, die dann auf einem kleinen Linux System laufen und in bühnentaugliche Hardware verbaut werden. Davon gab es auch einige Prototypen:

Quelle: cockos.com

Man entschied sich dann aber doch dafür, ein Software Business zu werden und keine Hardware zu produzieren. Aus JSFX ist dann irgendwann die Reaper DAW entstanden. Heute kann man noch die Möglichkeit der Programmierung eigener Effekte und Tools nutzen und innerhalb von Reaper JSFX Skripte schreiben und ausführen. Wenn man den FX Browser in Reaper aufruft, kann man auch sehen, dass etliche dieser JSFX Plugins bereits integriert sind.

Wenn man eigene Skripte schreiben will, dann öffnet man diesen FX Browser, indem man auf einen Track einfach das FX Icon anklickt, oder mit dem Keyboard Shortcut SHIFT + F. Dann geht man in das Menü des Browser unter FX und wählt hier die Option „Create New JS FX...„. Schon öffnet sich ein Fenster, in dem man einen Titel für sein Plugin und eine Beschreibung angeben kann und danach befindet man sich gleich im eigentlichen Plugin.

Standardmäßig wird ein Gain Effekt erstellt. Mit dem Button Edit... oben rechts öffnet sich der integrierte Code Editor und man kann sein Plugin schreiben.

Natürlich kann man auch vorhandene JSFX Plugins editieren. Jedes Plugin verfügt über den Edit... Button.

Wie installiert man weitere JSFX Plugins?

Reaper legt bei der Installation verschiedene Ordner an, unter anderem auch einen Ordner Effects. Unter MacOS ist dieser Ordner hier:

/Users/USER/Library/Application Support/REAPER/Effects

Unter Windows weiß ich jetzt nicht, wo sich dieser Ordner befindet. Das ist aber auch egal. Am einfachsten gelangt man hierhin, wenn man in Reaper unter dem Menüpunkt Options den Punkt Show Reaper resource path in Explorer/Finder … dann gelangt man sofort zu dem Ordner mit dem Effects Unterordner und anderen Resourcen.

In diesen Ordner Effects kopiert man einfach den Ordner oder die Datei des zu installierenden JSFX Plugins. Wo bekommt man diese her? Hier einige Resourcen mit freien JSFX Plugins:

https://github.com/JoepVanlier/JSFX

https://github.com/chkhld/jsfx

https://geraintluff.github.io/jsfx/

https://github.com/asb2m10/jsusfx/tree/master/scripts/liteon

http://ajaxsoundstudio.com/cookdspdoc/#download

https://stash.reaper.fm/v/25168/js_plugins.zip

Es geht aber auch noch einfacher. Reaper hat einen eigenen Package Manager! Dieser muss allerdings installiert werden. ReaPack bietet Zugriff auf diverse ReaScripts, JSFX, Extensions und Themes. Das Repositories können immer wieder erweitert werden und man ist immer up-to-date.

Nach dem Download erhält man einen Hinweis, wie ReaPack zu installieren ist. Hier kann man nun nach JSFX suchen und diese nach Belieben installieren. Wenn man weitere Repositories mit JSFX Plugins hinzufügen will, geht man wie folgt vor:

Man kopiert sich eine Link zu einem Repository und geht dann im Menüpunkt Extensions -> ReaPack - Import repositories… Im folgenden Fenster kann man nun den Link einfügen und das Repository importieren. Jetzt kann man nach Herzenslust im Repository browsen und die gewünschten Plugins installieren. Im FX Browser sollte man dann nochmal nach neuen Plugins scannen … fertig.

Kann ich JSFX Plugins auch in anderen DAWs nutzen?

Ja, aber das ist etwas schwieriger geworden. Zunächst einmal können Windows Nutzer eine Sammlung von ReaPlugs installieren. Dort ist auch der JSFX Code Editor ReaJS dabei. Wie gesagt, nur für Windows-Nutzer und die Plugin Sammlung wird auch nicht mehr gepflegt.

2019 hat ein findiger Programmierer namens J.P. Cimalando aus Frankreich mithilfe des JUCE Frameworks das VST Plugin YSFX programmiert. Dieses Plugin beinhaltet quasi ReaJS in einem VST Plugin. Somit kann man die JSFX-Umgebung in jeder DAW nutzen.

Das Problem ist nun, dass das Plugin wohl im Moment nicht weiter entwickelt wird. Auf der GitHub Seite gab es Links zu den Plugin für Mac, Win und Linux. Diese Links funktionieren allerdings nicht mehr. Was noch funktioniert ist das Compilen des Codes mithilfe des GitHub Repositories. Das ist allerdings nicht jedermanns Sache, auch wenn eine kleine Anleitung auf der GitHub Seite zu finden ist. Ich habe heute morgen den Code auf einem Mac kompiliert und das Plugin finktioniert tadellos.

Aber das GUI ist jetzt nicht so schön…

Die meisten der JSFX Plugins nutzen eine Standard-GUI, die man auch schon von den nativen Plugins in Reaper kennt. Das sieht alles etwas altbacken aus und ist manchmal auch nicht sehr hilfreich. Es ist natürlich klar, dass das Aussehen eines Plugins nicht die Funktion schmälert. Es sei denn, ein anständiges GUI hilft beim Verständnis der Funktionen eines Audio-Effekts.

Es ist definitiv möglich ein eigenes GUI für seine JSFX Plugins zu schreiben. Aber das ist natürlich nicht so einfach. Ein gutes Beispiel für ganz wunderbare GUIs sind die Tukan JSFX Plugins von John Matthews:

In diesem Stream spricht John Matthews über seine GUIs. Achso, hier ist übrigens das Repository für ReaPack, falls jemand die Tukan Plugins installieren will (sehr zu empfehlen).

https://raw.githubusercontent.com/TukanStudios/TUKAN_STUDIOS_PLUGINS/main/index2.xml

Unter’m Strich

Die Integration von JSFX in Reaper, oder mithilfe von YSFX in anderen DAWs ist eine mächtige Lösung für eigene Audioeffekte. Es wird einem recht einfach gemacht, den Code direkt in der DAW zu schreiben und auszuführen. Anständigen DSP Code zu schreiben, sollte natürlich nicht unterschätzt werden. Sowas schüttelt man nicht mal eben so aus dem Ärmel.

JSFX Programme sind recht effizient. Der Code kann komplex sein und wird trotzdem schnell und ohne großen Overload ausgeführt, ideal für DSP Anwendungen. Die Community ist recht groß und es gibt viele JSFX Plugins, die man nutzen kann und von denen man lernen kann, denn der Code kann jederzeit in Reaper oder YSFX studiert werden.