top  Introduction

This is a reference guide to programming JSFX audio-oriented effects for REAPER. JSFX are written in EEL2, a scripting language that is compiled on the fly and allows you to modify and/or generate audio and MIDI, as well as draw custom vector based UI and analysis displays.

JSFX are simple text files, which become full featured plug-ins when loaded into REAPER. Because they are distributed in source form, you can edit existing JSFX to suit your needs, or you can write new JSFX from scratch. (If editing an existing JSFX, we recommend that you save it as something with a new name, so you do you lose your changes when upgrading REAPER).

This guide will offer an outline of the structure of the JSFX text file, the syntax for writing code, and a list of all functions and special variables available for use.


top  JSFX file structure

JSFX are text files that are composed of some description lines followed by one or more code sections.

The description lines that can be specified are:

Following the description lines, there should be code sections. All of the code sections are optional (though an effect without any would likely have limited use). Code sections are declared by a single line, then followed by as much code as needed until the end of the file, or until the next code section. Each code section can only be defined once. The following code sections are currently used: