Setting external zones of a RD-2000 program using CC7

I just bought a RD-2000 as my main keyboard for Cantabile. Basic concept of the RD-2000 seems to be that your external zone definition and volume levels are done in a RD-2000 program. Works perfectly then, but I want Cantabile to be the central midi hub, controlling everything with one RD-2000 program which should be perfectly suited for all Cantabile songs and states. I would like the LED’s next to the sliders show the right values in all situations. ( representing the corresponding CC7 values). Therefor I would like to set the cc7 values of the external zones.

I can set those CC7 values in the RD-2000 external zone using SysEx messages in bindings. The only thing I need is some sort of midi plugin controlling CC7. I tried reacontrolmidi, but it’s midi out causes Cantabile to crash (@brad, I did sent you the report for this; please help, because its functionallity is perfect for me).

I also tried the FreeG plugin, which has a Midi in and Midi out connection. I can use the Midi in, but the midi out is not sending any data. How can I get FreeG to sent CC7 messages when I’m using its slider?

Alternative suggestions to implement this function are welcome also…

Hi @JanM

I’m just looking into this problem with ReaControlMidi and the crash report is showing that it’s the plugin crashing when Cantabile passes it it’s previusly saved state. Which makes me think this is related to how you have the plugin configured. Can you send me some screen shots of how you’ve got things configured (in the rea plugin). Or perhaps send me a copy of a saved song that’s failing to load and I’ll check it out.

EDT: Actually, ignore that, I think I’ve reproduced the problem.

Brad

1 Like

I just did sent you the files anyway. Thanx for looking into this!

OK, I’ve been in discussion with Justin (from cockos) about the problem with reacontrolmidi and it’s definitely a bug in the plugin but since they rarely build/release these plugins he’s provide a way for Cantabile to work around it. Fix will be in the next build.

1 Like

Thank you, your immediate adequate response is so cool! Very much appreciated!
I’ll try and come back.

Build 3553 available now fixes the issue with reaControlMidi

And now it works perfectly. Thank you @brad!

So let me give the complete solution to the community:

Case:
I want to be able to control 8 zones from the RD-2000, but using the Cantabile’s State for the initial settings per zone (on/off, volume, assignable knobs etc.). I would like some sort of 2-way synchronisation between RD-2000 and Cantabile states and levels. This case solves the remote volume control and on/off switch per zone.

Problem:
When you send standard CC7 values (midi volume) to the RD-2000, instead of controlling External Zones, your controlling the Internal Zones of the RD-2000.

Solution:
The only way to control External Zones is using SysEx messages in Roland’s format (including checksum).

  1. I use the reaControlMidi (free) vst for setting a CC7 level for a channel. I’m binding the CC7 level to the gain of the vst instrument (PianoTeq, in this case). CC7 levels are maintained per state when setting the corresponding State Behaviour on the plugin.

  2. I’m using bindings to set and control the On/Off switch and volume level on the corresponding RD-2000 zone (in this case zone 1 / midi channel 1). I’m using SysEx messages here.

  3. Generating the SysEx messages is a bit complicated, especially for Roland devices. You’ll need to add a checksum, which fortunately is a function in Cantabile’s expression builder. For more information regarding sysex for the RD-2000, please refer to the Midi Implementation Guide.
    Cantabile%20sysex

My test-sets do their job just fine in build 3553. Next step is to build a generic ''8-Part Performance"-rack which I can use in my songs for switching 8 parts and control volumes on a per-state basis with just 1 generic “Cantabile” program on the RD-2000.

Maybe other members have different solutions; I’ll be most interested to hear them. I’m learning every day, thanks to this wonderful C3 product and community :slight_smile:.

2 Likes

Hi Jan,

I have an RD2000 too and haven’t taken the same approach but like your ideas and I learned some good stuff from your explanation. I also have had to bone up on coding Sys-ex messages using the check sums but the ones I have made have are very reliable and I hope to add more to them now that you have inspired me with your setup. If only I could find the time to try all the cool things I see and read about.

Thanks for the explanation post!

Dave

Hi Dave!
Thank you, in the end inspiration ( and a lot of practice ) is what we musicians live for, right:wink:.
What is your approach on using the roland board?

Hey Jan,

So far, what I have done is this. I had an RD 800 before I sold it and moved to the 2000 so I had a good number of Programs written for it and transferred them to the RD 2000. I’ve added more programs to the 2000 since i got it as well. These programs are used as ready to play backup for every song in my Cantabile set lists or as standalone programs for sounds when the laptop is not used at that particular gig (this is fairly rare).

So when I call a song in C3 there are sys-ex bindings to call the matching program on the RD 2000. If the laptop has a problem (no sound, popping, glitches, performance problems) I have a means to mute the Audio Interface and simply turn up the RD2000 and carry on mid song. This has come in handy more than once because music with PC’s can be unpredictable even with Cantabile being a stable host.

I also tried a different approach lately where I can mute some or all of the Internal zones using Sys-Ex messages in bindings for the RD2000 while using the external zones exclusively or blended with RD 2000 sounds. This made it so the volume of the RD 2000 could be left turned up and then selectively muted on each given song. I only have a few made with the blending but stopped for now because I wanted to keep the backup plan of the rig maintained. If the RD 2000 dies I have a backup 88 note controller to back it up and use with C3 and If the laptop or interface box goes south I can switch to the RD 2000 exclusively until a break where I can reboot or whip out the backup laptop. (I have 2 identical Laptops for Music).

So I haven’t used the Scene function of the RD 2000 much but it looks like it is very powerful as well. I am working a bit more this last year in my band and using the C3 + Laptop setup and it has been great (keyboard is a controller only). But when I want a certain sound from the RD2000 (mostly E-pianos which are stellar IMO) I will mute C3 and play just the RD. If and when I get into more complicated song setups then the things you are doing now would be helpful so I appreciated that you posted about them. Anyway, Thanks for asking!

Dave

Thank you for sharing as well. Exactly because of this backup plan I bought the RD2000 instead of a controller. I’m still thinking how to setup my workflow, your insights surely helps. In the end I expect a limited set of programs or scenes, representing my ‘most wanted’ sounds from the RD2000, but equiped to mainly control Cantabile. And yes, those ep’s are stunning.

Jan

Hi all,

Please forgive me as I’m brand new to this community and have just downloaded a trial version of Cantabile. I have an rd2000 that I am trying to mix external sounds from Komplete Kontrol with internal from the rig. So far I’m able to wire in two Komplete sounds just fine and was trying to bind a slider to the volume of each of those two sounds to be able to fade in and out as needed, but it seems the sliders are “prebound” to cutoff and blend in the vst parameters. Try as I might, I cannot “unbind” the slider but only add the volume to the other assignment. I’ve tried everything in the manual, I feel stupid, any help would be appreciated…

Thanks

Hey Berto,

welcome to the community!

I guess what is happening is that your sliders are sending MIDI CC commands that are interpreted by your Komplete sounds as cutoff and blend.

So first thing: find out what CC commands these sliders are sending. If you don’t know, use the Cantabile MIDI Monitor on the input route to find out → right-click your Input Ports and select the correct MIDI input to monitor

Once you know which CC commands are sent, you need to filter them out in the route from your keyboard to the plugin. Click the “funnel” icon on your route to open the “MIDI Filter” dialog, then create a new “Suppress Events” filter. Now enter the respective CC numbers in the “Suppress Controllers” text field.

Now these CC messages won’t go to your plugin anymore, and you can use them for any bindings you want to use them for.

This is the “safe” way that makes sure that you can eliminate all controllers that you don’t want to reach your instruments.

There is also an elegant way directly using the bindings: let’s assume you’ve created a binding from CC 8 to the plugin gain like this:

Now if you right-click your binding and change its routing mode to “suppress”, it will make sure that these CC messages never go to your plugin - also solves the problem!

I usually prefer the first method, because otherwise as soon as I remove or de-activate the binding, the CC messages will go to the plugin again - with the potential to mess up my sounds. That’s why I eliminate all CC messages except modulation (CC1) in the route from my controller to the plugin. Then I have full control over the message that get sent via bindings, without any nasty interference!

Hope this helps!

Cheers,

Torsten

3 Likes

Torsten,

Thank you my friend, makes sense now…a bit…I will try that this evening as soon as I can and let you know the result. Wow, but what a quick response to a musician in need. If this is the way this community is, then forget trying out a free trial of gp4…
Again, thank you!

Berto

So I did what you instructed and it worked flawlessly. Thank you so much for your knowledge. My rd2000 is pretty much predispositioned to mainstage, but I’m not a big apple fan. I’ve run it with the internal sounds and expansion packs for over two years now but since I heard a couple pianos Native Instruments have…well there went the hook! Now I’m trying to catch up in the vst world. :grin:

Thanks again!

Berto

1 Like

Hi, it had been some years about this post, but for me it’s a challenge at the moment.

I love the RD-2000 as a stage piano and midi controller. But it would be nice to have the LED’s of the external zones be controlled by Cantabile when loading a song.
I’ve tried to reverse engineer the post from JanM but Cantabile 4162 doesn’t accept the sysex: “Error in sys-ex data: Value was either too large or too small for an unsigned byte.” I expect the binding setup, but can’t figure it out. Also other posts doesn’t have the solution. Maybe I have to accept that the volume CC7 can’t be controlled for an external zone.

Does someone have example songs/racks with the working solution?
Thanks!

Hi Joel,

Are you binding the external zone sliders to anything in particular in Cantabile?

Dave

Hi Dave,
The goal is to have the external zone sliders to control the output volume of the VST’s or the outer gains of the racks.
I’m stil designing my new setup. I think I’ll use 1 program of the RD-2000 as a midi controller. Each song load in Cantabile will set the external zone sliders.
Of course the alternative is to have the binding set on jump prevention, but having the interface direct in front of you is easier.
As info: I’m using the performer license.
Joel

Hi Joel,

OK, I understand. The problem is I think that the RD2000 sliders do not receive MIDI on the zones that are set to external, it only sends MIDI commands one direction and conversely it can only receive MIDI when set to an internal zone. This creates an interesting phenomena in that when you do a Bi-Directional binding as shown below it will sync the external slider from the RD2000 that is set to Ch 1 to the plugin but when you reverse the action and use the plugin slot gain to adjust the gain it mirrors the CC7 back to the RD2000 but affects the Internal Ch1 gain and it’s led strip. It appears you may be stuck with the jump prevention solution IMO. A remote possibility would be to set the external zones with ch 1-8 and the same with the internals and use sys-ex to first set the RD zones all to internal, then send the CC7 zone values to the keyboard and then finally switch all the zones back to external. This would happen on every song change. I can test this here and see but it makes sense.

Dave