REAPER Plug-in Extensions are additional components which can add functionality to REAPER. These plug-ins are not plug-ins in the traditional "DAW" sense of plug-ins, in that they are not "Effect" plug-ins, but rather can do many of the following things:
Add support for reading/writing audio file types
Add support for external control surfaces (MIDI or otherwise)
Add support for importing other project formats
Add audio editor support for filetypes
Access many services provided by REAPER, including audio file read/write, audio hardware access, samplerate conversion, pitch shifting/time stretch, etc.
Many other things
Extensions for REAPER/win32 should be written in C++ and compiled using MSVC (pure virtual interface classes are used and as such the C++ ABI must be compatible -- sorry, mingw users).
RAW PCM_source example (framework for adding media file read support)
RAW PCM_sink example (framework for adding media file write support)
Control Surface extension source code (LGPL) -- REAPER's Control Surface support (includes support for MCU, BCF2K, TranzPort, AlphaTrack, HUI, and FaderPort)
M3U (mp3 playlist) project importer (how to write a project file import plug-in)
NINJAM loop retreival plug-in (shows how to add menu items and actions, insert media to project, etc)
REAPER itself can generate the latest extension API header file, to ensure that development is in sync with a particular REAPER release version. The header will be written to the REAPER program directory (therefore you may need to run REAPER as admin, depending on your disk permissions).From REAPER, run this action:
[developer] Write C++ API functions header
The very popular SWS extension is an open source project, and contains many excellent examples of how to do useful things with the REAPER Extension SDK.