View Single Post
Old 11-20-2018, 10:53 PM   #3
Human being with feelings
mschnell's Avatar
Join Date: Jun 2013
Location: Krefeld, Germany
Posts: 8,490

... continued from previous post ...

Deeply Embedded Applications

If a software system - done for whatever purpose - needs some audio functionality such as
  • recording multi channel sound snippets when certain events occur
  • play back sound snippets whenever appropriate
  • gather and analyze audio streams, and have the system react according to the results
  • ...
Reaper can be used, running in the background and do audio related work under control of the main software.

The main software and Reaper can reside on the same PC or on different PCs connected via a network, and they will communicated via
  • files
  • Midi streams
  • OSC streams (via TCP/IP)
Regarding communication via Midi, see the "Live Instrument Setup" sections above in this document, or the "Control surface" subforum, for more details.
Regarding OSC, Reaper provides a large set of OSC commands and status messages, which can be configured by providing a configuration file. Moreover, Reaper scripts can send OSC information, and can be triggered by incoming OSC messages.

If the main software is done as a "Reaper Extension", it can access the complete "Reaper API" (see the "developers" subforum for details) and control any aspect of Reaper's. But in most cases it's not a good idea do do the main functionality of a project as an "extension"-plugin.

The most versatile and nonetheless handy way to access the Reaper API from an external program on the same box or via a network is using "Beyond Python". When this Python script is instantiated in Reaper, (most of) the Reaper API is exported via OSC and hence via TCP/IP, using a protocol format compatible with Python classes. Hence an external Python program will (via the "Beyond" library) easily be able to access the Reaper API (and functions that additionally might be implemented side-by-side with "Beyond"). If the external program is not done in Python, it could directly use the OSC data stream "Beyond" provides, simulating Python classes.

If project specific audio and/or Midi processing is necessary, such functionality can be done by creating appropriate "JSFX" plugins (see the "developers" subforum for details), which can do audio processing in realtime with exceptionally low CPU overhead, and can be instantiated in Reaper tracks like any other audio/Midi plugins. The JSFX framework provides an IDE for creating and debugging JSFX plugins. The JSFX software has access to library functions for Midi and audio I/O and processing (including FFT), a standard user interface for the plugin, basic support for creating a graphical user interface, configuration support, file I/O, ...

A huge number of JSFX plugins and libraries are available in source code by Cockos and by the Reaper user community, covering all aspects of JSFX programming, to be used as examples for new creations (see "ReaPack" and the "developers" subforum).

Alternative stand alone software for Live playing with plugins

There are several commercial offers for such software that mostly are advertised to be easily configurable, which might be an advantage over a Reaper based solution. OTOH, a Reaper based setup will be a lot more versatile (especially because most of these don't feature scripts for handling "unusual" demands) and of course you can use Reaper as a normal DAW "additionally", not needing do buy another software and go through another learning curve.

Here is a list of some of these products:
(Maybe whoever can provide any experience with one of those programs might be inclined to provide them in a forum thread here...)

Regarding the financial cost, a Reaper system is hard to beat, regarding the very moderate price of Reaper itself, and the fact that all add-ons described in this paper are free, and of course the fact that close to any musician needs a full featured DAW, anyway, and Reaper can be used as well for media producing as for live playing. Hence the bill for using Reaper "Live" can be considered zero.

"DJing", "Live Looping", "Abelton Session View"-type and "Backing Track" applications
Some options are:I am not at all an expert on this, so anybody who can provide more information is invited to share it to be included here.

Using Reaper Live together with additional software

Last edited by mschnell; 05-08-2019 at 02:54 AM.
mschnell is online now   Reply With Quote