Control a Roland VG-88 with the Behringer BCR2000

brookesy

2015-07-31 14:06:44

Greetings to you all from Sheffield, UK

I've got a problem that's been eating my at my brain....

First of all, I own a Behringer BCR2000 and a Roland VG-88. As an experimental Guitarist I would like to get to the guts of the VG-88 (approximately 90 or so controls via the 4 pages of buttons and encoders on the BCR)

Until now, I've always ignored the Midi Implementation pages of equipment I've owned in the past but I want gain a better understanding.

for example In the Midi Implementation Manual for the VG-88 Delay Parameters it reads;

===== DELAY =====
** ** 02 68 00 00 00 04 0000- 0715 DLY TIME *Refer to Table 'DD_DlyTime'*2

** ** 02 6C 00 00 00 02 00 - 65 TAP TIME 00 : OFF
01 : 0%
: :
65 : 100%

** ** 02 6E 00 00 00 02 00 - 64 FEEDBACK 0 - 100

** ** 02 70 00 00 00 02 00 - 09 HIGH CUT *Refer to Table 'High_Cut'

** ** 02 72 00 00 00 02 00 - 78 DLY LEV 0 - 120

** ** 02 74 00 00 00 02 dummy data

** ** 02 76 00 00 00 02 dummy data

Should the beginning of the sysex read like this; F0 41 00 00 27 12 and then I add the remainder of the string?

Do I ignore the asterisks (** **)?

Do I need to add the checksum?

A full explanation of what is written is most welcome.

How do I get MT to translate the CC message (0-127) from the controller (or would you send a different type of midi message) to any parameter on the VG?

I fear this is only the beginning so any help would be much appreciated

Thank you

brookesy :)

DvlsAdvct

2015-08-01 04:24:40

Hi brookesy

Thanks for bringing the questions. This kind of stuff can be a royal pain to figure out, so we'll do it together and get somewhere. I downloaded the manual and am trying to parse it. We're gonna learn TOGETHER. :)

I believe the ** ** means it's coming after the sysex string you correctly identified as

F0 41 00 00 27 12

That will need to come ahead of all of the strings so the controllers speak to each other.

So, for example, we can look at the Delay Feedback. You'd need one translator, and you'd want to cut the signals in half. Why? Because there's only 64 steps to the Delay Feedback (0-64) yet 128 steps for MIDI.

So that would look like

Code: Select all

Translator 1: Knob for Delay Feedback
Incoming Message: B0 30 pp
Rules: pp=pp/2
Outgoing Message: F0 41 00 00 27 12 02 6E 00 00 00 02 pp F7
That should, in theory, work. I can't test it since I don't have either of the devices you're working with, but that should process it correctly, I think.

Does it make sense?
Jared

brookesy

2015-08-02 01:18:00

Hi Jared,
Thanks for the reply to my question.
Yes, it makes complete sense but unfortunately it still refuses to play. When I first started, I had an idea involving the VEdit (Software Editor for the VG) and feeding it to BMTP's midi capture (via MidiYoke 1)on the outgoing message but it received a extremely long sysex string that I could not understand at all and didn't even resemble anything in the MI manual.

What about adding the check sum at the end of the string after the variable pp?

I appreciate the help, Jared

Thanks again

Simon

DvlsAdvct

2015-08-03 16:53:32

Can you post the Sysex string that it created?

brookesy

2015-08-03 23:47:16

Hi Jared,

Delay feedback as before

This is the string as recorded by Mountain Utilities BC Manager:

F0 41 00 00 27 12 0C 00 00 00 00 07 04 00 01 0F 04 00 00 00 00 00 03 02 06 04 00 00 00 02 00 00 00 00 00 00 01 08 01 08 01 08 01 08 01 08 01 08 03 02 03 02 03 02 03 02 03 02 03 02 06 04 06 04 06 04 06 04 06 04 06 04 06 04 06 04 06 04 06 04 06 04 06 04 00 0C 00 0C 00 0C 00 0C 00 0C 00 0C 00 00 00 00 00 00 00 05 06 04 00 00 03 02 03 02 00 00 00 00 00 00 00 00 00 00 01 04 01 04 01 04 01 04 01 04 00 07 00 01 01 00 75 F7 F0 41 00 00 27 12 0C 00 01 00 00 01 00 00 00 00 00 00 03 02 03 02 03 02 03 02 03 02 03 02 00 00 00 00 06 04 00 00 06 04 00 00 00 00 00 00 00 01 00 00 00 01 00 0A 00 00 00 00 05 00 00 00 03 02 03 02 03 02 03 02 00 01 00 00 06 04 00 0C 00 00 00 00 00 00 00 00 00 01 00 00 00 01 00 01 00 01 00 01 00 00 00 00 00 00 00 00 03 02 02 08 03 02 03 02 00 00 00 00 00 00 00 00 02 0A 06 04 00 00 00 00 00 00 00 00 00 00 00 00 50 F7 F0 41 00 00 27 12 0C 00 02 00 01 03 01 08 01 04 01 04 01 04 00 07 00 01 01 00 00 01 00 00 00 00 00 00 00 02 00 00 00 00 00 00 01 09 03 02 04 0B 05 00 04 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0A 04 00 01 00 00 00 00 00 09 00 00 00 00 00 00 00 00 02 08 02 0D 00 08 64 F7 F0 41 00 00 27 12 0C 00 03 00 00 03 01 0E 00 00 00 00 00 04 01 0C 00 02 00 07 03 02 00 0C 00 08 00 00 02 0D 01 04 06 04 00 00 0D 02 00 00 00 00 00 00 06 04 00 00 00 00 00 00 0D 02 00 00 00 00 00 00 06 04 00 00 00 00 00 00 0D 02 00 00 00 00 00 00 06 04 00 00 00 00 00 00 0D 02 00 00 00 00 00 00 06 04 00 00 00 00 00 00 0D 02 00 00 00 00 00 00 06 04 00 00 00 00 00 00 0D 02 00 00 00 00 00 00 06 04 00 00 00 00 00 00 78 F7 F0 41 00 00 27 12 0C 00 04 00 0D 02 00 00 00 00 00 00 06 04 00 00 00 00 00 00 0D 02 00 00 00 00 00 00 06 04 00 00 00 00 00 00 0D 02 00 00 00 00 00 00 06 04 00 00 0C 06 00 00 00 00 00 00 00 01 00 00 00 01 00 00 00 0E 00 00 00 00 00 00 06 04 00 00 00 0C 00 00 00 04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 07 0F 07 0F 07 0F 07 0F 07 0F 07 0F 07 0F 07 0F 00 01 00 01 00 01 00 01 35 F7 F0 41 00 00 27 12 0C 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 07 08 00 00 03 02 00 00 05 06 02 0D 04 07 05 05 04 09 05 04 04 01 05 02 00 00 00 00 00 00 00 01 00 02 00 03 00 04 00 05 00 06 00 07 00 08 00 09 5D F7

This is the string recorded by BMTP:

F0 41 00 00 27 12 0C 00 00 00 00 07 04 00 01 0F 04 00 00 00 00 00 03 02 06 04 00 00 00 02 00 00 00 00 00 00 01 08 01 08 01 08 01 08 01 08 01 08 03 02 03 02 03 02 03 02 03 02 03 02 06 04 06 04 06 04 06 04 06 04 06 04 06 04 06 04 06 04 06 04 06 04 06 04 00 0C 00 0C 00 0C 00 0C 00 0C 00 0C 00 00 00 00 00 00 00 05 06 04 00 00 03 02 03 02 00 00 00 00 00 00 00 00 00 00 01 04 01 04 01 04 01 04 01 04 00 07 00 01 01 00 75

:?
Simon

DvlsAdvct

2015-08-04 02:32:47

So it looks like that first string is actually 6 sysex messages, whereas MT is seeing only that first message. I'm going to have to do some deeper digging into the checksums, if I can figure it out. I hate these old sysex strings cause they just get monstrous.

brookesy

2015-08-04 11:00:48

Hi Jared,

It does not read it all, it misses the final byte.

Is the reason that BMTP does not record the full string because of sysex buffering? I read a question on the forum and I wondered if it had anything to do with that.

I sent an e-mail to the person who wrote the Editor in the off chance he could shed some light on the situation but I doubt he will reply as he as not updated VEdit in 13 years.

I do not understand why a reputable company like Roland did not use CC messages (for the MI) on the FX parameters for this device as you can program up to 8 CC assigns from within the machine.

Have a good day :)

S

brookesy

2015-08-11 11:36:51

Hi Jared,
Have you worked out how to implement the Roland checksum in 'Rules'?

Can it be done?

Anyone, feel free to chip in if you have any info that might help. (No matter how trivial)

Have a great day :D

S

brookesy

2015-08-19 12:16:04

Hello Jared and to all following this topic,

I've finally managed to control the VG-88 with the BCR2000, not by using BMTP but using Mountain Utilities BC Manager that can address sysex data (even though Behringer don't publicise this)

An example.

VG-88 Delay Time parameter on the USER patch BANK 1 PRESET 1:

As written in BC manager, $F0 $41 $00 $00 $27 $12 $0C $00 $02 $68 val4.7 val0.3 cks-1 6 $F7 with the encoder's range set at Val 1. 0 and val 2. 715 as stated in the manual.

The 2 sets of asterisks that I queried at the start of this thread relate to the USER patch ($0C) and the preset no.($00) in other words the USER Presets 1-1 to 25-4 (0C 00 - OC 63 ).
You could also control the PRESET patches replacing the 0C to 0E or 0F as referred to in the manual

Then the VG-88 Delay Time parameter ($02 $68) which has a range of 0-715ms.

val4.7 val0.3 cks-1 6 refers to Behringer's BCL language which can be read as a PDF download at the Mountain Utilities Website.

The shame about this type of implementation is that you can control 1 preset at a time. Is there any way that Bome's Midi Translator Pro could translate the $0C $00 to control other presets with a global rules tab for all controllers. This would save a lot of time, Don't ya think?

Have a great day!!! :D

Simon

DvlsAdvct

2015-08-19 15:18:05

Hi Simon

Well that's an interesting one. Glad you got it somewhat working, even if it's not with MT Pro.

The first question I have is, can MT Pro receive information from Mountain Utilities and send it off to the BCR2000? If MT can sit in between them then we should be able to figure something out.

Can you test that?
Jared

brookesy

2015-08-19 15:49:05

Hi Jared,
Thanks for the reply, you confused me there for a moment but I was thinking a much simpler way.
I have a Steinberg Midex 8 so I was going to feed MT with Midi Data from the BCR and then MT do it's stuff and then move it to the VG-88's input via a Midex Output.
What do you think?
Simon

DvlsAdvct

2015-08-19 15:56:03

Oh, that should be doable. I think I got the workflow confused in my head.

The process would be

BCR sends an action (turn a knob) to the Midex
Midex runs to MT Pro
MT Pro translates the signal and sends it to the VG-88

Right?
J

brookesy

2015-08-19 16:45:51

Hi Jared,

Exactly right, it's moving the translated message to the port the VG's listening to.

In this case MT is receiving this message;

F0 41 00 00 27 12 0C 00 02 68 01 0A 7F F7
^ ^

The 2 bytes that I have put an arrow under refer to the USER patch and the preset number in this case the very first preset on the machine BANK 1 PRESET 1.

If I wanted to control another preset I would need BMTP to be able to change these values at MT's MIDI IN but leave the rest of the message untouched and then output the full message.

eg.

F0 41 00 00 27 12 0E 7F 02 68 01 0A 7F F7
^ ^

BANK 57 PRESET 4 etc

Is this doable? Can it also be done for all messages received at MT's Midi In? A global RULE say.

Regards :)

Simon

DvlsAdvct

2015-08-19 16:54:17

The short answer is yes, it can be done. The long answer of HOW requires a bit more information.

First, how many banks are there? You COULD do it with one long translator output, but it might be easier to have a different translator for each preset bank.

brookesy

2015-08-20 15:30:46

Hi Jared,

The VG-88 Version has a total of 260 presets (65 banks of 4 presets)

The first 100, range #1-1 to #25-4 are the USER patches (in sysex 0C 00 to 0C 63)

The remaining are PRESET patches with a range of #26-1 to #57-4 (0E 00 to 0E 7F)

and #58-1 to #65-4 (0F 00 to 0F 1F).

I think the best and easiest way, is to like you say manually input the 2 bytes (the specific preset you want to manipulate) in the RULES tab and make 0C 00 the primary preset.

Best Regards :wink:

S

DvlsAdvct

2015-08-20 17:08:39

Yeah, I think you're right. I wish there was an easier way to do it but it would come with too much latency. Instead, just having different presets active to pass the data through will be beneficial. Let me know how it goes.

Jared

brookesy

2015-08-21 00:58:01

How do I write this in the Rules tab?

F0 41 00 00 27 12 0C 00 02 68 01 0A 7F F7
^ ^

pp=0C qq=00

do you have to indicate where it lies in the string? etc 0C is the seventh value whereas the 00 is the eighth.

0C 00 swap out to 0E 6E etc

Do I just need just 1 translator message?

:?

Ps. the arrows should be under the 0C 00, it did this on one of the previous posts.

DvlsAdvct

2015-08-21 17:54:00

If you do it in one translator you don't need to use rules. You can just swap the entries between incoming and outgoing

Code: Select all

Incoming Message: F0 41 00 00 27 12 0C 00 02 68 01 0A 7F F7
Outgoing Message: F0 41 00 00 27 12 0E 6E 02 68 01 0A 7F F7
And that should translator. Does that make sense?
Jared

brookesy

2015-08-21 18:33:00

Hi J,
What if I had 150 parameters and all that needs changing is the preset number.

eg.
===== DELAY =====
0C 00 02 68 DLY TIME > 0E 6E 02 68 DLY TIME

0C 00 02 6C TAP TIME > 0E 6E 02 6C TAP TIME

0C 00 02 6E FEEDBACK > 0E 6E 02 6E FEEDBACK

0C 00 02 70 HIGH CUT > 0E 6E 02 70 HIGH CUT

0C 00 02 72 DLY LEV > 0E 6E 02 72 DLY LEV

5 here as shown.

Incoming Message: (F0 41 00 00 27 12 ) 0C 00 (02 68 01 0A 7F F7)

Rules change the 0C 00 to 0E 6E leave the data in the brackets untouched and then send to outgoing message

Outgoing Message: F0 41 00 00 27 12 0E 6E 02 68 01 0A 7F F7

All i would need to do is manually change the 0E 6E in Rules to control another preset.

It would be a massive time saver as it would save me writing it out for each and every parameter.

Does that make sense?

regards

Simon

DvlsAdvct

2015-08-22 21:50:05

Oh yeah. You could put something like:

Code: Select all

Incoming Action: F0 41 00 00 27 12 0C 00 pp qq rr ss tt uu F7
Outgoing Action: F0 41 00 00 27 12 0E 06 pp qq rr ss tt uu F7
Would that work? The only reason I kept the first half consistent is because since it never changes you never need to worry about it. It's only everything after the 0C 00 that matters.

Jared

brookesy

2015-08-23 14:38:50

Yeah, it works!! woo hoo!! get your party hats and streamers but before we do that.....

Thanks Jared for the reply and yes it does work which is really great, honestly I'm chuffed to bits but let's say I want to control a preset where the DELAY is not in use and is switched OFF. I manually switch the DELAY on.
I turn the knob, the VG-88 acknowledges the input data, it changes the parameter as normal but it turns the DELAY off.

I don't understand why?

The saga continues......

Once again thanks for all your help and have a great day :D

Simon

brookesy

2015-08-24 13:41:15

brookesy wrote:Hello Jared and to all following this topic,

I've finally managed to control the VG-88 with the BCR2000, not by using BMTP but using Mountain Utilities BC Manager that can address sysex data (even though Behringer don't publicise this)

An example.

VG-88 Delay Time parameter on the USER patch BANK 1 PRESET 1:

As written in BC manager, $F0 $41 $00 $00 $27 $12 $0C $00 $02 $68 val4.7 val0.3 cks-1 6 $F7 with the encoder's range set at Val 1. 0 and val 2. 715 as stated in the manual.

The 2 sets of asterisks that I queried at the start of this thread relate to the USER patch ($0C) and the preset no.($00) in other words the USER Presets 1-1 to 25-4 (0C 00 - OC 63 ).
You could also control the PRESET patches replacing the 0C to 0E or 0F as referred to in the manual

Then the VG-88 Delay Time parameter ($02 $68) which has a range of 0-715ms.

val4.7 val0.3 cks-1 6 refers to Behringer's BCL language which can be read as a PDF download at the Mountain Utilities Website.

The shame about this type of implementation is that you can control 1 preset at a time. Is there any way that Bome's Midi Translator Pro could translate the $0C $00 to control other presets with a global rules tab for all controllers. This would save a lot of time, Don't ya think?

Have a great day!!! :D

Simon
I saw this and I need to correct it, The VG-88 Delay (Time) parameter as written in BC Manager should be like this

$F0 $41 $00 $00 $27 $12 $0C $00 $02 $68 val4.7 val0.3 val12.13 val8.11 cks-1 6 $F7

It has a range of 0-1813 (decimally), with 0-1800 amounting to milliseconds (one-to-one), and 1801-1813 standing for various BPM-related values.

Sorry about that

S

DvlsAdvct

2015-08-24 22:52:55

brookesy wrote:I manually switch the DELAY on.
I turn the knob, the VG-88 acknowledges the input data, it changes the parameter as normal but it turns the DELAY off.

I don't understand why?
Hi again Simon.

So glad it's moving forward.

As far as your question goes, is the Sysex message different to change the parameter for an on or off message?

Can you watch the log window in MT Pro and see if anything is being sent that shouldn't be?

Thanks
J

brookesy

2015-09-05 23:31:43

Hi Jared,
Sorry I've not replied, I've been finishing the configuration file and doing some testing.
I have sorted the problem out with MT but initially the problem was the system I was working with (not enough MIDI i/o).

The translator with the smallest number of bytes (the majority of messages, Thankfully) work fine but in order for it to work with the messages that have a value of 4 bytes, you have to write the translators for these( approx 6), so no real hardship.
I'll try to give you a better explanation in the next couple of days. I have to say though, it is working a treat(alongside the editor) and really opens up the VG-88's possibilities.
Regards
Simon

DvlsAdvct

2015-09-07 19:24:25

Hi Simon

I'm really glad to hear that. Florian works very hard to make this stuff work like it does, and it's a pleasure to help everybody make it do something awesome.

Jared