Go Back   Cockos Incorporated Forums > REAPER Forums > REAPER Q&A, Tips, Tricks and Howto

Reply
 
Thread Tools Display Modes
Old 08-17-2017, 06:13 AM   #1
dimbow
Human being with feelings
 
Join Date: Dec 2011
Posts: 213
Default Advice on how to do midi program change with this setup

Hi guys
I want to use a more piano-feel keyboard (e.g. Kawai) with kontakt but none of them I can find put out program change from 1-127 for changing through my patches on the fly at gigs.
(My previous "evolution" keyboard had dedicated buttons for this).
I have looked at options, i can't find a manufacturer anymore for dedicated program change devices (I'd need a midi merge unit) so I thought I'd put this out there to see if anybody had any thoughts/ideas?
Cheers
__________________
VOTE for temporary automation bypass in READ mode while touching a parameter.
http://forum.cockos.com/project.php?issueid=4924
dimbow is offline   Reply With Quote
Old 08-17-2017, 07:27 AM   #2
teniente powell
Human being with feelings
 
teniente powell's Avatar
 
Join Date: Oct 2016
Location: Spain
Posts: 323
Default

Charge the "Notes to Prog Change" script (Preset-Factory-Transform) and you will have keyswitches in your keyboard.
teniente powell is online now   Reply With Quote
Old 08-18-2017, 08:50 AM   #3
dimbow
Human being with feelings
 
Join Date: Dec 2011
Posts: 213
Default

Quote:
Originally Posted by teniente powell View Post
Charge the "Notes to Prog Change" script (Preset-Factory-Transform) and you will have keyswitches in your keyboard.
Thanks for this great idea. Because I have about 40 patches during a gig, I'm stuck with how to best go about implementing this. For example, the bank of patches receives on midi channel 6 (I use midi 1 for some actions in reaper).
Ideally I'd probably use a different midi channel for sending the note-to-program change info, perhaps even using a separate controller which I could whack on the fly? BUT how do I assign the prog change script to receive on a different channel, but affect the bank midi channel 6?
Or am I making this harder than it needs to be?
__________________
VOTE for temporary automation bypass in READ mode while touching a parameter.
http://forum.cockos.com/project.php?issueid=4924
dimbow is offline   Reply With Quote
Old 08-19-2017, 03:38 AM   #4
teniente powell
Human being with feelings
 
teniente powell's Avatar
 
Join Date: Oct 2016
Location: Spain
Posts: 323
Default

I don't play live, but I can use a tablet to control several midi CC (modulation, vibrato, ...) and to do program change. Touchosc is the answer.

https://hexler.net/software/touchosc

I have a tutorial in youtube but in spanish. It's very easy.
teniente powell is online now   Reply With Quote
Old 08-19-2017, 11:14 AM   #5
dimbow
Human being with feelings
 
Join Date: Dec 2011
Posts: 213
Default

Quote:
Originally Posted by teniente powell View Post
I don't play live, but I can use a tablet to control several midi CC (modulation, vibrato, ...) and to do program change. Touchosc is the answer.

https://hexler.net/software/touchosc

I have a tutorial in youtube but in spanish. It's very easy.
I run live loop software on my computer so i dont want to use wi-fi, unless i can connect my ipad to my computer via usb and output thr midi control through that but that also means another usb port in action which may affect overall computer performance...
__________________
VOTE for temporary automation bypass in READ mode while touching a parameter.
http://forum.cockos.com/project.php?issueid=4924
dimbow is offline   Reply With Quote
Old 08-19-2017, 12:35 PM   #6
teniente powell
Human being with feelings
 
teniente powell's Avatar
 
Join Date: Oct 2016
Location: Spain
Posts: 323
Default

Maybe bluetooth.
teniente powell is online now   Reply With Quote
Old 08-19-2017, 01:46 PM   #7
mschnell
Human being with feelings
 
mschnell's Avatar
 
Join Date: Jun 2013
Location: Krefeld, Germany
Posts: 14,686
Default

Quote:
Originally Posted by dimbow View Post
Hi guys
I want to use a more piano-feel keyboard (e.g. Kawai) with Kontakt but none of them I can find put out program change from 1-127 for changing through my patches on the fly at gigs.
I use a rather complex live setup with two master keyboards and a breath controller, using Reaper with SWS LiveConfigs to handle the "patches", that consist of (some even multiple) VSTis (including Kontakt) and VSTs.

At the moment I am using a 30 years old KX88 keyboard as my main instrument. Same features multiple buttons and faders I use for patch switching and live parameter modifying.

To get a more Grand-piano like touch, tomorrow I will order a Kawai VPC 1, that does not have any buttons and faders at all. That is why I will additionally order a Behringer XTouch Compact. The buttons will be used for patch switching and stuff like global key transposing. I will try to assign the motor-faders to VST parameters in a way that they will automatically jump in the correct position when patch is changed. Supposedly not exactly easy, but doable.

With a simpler setup, I suppose small midi controllers (such as Behringer XTouch Mini) can be programmed to output PC messages. If you attach the controller and the keyboard to the PC via different USB sockets, Reaper can do the Midi merging ("routing").

If the controller sends out CC messages rather than Program Change, you can use a (JSFX) plugin to modify CC->PC or (better) use SWS LiveConfigs to manage the patches (see my extended LiveConfigs Docs for more info).

-Michael

Last edited by mschnell; 08-19-2017 at 11:31 PM.
mschnell is online now   Reply With Quote
Old 08-19-2017, 02:55 PM   #8
Tod
Human being with feelings
 
Tod's Avatar
 
Join Date: Jan 2010
Location: Kalispell
Posts: 14,745
Default

Quote:
Originally Posted by dimbow View Post
I want to use a more piano-feel keyboard (e.g. Kawai) with kontakt but none of them I can find put out program change from 1-127 for changing through my patches on the fly at gigs.
Are you using one instance of Kontakt for this dimbow? How many patches do you have setup or need?

A multi-script in Kontakt might be able to do this, it just depends on your setup.
Tod is offline   Reply With Quote
Old 08-21-2017, 10:35 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 dimbow View Post
I want to use a more piano-feel keyboard (e.g. Kawai) with kontakt but none of them I can find put out program change from 1-127 for changing through my patches on the fly at gigs.
You might want to take a look at this thread: -> https://forum.cockos.com/showthread.php?t=195296 .

-Michael
mschnell is online now   Reply With Quote
Old 09-24-2017, 10:53 AM   #10
dimbow
Human being with feelings
 
Join Date: Dec 2011
Posts: 213
Default

Quote:
Originally Posted by Tod View Post
Are you using one instance of Kontakt for this dimbow? How many patches do you have setup or need?

A multi-script in Kontakt might be able to do this, it just depends on your setup.
I am using one instance of kontakt, which is receiving on midi channel 6. I have around 90 different programs in a single bank and want to change between them.

Thanks everyone for suggestions.
Ipad route (with Touch software) is too complicated to add to my setup; I want to burden the computer as little as possible with extras; it's not for me.

To recap, all I need to do is use program change on the same midi channel as my midi keyboard, which doesn't have a program change control built in.
Option 1) I could buy a footswitch for £100 which just does Program Change
Option 2) I could look at remapping either midi cc or notes to program change...but....unfortuantely, I can't find a JS plug in which remaps to program change. If I could, my problems would be solved. I could buy a nanokey, sit it over my keyboard, outputting on a different midi channel, (eg. ch 5) then within reaper convert the nanokey notes into program change before hopefully sending it into kontakt on the correct midi channel (6).
Could anybody help with this idea? Thanks in advance!

E D I T - - - SOLVED!!!!!!!

Here's the solution if it helps anybody in the future:
As kindly suggested earlier in this thread, use the Transform option in Kontakt sat over the bank BUT
I didn't realise you CAN also swap midi channels using this little module. So you can set it to receive midi notes from an external controller (eg. a nanokey) outputting on a different midi channel to the programs in the bank. Then you convert these notes into prog change AND on the correct midi channel for the bank, all within that module. You have to do this otherwise you have notes clashing on the same channel if that makes sense..
__________________
VOTE for temporary automation bypass in READ mode while touching a parameter.
http://forum.cockos.com/project.php?issueid=4924

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

A jsfx Note or CC -> Program change on a different Midi channel is just 10 lines and easily done. Let me know if you need it.

-Michael
mschnell is online now   Reply With Quote
Old 09-24-2017, 06:33 PM   #12
dimbow
Human being with feelings
 
Join Date: Dec 2011
Posts: 213
Default

Quote:
Originally Posted by mschnell View Post
A jsfx Note or CC -> Program change on a different Midi channel is just 10 lines and easily done. Let me know if you need it.

-Michael
Despite doing a fair bit of reaping I think I probably scratch 1/1000th of the potential of the software and all contained within it!

I'd be very interested to see the script, and how you actually implement it, if it wasn't any trouble.
__________________
VOTE for temporary automation bypass in READ mode while touching a parameter.
http://forum.cockos.com/project.php?issueid=4924
dimbow is offline   Reply With Quote
Old 09-25-2017, 02:03 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 dimbow View Post
I'd be very interested to see the script, and how you actually implement it, if it wasn't any trouble.
Here you are
Code:
desc:Midi CC to PS
slider1:0<0,15,1{1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16}>Receive Channel
slider2:1<0,127,1{0 Bank Sel M,1 Mod Wheel M,2 Breath M,3,4 Foot P M,5 Porta M,6 Data Entry M,7 Vol M,8 Balance M,9,10 Pan M,11 Expression M,12 Ctrl 1 M,13 Ctrl 2 M,14,15,16 GP Slider 1,17 GP Slider 2,18 GP Slider 3,19 GP Slider 4,20,21,22,23,24,25,26,27,28,29,30,31,32 Bank Sel L,33 Mod Wheel L,34 Breath L,35,36 Foot P L,37 Porta L,38 Data Entry L,39 Vol L,40 Balance L,41,42 Pan L,43 Expression L,44 Ctrl 1 L,45 Ctrl 2 L,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64 Hold P sw,65 Porta sw,66 Sustenuto sw,67 Soft P sw,68 Legato P sw,69 Hold 2 P sw,70 S.Variation,71 S.Timbre,72 S.Release,73 S.Attack,74 S.Brightness,75 S.Ctrl 6,76 S.Ctrl 7,77 S.Ctrl 8,78 S.Ctrl 9,79 S.Ctrl 10,80 GP B.1 sw,81 GP B.2 sw,82 GP B.3 sw,83 GP B.4 sw,84,85,86,87,88,89,90,91 Effects Lv,92 Trem Lv,93 Chorus Lv,94 Celeste Lv,95 Phaser Lv,96 Data B. Inc,97 Data B. Dec,98 NRP L,99 NRP M,100 RP L,101 RP M,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127}>CC
slider3:1<0,15,1{1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16}>Send Channel
@slider
  Receive_Channel   = slider1;
  CC                = slider2;
  Send_Channel      = slider3;
  replace           = $xB0 | Receive_Channel;     // CC
  send              = $xC0 | Send_Channel;        // PS
@block
  while (midirecv(offset, msg1, msg2, msg3)) (
    (msg1 == replace) && (msg2 == CC) ? (
      msg1 = send;
      msg2 = msg3;
      msg3 = 0;
    );
    midisend(offset, msg1, msg2, msg3); 
  );
(Ok, due to better readability, it's $x10 Lines rather than 10d lines. )
-Michael

Last edited by mschnell; 09-25-2017 at 09:28 PM.
mschnell is online now   Reply With Quote
Old 09-26-2017, 05:46 PM   #14
dimbow
Human being with feelings
 
Join Date: Dec 2011
Posts: 213
Default

Quote:
Originally Posted by mschnell View Post
Here you are
Code:
desc:Midi CC to PS
slider1:0<0,15,1{1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16}>Receive Channel
slider2:1<0,127,1{0 Bank Sel M,1 Mod Wheel M,2 Breath M,3,4 Foot P M,5 Porta M,6 Data Entry M,7 Vol M,8 Balance M,9,10 Pan M,11 Expression M,12 Ctrl 1 M,13 Ctrl 2 M,14,15,16 GP Slider 1,17 GP Slider 2,18 GP Slider 3,19 GP Slider 4,20,21,22,23,24,25,26,27,28,29,30,31,32 Bank Sel L,33 Mod Wheel L,34 Breath L,35,36 Foot P L,37 Porta L,38 Data Entry L,39 Vol L,40 Balance L,41,42 Pan L,43 Expression L,44 Ctrl 1 L,45 Ctrl 2 L,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64 Hold P sw,65 Porta sw,66 Sustenuto sw,67 Soft P sw,68 Legato P sw,69 Hold 2 P sw,70 S.Variation,71 S.Timbre,72 S.Release,73 S.Attack,74 S.Brightness,75 S.Ctrl 6,76 S.Ctrl 7,77 S.Ctrl 8,78 S.Ctrl 9,79 S.Ctrl 10,80 GP B.1 sw,81 GP B.2 sw,82 GP B.3 sw,83 GP B.4 sw,84,85,86,87,88,89,90,91 Effects Lv,92 Trem Lv,93 Chorus Lv,94 Celeste Lv,95 Phaser Lv,96 Data B. Inc,97 Data B. Dec,98 NRP L,99 NRP M,100 RP L,101 RP M,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127}>CC
slider3:1<0,15,1{1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16}>Send Channel
@slider
  Receive_Channel   = slider1;
  CC                = slider2;
  Send_Channel      = slider3;
  replace           = $xB0 | Receive_Channel;     // CC
  send              = $xC0 | Send_Channel;        // PS
@block
  while (midirecv(offset, msg1, msg2, msg3)) (
    (msg1 == replace) && (msg2 == CC) ? (
      msg1 = send;
      msg2 = msg3;
      msg3 = 0;
    );
    midisend(offset, msg1, msg2, msg3); 
  );
(Ok, due to better readability, it's $x10 Lines rather than 10d lines. )
-Michael
Thank you! How do you implement this script ? Is it a js plug i open and copy it into?
__________________
VOTE for temporary automation bypass in READ mode while touching a parameter.
http://forum.cockos.com/project.php?issueid=4924
dimbow is offline   Reply With Quote
Old 09-26-2017, 11:13 PM   #15
mschnell
Human being with feelings
 
mschnell's Avatar
 
Join Date: Jun 2013
Location: Krefeld, Germany
Posts: 14,686
Default

JSFX scripts are simply text files that get loaded and compiled e.g. when loading a project.

They need to be located in the "Effects" folder in the Reaper resource path -> "options"->"show Reaper Ressource path..." or in a subfolder of same. The file name does not matter and usually has no extension.

Once there, you can find the plugin when adding plugins by the name denoted in "desc:" (here: "Midi CC to PS")

-Michael

Last edited by mschnell; 09-27-2017 at 12:23 PM.
mschnell is online now   Reply With Quote
Old 09-27-2017, 03:44 AM   #16
dimbow
Human being with feelings
 
Join Date: Dec 2011
Posts: 213
Default

Quote:
Originally Posted by mschnell View Post
JSFX scripts are simply text files that get loaded and compiled e.g. when loading a project.

They need to be located in the "Effects" folder in the Reaper resource path -> "options"->"show Reaper Ressource path..." or in a subfolder of same. The file name does not matter and usually has no extension.

Once there, you can find the plugin when adding plugins by the name denoted in "desc:" (here: "Midi CC to PS"

-Michael
wowsers. I've made it as far as the effects folder, cant see any folder for jsfx.
Do I just make a text file with your code in and save it somewhere in the effects folder? I had a quick read about them on the main reaper site..
Very interesting stuff! Thanks for your help again!
__________________
VOTE for temporary automation bypass in READ mode while touching a parameter.
http://forum.cockos.com/project.php?issueid=4924

Last edited by dimbow; 09-27-2017 at 11:37 AM.
dimbow is offline   Reply With Quote
Old 09-27-2017, 12:22 PM   #17
mschnell
Human being with feelings
 
mschnell's Avatar
 
Join Date: Jun 2013
Location: Krefeld, Germany
Posts: 14,686
Default

Quote:
Originally Posted by dimbow View Post
Do I just make a text file with your code in and save it somewhere in the effects folder?
Exactly !
-Michael
mschnell is online now   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 02:09 AM.


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