View Single Post
Old 11-20-2018, 11:09 AM   #2
mschnell
Human being with feelings
 
mschnell's Avatar
 
Join Date: Jun 2013
Location: Krefeld, Germany
Posts: 14,793
Default

... continued from previous post ...

Selecting Patches

With instrument setups, a main task for the Live system is switching sound flavors ("programs", "patches") on the fly due to requests of the player by commands from
  • the computer keyboard (mouse based controlling does not seem very appropriate)
  • buttons on a (master-)keyboard or e.g. Wind Controller
  • a dedicated "desktop" control surface device
  • a pedal featuring one or more buttons
Such button actions might directly select a patch or allow for stepping a pre-programmed sequence of patches according to the sequence necessary for performing a song.

In Reaper, there are lots of ways the plugin configuration can be modified to create a different sound. E.g.:
  1. send parameter values to plugins (e.g. as CC messages) via Midi.
  2. send Midi program change messages to plugins via Midi
  3. modify plugin parameters via plugin automation variables
  4. activate/deactivate plugins
  5. push presets onto plugins
  6. push effect chains onto the tracks' FX chains
  7. push track templates onto tracks
  8. switch routing Audio/Midi from a single source track to one of multiple tracks, later to be summed to an output signal
  9. switch routing Audio/Midi from one of multiple tracks to a single output track
  10. mute/unmute tracks
  11. switch project tabs

The "Live" tools to be instantiated in Reaper on that behalf need to adhere to these user commands, if possible show an updated status display somewhere, and modify the plugin parameters and Reaper configuration according to the pre-programmed patch makeup.


LiveConfigs

The most commonly used tool on that behalf is "LiveConfigs" (updated manual -> www.bschnell.de/LiveConfigs_1.pdf ) that comes with the "SWS" Reaper extension. LiveConfigs provides an easy to use GUI (laid out as a spreadsheet) that directly offers the options noted above as (5.), (6), (7.), (8.), and (10.). Using additional tools, other options can be accomplished: (2.) by the "Slider To Midi PS" JSFX (available via "ReaPack", for (3.) in many cases the "ReaControlMidi" VST (comes with Reaper) is helpful, more sophisticated tricks will need dedicated JSFX or ReaScript programming.

A problem with LiveConfigs that arises in many setups is, that LiveConfigs "learns" Midi CC messages to switch patches. This means, it needs to see CC messages in the Reaper Control path, while Midi equipment often sends live playing Midi messages to the tracks, holding the VSTs and VSTis. If the equipment does sends CC messages for patch changing (e.g. a by a knob), the "control" option in the Midi device setup in the Reaper preferences can be activated to route these messages additionally to the control path. If the Midi equipment sends different messages (such as Program-Change or Note-On), the setup needs to be done in a way that they are preprocessed. Here the said "control" option should be off, and the Midi stream should be routed to a track. In the effect chain, a JSFX-plugin (e.g. "Midi Convert To CC") can modify such messages to be CCs and then the "MidiToReaperControlPath" VST (by Jeffos, -> https://forum.cockos.com/showthread.php?t=43741 ) needs to route the messages to the Control Path, where LiveConfigs can see them.


Midi CC table

LiveConfigs is designed according to the idea to switch patches in the most effective way, using as little CPU power as possible. To allow for this, it provides the option to mute all tracks managed by LiveConfifgs and unmute only the one (per "page") that is actually playing. By default, in the Reaper preferences, "Do not process muted tracks" is enabled, and hence the not selected patches don't consume CPU power. (These tracks need to be not armed, so you need to do appropriate Midi / audio routing for their inputs). Due to this design alternative patches never can be heard at the same time. LiveConfigs always fades out the previous patch and then fades in the next, creating a small gap in between, preventing cracks and glitches, but also any sound cross-fade or a "spill over" of a reverb tail.

In usage cases that require creative use of patch changing, this might be a problem. An alternative to LiveCongig, offering similar results, but not providing an easy to use GUI for configuration is using a set of multiple JSFX plugins and Reaper Scripts. With this system - that resides in the realm of the tracks rather than in the realm of the ControlPath, as LiveConfigs does - the reaction to incoming CC messages for patch changing is defined in a file that needs to be created by a standard text editor, and the audio switching is done by fader plugins, that also can control track muting/unmuting via actions that trigger a Reaper Script. While being perfectly versatile, the setting up of this system of course is not trivial, especially if a great count of different patches is needed.

The main components (provided via ReaPack) are:
  • Midi CC table Reads a configuration file and - when receiving a Midi message to select a new patch - creates CC messages to control the patch changing infrastructure.
  • Midi Fade X Fades in and out the audio streams of the branches in the setup. After fading out, a message can be generated to trigger muting the track. The unmuting of the tracks will be defined by the configuration file for "Midi CC Table". (These messages need to be routed down via MidiToReaperControlPath).
  • Midi Auto Engage creates messages to "safely" switch on and off some functionality according to the value of a continuous control such as generated a volume pedal.
  • Mute or unmute track X Reaper Script to mute/unmute tracks according to an action triggered by an incoming Midi CC message.


LBX Stripper

Might be a very versatile tool for several kinds of Live applications, but I did not find any straight forward instructions on what it can do for "Live" users and how to use it, in plain English. But see:
-> https://forum.cockos.com/showthread.php?t=182233,
-> https://www.youtube.com/playlist?lis...iKXcTIfeLcEjEd.
-> https://pipelineaudio.net/guitarjack...-lbx-stripper/ (In this instruction I suppose the parts about "learning" an action to the faderbox and other plugin should be replaced by simply assigning the midi message by [Param] -> FX Paramater List -> "Parameter Modulation / Midi Link".),



Song or Song-Position stepping

On top of a patch switching system, for Live performances it might be viable to use software that allows to step through a list of patches predefined according to a sequence of songs, and/or according a the sequence of necessary sound for sections of songs. A description of such software done as a set of JSFX plugins, can be found here -> http://www.bschnell.de/patch.pdf .


.. continued in next post ...

Last edited by mschnell; 08-04-2019 at 04:48 AM.
mschnell is offline   Reply With Quote