We can code a lot of things in REAPER: actions (ReaScripts), Web Interfaces, themes… But also Audio and MIDI FX, in a plugin dedicated script format called a JSFX, elaborated by Cockos. This in fact has been core of the software since the beginning, as REAPER was kinda design as a JSFX wrapper with tracks recordings feature. Being able to use open source FX scripts and code your own right in the app are still among the most distinctive REAPER feature.
Currently in v6.75, there are 223 JSFX in a fresh installation of REAPER. This is a lot! To help you in this exploration, I just made a webpage listing all this FX, with screenshots, and they sorted by categories! This allows to have a quick overview without loading all the FX on a single track like I did to make these images (note REAPER seems to handle 223 FX on a track pretty well ! 😁).
Most of these FX are really simple but are indispensable utilities like the Volume Adjustement effect, some MIDI adjustments FX like Transpose Notes, or the Channel Mapper. Most of them use the default GUI elements provided by the language (only sliders and dropdown). These FX titles are self-explanatory, you will find them easily in FX browser when you will need them.
Some are really experimental and should be considered more like code snippets for other coders. They are not always polished or customizable enough to be really useful. In some cases, there can be free alternatives which are better than the free JSFX version (the JSFX pitch shifters for eg are not as good as the KiloHearts free Pitch Shifter plugin for real time pitch shifting).
Some other JSFX can be considered a bit obsolete, mostly cause a more recent version have come since their release, but the initial version hasn’t been deleted for backward compatibility (like VolumePan Smoother VS VolumePan Smoother v5).
But there are also some really advanced ones with really extensive features set, like the recent Loudness Meter, the MIDI Sequencer Megababy, or, the most complex of all, the Super 8 sampler. General Dynamics could be part of this list but without Bézier curve, it is a bit hard to use. Anyway, these are good examples to show how capable the JSFX engine / language is, in MIDI, Audio and GUI domains.
I have uploaded the image and the page on ReaTeam/Doc repository, where you can find other documentation. It is a public repository, so if anyone want to add description / documentation under these, like there are on the outdated Cockos Wiki Website for some of the early JSFX, your contribution will be welcome!
Making this page implied quite some work. First elaborating a way to automate the screenshot process (I made a script for that, of course 😉). then a way to sort FX by categories (which required to have a spreadsheet with a column where I have manually entered categories names – these are not official – and a JavaScript file to handle and format this). I have also taken care of PNG compression so the page stay as light weight as possible.
I have made this documentation page to be able to have a reference article about the JSFX concept right on ReaLinks. In following posts, we will see how far the community have pushed JSFX limits.
Stay tuned! 🚀
PS: you can load JSFX in other DAW thanks to ReaJS from ReaPlugs FX pack on reaper.fm, or using the YSFX VST (work in progress, I will present it in a later article).