How to disable program change or create new patch (controller) maps (SOLVED)

Official support for: musicdevelopments.com
Post Reply New Topic
RELATED
PRODUCTS

Post

Hi Attila,
I hope you are well.

When I load a track I have to select GM or one of the soundfonts to play the track (obviosuly to get sound from the track.)

However, when I choose to send the track to a vsti (outside RC through LAN), and having to choose GM sounds, RC sends a program change every time I hit the play button.

So, I have to guess which instrument I have chosen from the GM list to correspond with the chosen instrument in the vsti, and change it if I have not selected accurately. This becomes tedious after a while.

Is it possible to disable program change sending? Or, is there a way I can build my own patch maps?

A related question; Does RC send bank select messages, and if so how do I set these up? (Would this be the same as the "Controller Set" below instrument selection on the pop-up? If so, is it possible I can create these controller sets?)

Thanks very much, Attila! I know you are busy and appreciate your taking the time in this matter.

Happy musiking!
dsan
Last edited by dsan@mail.com on Sat Jul 13, 2013 6:58 pm, edited 1 time in total.

Post

Hi dsan!

One should use the included General MIDI instruments only to send MIDI events to the hardware MIDI output (e.g. to a MIDI synth) or to a virtual MIDI port. If you have no synthesizer connected you should use only soundfonts or VSTi plug-ins.

Preset selection in VSTi plug-ins may happen in two ways: either by selecting a VST program (most plug-ins implement this) or the plug-in can export MIDI programs (this is rare). In the latter case program change message is sent to the VSTi plug-in to select a preset. I suspect that you found such a plug-in, because you are the first who reported that program change is sent to the VST plug-in.

The good news is that you have full control over how the instrument is selected in a VSTi plug-in. If you open the .rcINST files in C:\Users\<username>\AppData\Roaming\RapidComposer\DB in a text editor, you can edit the contents. An .rcINST file is created for each VSTi plug-in. The format is not documented but it is quite straightforward. The properties of each preset are described in a line. If the line contains

Code: Select all

kind=VSTI; _program=...; _midibankmsb=...; _midibanklsb=...;
it means that program change message is sent to the plug-in. If _midibankmsb and _midibanklsb are missing, the VST program will be used (name="...").

As a nice feature in RapidComposer you can set up your VSTi plug-in, and save the internal state of the plug-in as an RC instrument (click on Save next to the Preset menu in the track inspector). Next time when you choose that instrument, the plug-in is loaded and restored to that state. I am grateful to ZooTooK for this idea.

You can even create your own controller sets. See GeneralMIDI.rcCTRL as an example (also a text file). It is not that difficult. If you have any questions about the file format, please let me know.

I hope this will help. You should definitely check the .rcINST file for your plug-in and remove all "_midibankmsb" and "_midibanklsb". If you still have issues, please send me e-mail with the VST plug-in name and version.

Best,
Attila

Post

Greetings Attila,
Thank you for the prompt reply and detailed explanantion. I have attempted your solution without success. When I create the rcINST file it will not appear in the list of available instruments in RC.

To create the file (for tessting purposes) I simply opened the GeneralMIDI.rcINST and resaved under the name of rptMIDI.rcINST (being sure .txt was not appended to the file). Unfortunately RC does not recognize this as a valid instrument file when I open RC and review the available instrument list (right click on track; drop down list of instruments. I see General Midi, General Midi Percussion and the SF2 instruments but none of those .rcINST I have created).

I should point out that while you were posting your repsonse I was amid editing my original post. I had added that I am sending the midi data over LAN using rptMidi because I use a second machine to host VSTi's. This all works well except for some VSTi's that will receive midi program change data. I am not hosting VSTi's in RC. I apologize you did not have this information when you were attempting a solution to this problem.

The particular VSTi in question now is Rob Papen's Blue (v1.9); however this is also true with Camel Audio's Alchemy (v1.55). I also have Predator (v1.6) and suspect this will be the same case. I do not seem to have a problem with
Kontakt 5 or other VSTi's that are multi channel; however, I have not extensively tested the scenario. It is odd that Kontakt and Halion Sonic do not seem to accept program change information.

I appreciate your help in resolving this but it is not that big of a deal. I was only hopeful to be able to minimize steps in work flow by having to change back the program every time I hit play. Perhaps in your next update, or so, you may be able to provide a solution for those of us using midi over LAN.

Thanks again! You are so supportive and it is greatly appeciated.

Best regards,
dsan

Dennis Santoyo
New York - USA

Post

Follow up:
Good news Attila; I was able to fix the issue by adding to the existing GeneralMIDI file a new preset called "No Patch Change" with these parameters;
name="No Patch Change"; kind="MIDI"; _program=-1; category="None"; function=0; _chord=0;

Now when I port the midi to the vst on computer 2 and hit play in RC my patch remains the same until I change it manually. I can still make patch changes the normal way by seleting another preset if needed but I am not able to do bank changes using the GeneralMIDI.rcINST.

I have tried to create new rcINST files using different names but still RC will not recognize these and give me access in Track info screen, drop down "Instrument" menu. All I see are those reported in the previous post.

I'm half way there though and appreciate your lead. :)

Thanks very much!

Best regards,
dsan

Dennis Santoyo
New York - USA

Post

Hi Dennis,

I had a feeling that I did not understand something. :)
I'll send you an update in the next few minutes.
Not all .rcINST files are loaded, only the ones that are used. I added some fixes to allow loading any "Custom*.rcINST" files, so you can name your file to e.g. CustomRtpMIDI.rcINST. Bank selection is implemented now, so the following will all work:

Code: Select all

name="BankMSBLSB+Program"; kind="MIDI"; _program=1; _midibankmsb=10; _midibanklsb=1; category="Piano";
name="BankMSB+Program"; kind="MIDI"; _program=2; _midibankmsb=10; category="Piano";
name="Program Only"; kind="MIDI"; _program=3; category="Piano"; 
name="Bank Only"; kind="MIDI"; _midibankmsb=10; _midibanklsb=1; category="Piano"; 
Of course "Bank Only" makes not much sense, but when '_program' is missing or it is set to -1, program change will not be sent.

I hope it will be more usable. Thank you for letting me know about this issue!

Thanks,
Attila

Post

Thanks Attila! You're the best!

Looking forward to the update.

Now I'm wondering about sending midi start/stop data. I do not believe this is possible currently and am hopeful you have plans to implement this in a future version of RC.

My hope is to be able to start record in my DAW (Studio One v2, Sonar X1, Ableton Live 9, Cubase 6.x) and have these wait for the signal from RC to start. The DAW's I mention have this ability and I currently am able to accomplish this with say Band in a Box.

Presently I work around this but it is cumbersom to some degree. Not a big issue and just wishful thinking.

Last thing I want to have happen is to get RC bloated. As it is it has become very stable over its life and I like working with it. Although there have been some issues with importing midi files.

Sometimes RC will import but there is nothing in the timeline except chords; no note data. Other times it will just crash. These are random issues now though so I just go on.

I don't want to burden you with these details as I know you are busy; however, I recognize you want a working usable software and thought I should mention these things.

Do you want I should provide you with greater detail about issues? I am content to work around most things.

Thanks again for your help! I greatly appreciate your willingness to deal with these things.

Best regards,
Dennis

Post

Fantastic, Attila! The update works like a charm and I have been able to create the custom patch maps. Now, I have my work cut out :lol:

Thanks very much!

Happy musiking!
dsan

Post Reply

Return to “MusicDevelopments”