View Single Post
Old 08-09-2019, 08:23 AM   #1
mschnell
Human being with feelings
 
mschnell's Avatar
 
Join Date: Jun 2013
Location: Krefeld, Germany
Posts: 14,686
Default Collaboration on a Versatile Patch Changer -> "LiveProject"

Some years ago, I decided to revive my nearly forgotten life as a keyboarder. After some trying, I found that it makes sense to modernize the (still decently working) 25 years old equipment consisting of a KX-88 Master keyboard and a sound module.
Therefore, I needed to decide what to invest in.

Alternatives were (1) a complete keyboard such as a Dexibell Vivo, (2) a dedicated software such as (at that time top notch) “Forte” (see -> https://forum.cockos.com/showthread.php?t=213568#3 ), or (3) use Reaper to build a custom system, which I thought I could do, as Reaper provides the necessary programming capabilities and I was a programmer since 30 years. So I bought an “embedded” PC and started the project. *)
At first I used what already was there. SWS “LiveConfigs” can manage the patch switching – including putting unused VSTs to sleep – rather well. And it was easy to remote-control LiveConfigs by the Program Change buttons on the Master keyboard.

Later, I enhanced my equipment to include three keyboards and a Control Surface device with buttons, rotaries, and motor faders (see -> https://forum.cockos.com/showthread.php?t=213568#5 ). This setup is permanently in use for practicing and “on stage”.

To manage this setup I wrote a set of JSFXes that receive Midi messages from the Control Surface (and the keyboards) and send Midi Messages to the Control Surface and the VSTs (and the keyboards, and a Midi interface for recording).

The basic functionality is:
  • Three groups of patches are managed (one for each keyboard)
  • They hold 16 patches for the upper, 16 for the middle, and 32 for the lower keyboard.
  • Each patch holds the definition for an active track, potentially program change and/or preset information for the involved VSTs, and 17 live-tweakable (by the rotaries and faders) parameters that are sent to the active VSTs by Midi CC messages.
  • When pressing a button for patch change, the parameters are sent to the appropriate VSTs and to the Control surface to be shown in LED ring and faders position.
The system works great but there are some shortcomings:
  • “Spill over” when changing a patch for reverb tails or when holding a key or sustain pedal is not provided. This is not possible when using LiveConfigs.
  • The system is not done with ease of configuration in mind. Hence creating a new patch is not exactly easy to do, and the basic setting up in Reaper will take a decent lot of time.
  • While the setup can be used “headless” (without mouse, monitor and computer keyboard attached), and the live-tweakable parameters are saved during the “show” to be remembered when the appropriate patch is activated again, it’s not possible to save them to disk to recall them for the next “show”. On startup they are reset to the default that was set during the configuration and written by Reaper “save project”.
  • Regarding the programming logic it’s not nice that the parameter values are dynamically held at three locations: the Control surface, the JSFX, and the VST. Reading the parameter value from the VST when necessary would be more appropriate.

I know that there are alternatives to a LiveConfigs bases system (see -> https://forum.cockos.com/showthread.php?t=213568 ).
I did some JSFXes and ReaperScripts to help Pipelineaudio to do a Live setup for guitar that does provide “spill over” . I suppose he did get this working.
Moreover, Pipelineaudio successfully used "LBX Stripper" (see -> https://forum.cockos.com/showthread.php?t=182233 ) to do a different guitar setup (see -> https://pipelineaudio.net/guitarjack...-lbx-stripper/ ). I did not yet check LBX Stripper as there is no documentation whatsoever for same.

Now as I gained some experience with all this stuff, I might consider reworking the “Versatile Patch Changer” system to allow it to be used much easier by “non-programmer-type” musicians, making the Reaper based method to be considered on par with dedicated software products (see -> https://forum.cockos.com/showthread.php?t=213568#3 ), but a lot more versatile, and even with dedicated self-contained “performer” keyboards.

This would involve:
  • Still different “operation modes” for GUI based configuration and headless “Live show” situations.
  • A usable GUI for configuration (including automatically create and delete threads to hold the VSTis and VSTs).
  • Allowing to save the parameter settings of a patch in a headless situation.
  • “Spill over” for reverb tails (rather easy to do) and held keys / sustain pedal (Called "seamless patch change" with the Dexibell. Supposedly not that easy to do).
  • Integrated “Song” mode: versatile stepping a pre-programmed sequence of patches (see -> http://www.bschnell.de/patch.pdf ).
  • Playing “background tracks” (optionally integrated in the Song mode.
I suppose most of this can be done by scripts (JSFX and Reaper Scripts), but doing a versatile GUI maybe asks for doing a Reaper extension in C++. I did not do Reaper extensions, yet, but I am positive that this can be managed, as well.

I am not very experienced in designing and programming a GUI that covers a complex workflow such as configuring a system like this one. Hence It would make a lot of sense to find a group of volunteers who want to collaborate in this project.

-Michael

*) The decision to use Reaper finally was obvious. This provides the most versatility and flexibility and also the least cost. In fact the monetary costs for the first workable stage of the project were zero, as I could re-use my existing master keyboard and I needed to invest ion a DAW, anyway.

Last edited by mschnell; 09-07-2019 at 03:15 AM.
mschnell is offline   Reply With Quote