Go Back   Cockos Incorporated Forums > REAPER Forums > REAPER for Live Use

Reply
 
Thread Tools Display Modes
Old 10-22-2018, 09:57 PM   #1
kilna
Human being with feelings
 
kilna's Avatar
 
Join Date: Oct 2009
Location: San Diego, CA, USA, Earth, Sol System, Milky Way Galaxy
Posts: 30
Default Most hassle-free way to make non-MPE plugins work like MPE?

I love my Roli seaboards, and I also love the MPE instruments that are playable with them. However, I already have a lot of money invested in non-MPE plugins. In an ideal world, I'd be able to leverage these.

MPE allows you to pitch bend and adjust all sorts of CCs per each played note. It does this by changing the MIDI channel of each played note and having the associated control changes for a given note be locked to he channel that note was played on.

You can emulate MPE with non-MPE plugins... "all" you have to do is run a separate instance of the plugin responding to each MIDI channel. The rub... separate instances means separate FX parameters for each instance.

Ideally, I'd like a way to duplicate a plugin instance up to 16 times over, make each respond to a different input MIDI channel, and tie *all* parameters (perhaps via parameter modulation?) such that a change on the master is replictated to all instances. I know this will eat a lot of CPU and memory, I have a monster of a machine and these are typically light plugins, so I'm not concerned.

I'm a developer with a couple of decades of experience, but I've never developed for Reaper or in lua before. With enough patience I could probably write something to accomplish this goal, but I want to confirm something meeting some or all of my needs doesn't already exist.
kilna is offline   Reply With Quote
Old 10-22-2018, 10:18 PM   #2
mschnell
Human being with feelings
 
mschnell's Avatar
 
Join Date: Jun 2013
Location: Krefeld, Germany
Posts: 14,688
Default

Short answer: JSFXes can do this. Reascripts can't. So LUA etc is out of question, you need to do JSFX programming in EEL. No big deal if you are a software developer. We can work together on this.


Long answer:

I am intending to buy a Seaboard Rise 49, and so I am very interested in this discussion.

At firs I want to get my monophonic plugins e.g. (Kontakt based) Sample Modeling and (SWAM based) Audio Modeling run with the Seaboard. Does this already work for you without hassle ?

Then I'd like to use the Seaboard as a usual keyboard (as it is supposed to replace the "upper" masterkeyboard in my Live setup). Does this already work for you without hassle ?

Then I'll try to learn to play MPE instruments (e.g. the famous synth plugin that comes with the Seaboard). What did you find trying this ?

I found that Pianoteq in fact does handle MPE. I might want to try this, but it does not seem to make much sense for me. I don't know about Kontakt's ability to use MPE. Do you ?

Finally I'd like to create a setup with multiple monophonic instruments combined to an MPE instruments. I found that with the Seaboard you can set the count of channels used with MPE. Maybe this is enough for a recording type of work, but for Live, the count of available voices maybe needs to be dynamically managed. I suppose I rather easily can do a JSFX that distributes the messages to appropriate channels if necessary. What do you think ?

-Michael

Last edited by mschnell; 10-23-2018 at 06:47 AM.
mschnell is offline   Reply With Quote
Old 10-23-2018, 12:25 AM   #3
kilna
Human being with feelings
 
kilna's Avatar
 
Join Date: Oct 2009
Location: San Diego, CA, USA, Earth, Sol System, Milky Way Galaxy
Posts: 30
Default

I'm working with Blocks rather than a Rise (I have 4 of the 24 key blocks controllers arranged into 2 48-key keyboards so I can have accompaniment)... my understanding is the Roli Dashboard app is basically the same between the two systems. It allows you to configure a given keyboard in one of the following modes (from the Roli website):

MPE
MPE Mode optimizes the Block with any other hardware or software that supports MPE. When MPE mode is selected, the global channel is set to 1. Global messages – like from a sustain pedal – are sent on the global channel, while note information is sent on channels with the range set by MIDI Start Channel and MIDI End Channel, by default 2–16.
Multi Channel Mode
In Multi Channel Mode, the Block transmits data over multiple channels of MIDI. This setting makes it compatible with non-MPE multi-timbral synths.
Piano Mode
In Piano Mode the Block will behave like a conventional MIDI keyboard by turning off the Glide, Slide, Press, and Lift dimensions of touch. The Block transmits all MIDI data on a single MIDI channel only, making it compatible with mono-timbral synths.
Single Channel Mode
In Single Channel Mode the Block transmits all MIDI data on a single MIDI channel only. This makes it compatible with mono-timbral synths. Pitch bend, channel pressure, or Slide (MIDI CC 74) messages will apply to all notes equally.
So, in short, depending on your settings in Roli Dashboard it should support any of the configurations you described. You'll have to open the Dashboard and change the mode setting if you want to switch between them.

With regard to using it as a primary keyboard, I have rapidly adopted it as my go-to because of how expressive it is... there really isn't anything like it. However, I still prefer a regular hard keyboard for instruments that you don't expect to pitch bend, like a piano. The weight of real non-squishy keys gives a different kind of physical feedback... if you're like me you'll switch between the Roli or a traditional keyboard depending on what instrument you're playing.

With regard to my experience with MPE instruments... I own Equator, Strobe 2, Auras and the free Cypher2 player... I've fallen in love with doing slides, glides and pressure changes so much that I want every synth VST I own to be able to do the same thing (hence this post). It really has changed my entire approach to music creation, no more endless envelope tweaking... I can now do what used to take an hour of screwdriver tweaks and get the same expression in realtime.

With regard to managing the number of voices, you can configure in the Roli Dashboard how many MIDI channels to use in MPE and Multi Channel modes, so if you know you're never going to use more than 10 fingers at once (probably a reasonable assumption) you can trim that value back.
kilna is offline   Reply With Quote
Old 10-23-2018, 05:08 AM   #4
preferred.nomenclature
Human being with feelings
 
Join Date: Dec 2014
Posts: 371
Default

Quote:
Originally Posted by kilna View Post
Ideally, I'd like a way to duplicate a plugin instance up to 16 times over, make each respond to a different input MIDI channel, and tie *all* parameters (perhaps via parameter modulation?) such that a change on the master is replictated to all instances.
That would be amazing. It doesn’t exist as far as I know. I think I’ve seen seen scripts that do pieces of what you describe, will try to find and point you to them.
preferred.nomenclature is offline   Reply With Quote
Old 10-23-2018, 06:34 AM   #5
mschnell
Human being with feelings
 
mschnell's Avatar
 
Join Date: Jun 2013
Location: Krefeld, Germany
Posts: 14,688
Default

To begin with, did you try to limit MPE to 2 channels (2+3) and use two monophonic VSTs each on one of the channels ?

I do know that AudioModeling is closely affiliated with Roli and hence their SWAM instruments (I do have some of those) should be easily supported.

-Michael
mschnell is offline   Reply With Quote
Old 10-23-2018, 09:57 AM   #6
kilna
Human being with feelings
 
kilna's Avatar
 
Join Date: Oct 2009
Location: San Diego, CA, USA, Earth, Sol System, Milky Way Galaxy
Posts: 30
Default

There are 2 approaches you can take, I've only done one of them so far.

The first, which I have done, is to create a separate track for each note-specific VST instance, and set the track's MIDI-in to just one of the MIDI input channels. I made the same number of these to match the number of MIDI channels the Roli was configured to output on. This worked when manually configured.

The second method, which I have not done yet because I only just concocted it, is to create a single track with a large number of outputs... and set the "MIDI input" in the IO section of the plugin connector for that specific FX instance to "MIDI Bus 1" (which I assume limits to MIDI channel 1 since there are 16 busses listed)... and then route audio output channels 1+2 of the VST as appropriate (in the case of the second instance, channels 3+4, in the case of the 3rd 5+6, etc). Ideally this would be the approach; I don't want to have a ton of separate tracks if I can avoid it, and from what I was reading it seems that parameter modulation works natively only within a track. Hopefully the multiple output channels can be mixed down to stereo within the FX chain.
kilna is offline   Reply With Quote
Old 10-23-2018, 01:24 PM   #7
mschnell
Human being with feelings
 
mschnell's Avatar
 
Join Date: Jun 2013
Location: Krefeld, Germany
Posts: 14,688
Default

You don't need multiple tracks at all.

You can place all necessary instances of the plugin in a single FX track's "chain" and to the appropriate routing within this track:

Audio: "Pin-Routing" (using the [2 in 2 out] (or similar) button and assign each plugin to two (of the 64 possible) channels, e.g. 1+2, 3+4, 5+6, .... At the end you can place some pluging (e.g. ReaEQ) and sum the appropriate channels at the two inputs of same.

Midi: most plugins just pass through the midi stream. If it does not, there are options to froward the stream to the next plugin.

Now you can simply set each plugin to receive a dedicated Midi channel.

-Michael
mschnell is offline   Reply With Quote
Old 10-23-2018, 01:36 PM   #8
kilna
Human being with feelings
 
kilna's Avatar
 
Join Date: Oct 2009
Location: San Diego, CA, USA, Earth, Sol System, Milky Way Galaxy
Posts: 30
Default

I believe we're saying the same thing in different ways... pin routing is colloquially the "plugin connector" I referred to, as it's described in the UI/docs. One thing you might not have caught though is that in the upper right of the pin routing pop-up for a given FX entry, there is an "IO" button... it's a menu to set various audio and MIDI I/O aside from the audio pin grid. There, you can set the MIDI input to a given "bus"... I assume these busses are channels, since there are 16. So (if my assumption is correct) the setting of the MIDI channel doesn't have to be within the VST itself if the VST responds on all MIDI channels.
kilna is offline   Reply With Quote
Old 11-04-2018, 05:18 PM   #9
Bansaw
Human being with feelings
 
Bansaw's Avatar
 
Join Date: May 2016
Posts: 430
Default

Quote:
Originally Posted by kilna View Post
I'm a developer with a couple of decades of experience, but I've never developed for Reaper or in lua before. With enough patience I could probably write something to accomplish this goal, but I want to confirm something meeting some or all of my needs doesn't already exist.
@kilna Can I ask - do you know how to make 32bit plugins work properly? I have a 9-year old plugin but it works fine in Reaper32 bit but will no longer bridge into Reaper64 bit.

Actually it did work in Reaper64 bit but then I upgraded from Win7 to Win10 and then it stopped (just freezes up Reaper when I tried to load it up).

I wondered if its was the C++ libraries so I installed them but nothing worked.
But again, it works fine in Reaper32 bit in Win10.
Any ideas? (I tired JBridge etc...)
Bansaw is offline   Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -7. The time now is 12:43 AM.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.