Old 12-31-2016, 03:24 PM   #1
Omni
Human being with feelings
 
Join Date: Feb 2008
Location: Albuquerque NM
Posts: 322
Default External MIDI Controller Patch Change

My drummer is using a Roland TD3 kit. It sounds like garbage. So we run the MIDI from the module into my laptop with Reaper, and use Superior Drummer 2.0 for the samples. We'd like to be able to change presets in Superior Drummer on the fly using an external MIDI event.

*I'm not asking for Reaper to change patches for us automatically when we reach a point in a predefined song. I'm asking for the opposite. We want to change patches at will with the press of a physical button, or foot switch, or maybe even a drum pad.

Unfortunately Superior Drummer does not actually support patch changes via MIDI still. (Do you know drum software that does?) So I'm trying to figure out the most efficient way to do this. I was thinking of loading 2 (or more) instances of SD2 with different presets into single track, and enabling/disabling them. Or perhaps set up two unique tracks and mute/solo them. Arming or Disarming the record might work even better, allowing "spill-over" of the sounds rather than abruptly killing the output of one track/plugin and starting the other.

RAM is not really a problem. The laptop has 8 GB and SD2 only uses about 600MB per instance.

CPU usage is a potential issue with multiple instances running, but I'd have to experiment to see how bad it will be. Muting a track entirely could avoid CPU issues, but would lose the spill over of cymbals and such.

The main issue I'm concerned about is, how exactly would I set up Reaper to respond to a MIDI Device's Program Change message or a particular Note message, and have Reaper perform the task of switching to the desired instance? I get the impression that Custom Actions may be part of the key here, but I've never used them and really have no idea where to begin.

Any help would be appreciated.
Omni is offline   Reply With Quote
Old 12-31-2016, 07:07 PM   #2
Outboarder
Human being with feelings
 
Outboarder's Avatar
 
Join Date: Feb 2014
Posts: 834
Default

Hi

Try saving the desired SD kits in reaper's preset manager.

Then go to action list type preset in search filter.

> SWS/S&M: Trigger next preset for selected FX of selected tracks
> SWS/S&M: Trigger previous preset for selected FX of selected tracks

Click add(shortkey) then bind above actions to midi(note or CC).

__________________
Outboarder Scripts

Last edited by Outboarder; 12-31-2016 at 08:13 PM.
Outboarder is offline   Reply With Quote
Old 12-31-2016, 07:58 PM   #3
chriscomfort
Human being with feelings
 
chriscomfort's Avatar
 
Join Date: Aug 2009
Location: NYC
Posts: 1,805
Default

BFD 3 responds to program changes through program change playlists. Which can be saved and customized. Good stuff.
__________________
http://chriscomfortmusic.com
chriscomfort is offline   Reply With Quote
Old 01-01-2017, 01:35 AM   #4
mschnell
Human being with feelings
 
mschnell's Avatar
 
Join Date: Jun 2013
Location: Krefeld, Germany
Posts: 14,686
Default

Quote:
Originally Posted by Omni View Post
We'd like to be able to change presets in Superior Drummer on the fly using an external MIDI event.
This is a typical question about LivePlaying VSTs using Midi Controllers with Reaper.

I did a rather in-depth description on how this can be done in multiple situations -> http://www.bschnell.de/LiveConfigs_1.pdf . If you want a shortcut, we might discuss this here.

What midi events do you want to use for switching presets (e.g. some "note on", "Controller Change" or "program Change" message) ? E.g. the TD3 might feature "program change" buttons.

If not the TD3 itself, what device is supposed to generate such events and how are they going to be fed to Reaper ?

What midi events (if any) can "Superior Drummer" use to switch patches ?

If it can't, can it switch patches by means of VST parameters ? (I.e. can you save "presets" for the plugin in Reaper and load those to change the "patch"es ?) Muting/unmuting several tracks is discussed in the said document. Works fine, does not add CPU time (as Reaper can disable muted tracks), but is not the best way in certain situations.

-Michael

Last edited by mschnell; 01-01-2017 at 05:16 AM.
mschnell is offline   Reply With Quote
Old 01-03-2017, 02:01 PM   #5
Omni
Human being with feelings
 
Join Date: Feb 2008
Location: Albuquerque NM
Posts: 322
Default Got it!

Outboarder - First I had to install the SWS package, and then found out I had to "Enable input for control messages" on my MIDI device input as well. After that, I was able to set up Reaper presets like you showed and it works like a charm! Big thanks!

chriscomfort - I'll check BFD out! I've heard of it, but haven't used that particular drum program yet. Now that Outboarder's advice worked, I probably won't need a new program anyways.

mschnell - I'd actually skimmed through the LiveConfigs guide a couple times prior to posting. It was a bit over my head since I'm new to Actions, and also said it's meant for an older version of Reaper. However, I'll invest some time into learning more because it would certainly be very useful if my band gets more serious. Much appreciated!

BTW, the TD3 does have program change buttons, but they're very small and hard to hit in the middle of a song. They are also notorious for the + button breaking and barely working. Both TD3's I've had contact with had the same problem.

SD2 doesn't support switching patches, but the Reaper presets appear to work as desired. I'll have to play with it some more now that I have the actions working. I might want 2 tracks that are unmuted, and just enable/disable input on them so that the cymbals spill over when switching instead of stopping abruptly.
Omni is offline   Reply With Quote
Old 01-03-2017, 04:09 PM   #6
mschnell
Human being with feelings
 
mschnell's Avatar
 
Join Date: Jun 2013
Location: Krefeld, Germany
Posts: 14,686
Default

Quote:
Originally Posted by Omni View Post
I'd actually skimmed through the LiveConfigs guide a couple times prior to posting. It was a bit over my head since I'm new to Actions, and also said it's meant for an older version of Reaper. However, I'll invest some time into learning more because it would certainly be very useful if my band gets more serious.
That is why I rewrote (part of) the LiveConfigs guide and added some new parts. The "LiveConfigs_1.pdf" version is up to date and more comprehensive.


Quote:
Originally Posted by Omni View Post
the TD3 does have program change buttons, but they're very small and hard to hit in the middle of a song.
So what kind of controller buttons do you intend to use ?

-Michael
mschnell is offline   Reply With Quote
Old 01-03-2017, 04:49 PM   #7
Outboarder
Human being with feelings
 
Outboarder's Avatar
 
Join Date: Feb 2014
Posts: 834
Default

@Omni
Your are welcome.
Glad that it worked for you.
__________________
Outboarder Scripts
Outboarder is offline   Reply With Quote
Old 01-03-2017, 07:24 PM   #8
Omni
Human being with feelings
 
Join Date: Feb 2008
Location: Albuquerque NM
Posts: 322
Default

Quote:
Originally Posted by mschnell View Post
That is why I rewrote (part of) the LiveConfigs guide and added some new parts. The "LiveConfigs_1.pdf" version is up to date and more comprehensive.
You're the co-author? Cool! Nice to meet you.

Quote:
Originally Posted by mschnell View Post
So what kind of controller buttons do you intend to use ?

-Michael
I have a Maschine MKii I'm testing with now. I'm using the 16 pad for this. The four bottom pads are set up with Program Change messages, and have the other 12 pads with regular MIDI notes, and they're triggering open hi hats. For future purposes, I was considering using something more like this: http://www.guitarcenter.com/KAT-Perc...ound-Module.gc, which would be easy to hit with a drum stick whenever you wanted to switch, rather than trying to tap a button with your finger.

So far I set up 4 separated tracks with instances of SD2 (and different presets), then 4 actions using Program Change messages on the bottom 4 pads. Each custom action is set to first "Unarm all track for recording", then "Toggle record arm for track XX" where XX is tracks 01-04. That way the previous cymbal hits ring out while the switch-over occurs, and I can switch to any of the 4 patches directly without banking up/down. Works great, except I'm noticing some delay in responsiveness while switching. For example, if I switch from track 1 to track 2 while playing quarters notes and hitting the switch pads on the beats in between, the first quarter note is being missed during the switch if the BPM is anything more than about 120.

That's a bit annoying, but workable. My drummer will just have to learn to do the switch just after the last hit of the previous "kit" to give it time to switch and be ready for the next hit.

Thoughts on that? Would CC messages be faster for some reason? Due to the necessity of both actions (disable all, enable one), I'm not able to test if a single action is faster. I guess I could set up just 2 tracks and A/B them to see if a single toggle command is faster.
Omni is offline   Reply With Quote
Old 01-03-2017, 11:36 PM   #9
mschnell
Human being with feelings
 
mschnell's Avatar
 
Join Date: Jun 2013
Location: Krefeld, Germany
Posts: 14,686
Default

Quote:
Originally Posted by Omni View Post
You're the co-author? Cool! Nice to meet you.
It's not an official document (so it's hosted on my own server), but I rewrote it with permission of Jeffos. Please let me know if you have any suggestions for improvement !

BTW.: You don't need to use actions. In fact I do play a rather complex setup with multiple VSTis, two master keyboards and Breath controller, and don't explicitly use actions, but just the mute/unmute and setup change feature LiveConfigs offers.

-Michael

Last edited by mschnell; 01-04-2017 at 12:23 AM.
mschnell is offline   Reply With Quote
Old 01-03-2017, 11:40 PM   #10
mschnell
Human being with feelings
 
mschnell's Avatar
 
Join Date: Jun 2013
Location: Krefeld, Germany
Posts: 14,686
Default

Quote:
Originally Posted by Omni View Post
The four bottom pads are set up with Program Change messages...
So your configuration will be very similar to mine (and is decently described in the said document). I use some 40 of the 96 program change buttons on the masterkeyboards which send PC messages.

If some other device sends other midi messages (e.g CC or Note On) such can be converted with simple JSFX scripts. (I can help with that if necessary.) Here it is even possible to do a complex preprocessing. (e.g. if you want to use two or more hits at the KAT to define a certain Program Change.)

Quote:
Originally Posted by Omni View Post
My drummer will just have to learn to do the switch just after the last hit of the previous "kit" to give it time to switch and be ready for the next hit
In my setup the patch change is done without any noticeable delay. For this in Kontakt, I needed to use internal patch changes by sending it Program change messages rather than using setup changes. This also is described in the said document.

BTW.:

On top of a LiveConfigs setup you might want to take a look at -> http://www.bschnell.de/patch.pdf. Here (in favor for a friend of mine who plays virtual wind instruments), I did a set of JSFXes that do pre-configured patch changes with regard to to the progression of a performance / song using PC keyboard hits. I plan to extend this to receive Midi events.

-Michael

Last edited by mschnell; 01-04-2017 at 12:23 AM.
mschnell is offline   Reply With Quote
Old 01-05-2017, 11:31 PM   #11
mschnell
Human being with feelings
 
mschnell's Avatar
 
Join Date: Jun 2013
Location: Krefeld, Germany
Posts: 14,686
Default

Quote:
Originally Posted by mschnell View Post
(e.g. if you want to use two or more hits at the KAT to define a certain Program Change.)
Thinking more about this, I suppose a viable way to support a drummer with patch changing via the KAT might be to define one of the pads to be the "execute" button, and a pattern played during a second before hitting same can be recognized and hence lots of different patches can be selected.

If configured to accept zero to three hits on the remaining three pads, 3⁰+3¹+3²+3³ = 40 different patches can be selected.

-Michael

Last edited by mschnell; 01-06-2017 at 09:04 AM.
mschnell is offline   Reply With Quote
Old 01-08-2017, 05:35 PM   #12
Omni
Human being with feelings
 
Join Date: Feb 2008
Location: Albuquerque NM
Posts: 322
Default

Quote:
Originally Posted by mschnell View Post
Thinking more about this, I suppose a viable way to support a drummer with patch changing via the KAT might be to define one of the pads to be the "execute" button, and a pattern played during a second before hitting same can be recognized and hence lots of different patches can be selected.

If configured to accept zero to three hits on the remaining three pads, 3⁰+3¹+3²+3³ = 40 different patches can be selected.

-Michael
That'd be pretty cool, but pretty overkill in this particular situation. As we define more songs and have the need for additional kit sounds that would be helpful.
Omni is offline   Reply With Quote
Old 01-08-2017, 11:29 PM   #13
mschnell
Human being with feelings
 
mschnell's Avatar
 
Join Date: Jun 2013
Location: Krefeld, Germany
Posts: 14,686
Default

Quote:
Originally Posted by Omni View Post
That'd be pretty cool, but pretty overkill in this particular situation. As we define more songs and have the need for additional kit sounds that would be helpful.
Let me know when you have managed to use LiveConfigs (or whatever, such as using Program change in Kontakt) to to switch the patches in an appropriate way and you have the KAT.

For the fun of it, I already started to do a JSFX that converts such stroke patterns on the four pads (supposedly coming in as midi note-on events) to Program Change (or CC) Midi messages in the way described, that can be routed to (e.g.) LiveConfigs in the "normal" way and there trigger the patch switch.

The JSFX reads a simple text file that defines which Program Change (or CC) value is to be sent (and hence which patch is to be selected) when detecting one of the 40 patterns.

IMHO it's better to target a (doable) solution that works on the long run instead of doing something that only helps right now, even this imposes more work and spending some money in adavance.
-Michael

Last edited by mschnell; 01-09-2017 at 05:10 AM.
mschnell is offline   Reply With Quote
Old 01-14-2017, 11:13 AM   #14
mschnell
Human being with feelings
 
mschnell's Avatar
 
Join Date: Jun 2013
Location: Krefeld, Germany
Posts: 14,686
Default

I succeeded to do a JSFX for the purpose described:

=================================
desc: Pattern to PS
author: Michael Schnell (mschnell@bschnell.de)
version: 1.0
changelog: initial release
donation: United Nations Foundation http://www.unfoundation.org/
about:
## Description

The main purpose of the "Pattern to PS" plugin is to support darummers that want to dedicate up to four simple pads for switching 40 "Kits" (patches).

Midi input is received on a single channel. Only note-on events are acknowlaged.
Four different midi notes are defined. One will execute the action and send out a midi event. Three others can be used to input a pattern.
A patter consist of zero to three of these three notes and needs to be received during the time denoted by the "Timeout" slider before the execute note is received.
When an execute event is received the plugin translates this by using the Mapping file selected, which is found in the "pattern_to_ps" Diorectory located in Reaperd "Data" directory.
The appropriate number then si sent out via the slected midi output message (controller change or Program change) on the selected output midi channel.

Unrecognized midi messages are passed through.
========================

If anybody is interested I' ll have it provided via ReaPack.

-Michael
mschnell is offline   Reply With Quote
Old 02-12-2017, 06:28 AM   #15
invasion21
Human being with feelings
 
Join Date: Jan 2011
Posts: 58
Default

But what about Reaper to change patches for me automatically when i reach a point in a predefined song? How easy i can manage it for Massive?
invasion21 is offline   Reply With Quote
Old 02-12-2017, 06:40 AM   #16
DarkStar
Human being with feelings
 
DarkStar's Avatar
 
Join Date: May 2006
Location: Surrey, UK
Posts: 19,677
Default

^^^^ Pretty easy.

In Massive, load your desired patches in the Browser/ Programs List.
Or ...
Save them, in Reaper / FX window, as Reaper presets.

Either way, you can just send Program Change Messages to Massive to select the programs. You can use ReaControl MIDI or from your MIDI Controler ketboard or edit Program Change events into your MIDI clips (have a look at Automating Plug-in Presets and the User Guide for descriptions of thes pecific Reaper functions.
__________________
DarkStar ... interesting, if true. . . . Inspired by ...
DarkStar is online now   Reply With Quote
Old 02-12-2017, 07:01 AM   #17
invasion21
Human being with feelings
 
Join Date: Jan 2011
Posts: 58
Default

Quote:
Originally Posted by DarkStar View Post
^^^^ Pretty easy.
Thanks! I'd like to set the live set that patches changed automatically when reached the end of track. I'm trying to use your tip. Can't figure out how to create Reabank file for Massive though

Last edited by invasion21; 02-12-2017 at 07:14 AM.
invasion21 is offline   Reply With Quote
Old 02-12-2017, 07:56 AM   #18
invasion21
Human being with feelings
 
Join Date: Jan 2011
Posts: 58
Default

I've created reabank file, but can' load it. Just wondered what's wrong? Can you take a look, may be? Will be very appreciated!


Quote:
Originally Posted by DarkStar View Post
^^^^ Pretty easy.

In Massive, load your desired patches in the Browser/ Programs List.
Or ...
Save them, in Reaper / FX window, as Reaper presets.

Either way, you can just send Program Change Messages to Massive to select the programs. You can use ReaControl MIDI or from your MIDI Controler ketboard or edit Program Change events into your MIDI clips (have a look at Automating Plug-in Presets and the User Guide for descriptions of thes pecific Reaper functions.
Attached Files
File Type: txt Massive.reabank.txt (727 Bytes, 287 views)
invasion21 is offline   Reply With Quote
Old 02-12-2017, 08:54 AM   #19
DarkStar
Human being with feelings
 
DarkStar's Avatar
 
Join Date: May 2006
Location: Surrey, UK
Posts: 19,677
Default

The last few lines need line breaks (and remove the .txt extension). And you need to build the Psrams Programs list (and enable it) in Massive or save the programs as Reaper presets.
__________________
DarkStar ... interesting, if true. . . . Inspired by ...

Last edited by DarkStar; 02-12-2017 at 10:03 AM.
DarkStar is online now   Reply With Quote
Old 02-12-2017, 09:35 AM   #20
invasion21
Human being with feelings
 
Join Date: Jan 2011
Posts: 58
Default

Quote:
Originally Posted by DarkStar View Post
The last few lines need line breaks (and remove the .txt extension). And you need to build the Psrams list (and enable it) in Massive or save the programs as Reaper presets.
Thanks! OK, understand about .txt, don't understand about line breaks, and don't understand about Params list
invasion21 is offline   Reply With Quote
Old 02-12-2017, 10:01 AM   #21
DarkStar
Human being with feelings
 
DarkStar's Avatar
 
Join Date: May 2006
Location: Surrey, UK
Posts: 19,677
Default

From the txt file
Code:
0    1 Accelerator
1    2 Aliens
2    3 Bass 01
3    4 Bass 02
4    5 Bass Pad 01
5    6 Cold Noise Hit
6    7 Deep riser 2
7    8 Deep riser
8    9 Disaster
9   10 FX Electrocreaks
10  11 FX Female Screams
11  12 Haunted
12  13 Helicopter
13  14 Hi Pulse
14  15 Pshhhh
15  16 Reactor
16  17 Riser 01
17  18 Riser 02
18  19 Sub Bass
19  20 Traveller20  21 Whistler21  22 White Noise
Should be
Code:
0    1 Accelerator
1    2 Aliens
2    3 Bass 01
3    4 Bass 02
4    5 Bass Pad 01
5    6 Cold Noise Hit
6    7 Deep riser 2
7    8 Deep riser
8    9 Disaster
9   10 FX Electrocreaks
10  11 FX Female Screams
11  12 Haunted
12  13 Helicopter
13  14 Hi Pulse
14  15 Pshhhh
15  16 Reactor
16  17 Riser 01
17  18 Riser 02
18  19 Sub Bass
19  20 Traveller
20  21 Whistler
21  22 White Noise
Massive Programs List (My typo, sorry):

__________________
DarkStar ... interesting, if true. . . . Inspired by ...
DarkStar is online now   Reply With Quote
Old 02-12-2017, 03:02 PM   #22
mschnell
Human being with feelings
 
mschnell's Avatar
 
Join Date: Jun 2013
Location: Krefeld, Germany
Posts: 14,686
Default

Quote:
Originally Posted by invasion21 View Post
But what about Reaper to change patches for me automatically when i reach a point in a predefined song?
A Midi track + item sending out a Program Change message at this point ?

-Michael

Last edited by mschnell; 06-06-2023 at 09:25 AM.
mschnell is offline   Reply With Quote
Old 06-06-2023, 09:03 AM   #23
anubis
Human being with feelings
 
Join Date: Feb 2013
Posts: 76
Default

Quote:
Originally Posted by Outboarder View Post
Hi

Try saving the desired SD kits in reaper's preset manager.

Then go to action list type preset in search filter.

> SWS/S&M: Trigger next preset for selected FX of selected tracks
> SWS/S&M: Trigger previous preset for selected FX of selected tracks

Click add(shortkey) then bind above actions to midi(note or CC).

6 years later, you saved my day. Thank you, thank you Thank you :-)
anubis 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 03:55 AM.


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