Control of Roland Integra 7 through BCR2000 and BC Editor

11 posts / 0 new
Last post
Alex
Alex's picture
Control of Roland Integra 7 through BCR2000 and BC Editor

Hi all!

I own an Integra 7 ( Rack module from Roland) and was thinking to buy a BCR2000 to get control of all internal parameters of the synth. Of course all these messages can only be controlled through Sysex messages. Apparently standard Behringer editor is insufficient ( and actually not available for Mac) so I found BC editor that looks very much capable to get a full control.

Some questions I would have:

1)Does any of you have any experience with BCR2000/BC Editor to manage Integra 7?

2)is there any Midi learn function in BC editor to easily map the Sysex messages? As said I am quite a newbie with Sysex and not feeling energic enough to learn from the scratch Sysex language.

Thanks for your help!

Alex

Mark van den Berg
Mark van den Berg's picture

Hi Alex,

SysEx protocols vary widely among manufacturers and devices, so a learn function for SysEx would be virtually pointless/impossible.
So I'm afraid you will have to "get your hands dirty" to set up the BCR2000 (or any other controller) to work with your INTEGRA-7.
However, this may not be as difficult as you might think:

I've taken a quick look at the INTEGRA-7's MIDI implementation document (downloadable from http://roland.com/support/article/?q=manuals&p=INTEGRA-7): as I'd expected, it uses the standard Roland SysEx protocol.
This is good news, since BC Manager greatly simplifies the task of setting up a BCR2000 with a Roland device:

As explained in section 18 of the BC Manager Manual (https://mountainutilities.eu/system/files/download/BCManManual3.0.0.pdf), you can write a relatively simple "SysEx model definition file" for the INTEGRA-7.
Writing this file might seem extra work, but in fact saves you from having to define each SysEx message yourself.

This file must consist of two parts, a header section and a parameter list:

The header should specify the INTEGRA-7's SysEx protocol.
I think it should look like this:

ManufacturerName=Roland
ManufacturerID=41
ModelName=INTEGRA-7
ModelID=00 00 64
DevicePosition=BeforeModel
MinDevice=10
MaxDevice=1F
DefaultDevice=10
Command=12
AddressLength=4
ChecksumMethod=1
ChecksumStart=7

After that you can define any number of parameters, one per line, specifying its address, range and name.
Basically you can simply copy these lines from the INTEGRA-7's MIDI implementation document.
So for instance:
02 00 00 05 | 00 - 7F | val ;Master Level
Once you get the hang of this, it becomes an almost trivial typing exercise. (There are a few snags, but I can help you with these if you actually decide to try this.)

Once you've written this file, you can load it in BC Manager, and then you can assign any of the parameters defined in the file to any knob or button on the BCR2000, move them around etc.

Hope this helps,
Mark.

Anonymous (not verified)
Anonymous's picture

 

 thanks Mark! I finally received my BCR today so I will go through your manual this weekend and try to make first uploads. Is there any additional app apart from BC Manager I need to Have to prepare these uploading files? Thanks!

Mark van den Berg
Mark van den Berg's picture

Well, of course you need a text editor to write the ini files. An editor that is capable of "syntax highlighting" is recommended, but not essential. From your first post I gather that you're a Mac user, so I'm afraid I can't advise you on that, being primarily a Windows user.

By the way, you may pick up a few tips on how to write SysEx ini files for Roland devices from this message thread.

Anonymous (not verified)
Anonymous's picture

HI Mark,

Finally made to insert my first Sysex messages!

I have a question regarding how to implement a Sysex message on/off in a button.

I read from Integra the two on/off messages:

$F0 $41 $10 $00 $00 $64 $12 $18 $00 $21 $01 $00 $46 $F7
$F0 $41 $10 $00 $00 $64 $12 $18 $00 $21 $01 $01 $45 $F7

I inserted the first message in the button and it works (this is the off message). The problem is that I do not know how to bring it back to to the On ( the second message) through pressing again the button ( the idea would be that when I press it switches the first message and when I press it again it switches the second message).

Thanks!

Thanks

 

Mark van den Berg
Mark van den Berg's picture

In the first place you have to set the button's Mode parameter to Toggle on the 'Custom output' tab of the button dialog box in BC Manager. (This amounts to .mode toggle in BCL; see BC MIDI Implementation.pdf, section 15.9.)

I can think of two ways to make the button send message A the first time you press it and message B the second time:

1. Via ifn A ifp B. (See BCMI section 14.6.4.)
So in your case:
ifn $F0 $41 $10 $00 $00 $64 $12 $18 $00 $21 $01 $00 $46 $F7 ifp $F0 $41 $10 $00 $00 $64 $12 $18 $00 $21 $01 $01 $45 $F7
In this case you only have to set Value 1 and Value 2 on the Custom output tab to different values: e.g. 0 and 1, or 0 and 127 - whatever. (You have this freedom because Value 1 and 2 aren't sent in this case: they just need to be different to make the ifn/ifp construct function correctly.)

2. Via val cks-1 n.
val (BCMI section 14.6.1) indicates the current value of the button, so in this case Value 1 and Value 2 must be set to 1 and 0 respectively (or vice versa, depending on which message you prefer to be sent first; you may also want to set the default value (on the General tab) to 0 or 1).
cks-1 n (BCMI section 14.6.3) means that the BCR calculates and inserts the proper Roland checksum byte, where n should be the index of the first address byte of the SysEx message (the very first byte ($F0) has index 0). For the Integra 7 n should be 7 (coincidence? haha...).
So in your case:
$F0 $41 $10 $00 $00 $64 $12 $18 $00 $21 $01 val cks-1 7 $F7

As you can see, method 2 is more sophisticated and shorter (and in fact the only viable method for encoders, which can have many values).
For even more sophistication, you could generate the val cks-1 definition via a 'SysEx model definition file' (see the BC Manager manual, section 18). This is particularly recommendable if you want to assign lots of SysEx parameters to buttons/encoders.

Hope this helps,
Mark.

Alex
Alex's picture

Thanks Mark!

Actually I managed to find a solution to my problem through the push encoders.I included the On message when twisting the knob but also managing the Volume level of that specific part. When pressed the encoder the off message is triggered. With this strategy I can with the push encoders manage the volume of each instrument or simply mute them when pressed.
I realized I had not read the BCMI document ( just the manual for BC Manager) so I will go through it now.

In any case I will try your suggestions so I can learn more on how it works.

I have some problems to adjust the Master Coarse Tuning ( I wanted to manage it through an encoder).

Midi implementation of Integra mentions the following.

Master Coarse Tuning Status Data byte F0H 7FH, 7FH, 04H, 04H, llH, mmH 
Byte Explanation F0H Exclusive status 7FH ID number (universal realtime message) 7FH Device ID (Broadcast) 04H Sub ID#1 (Device Control) 04H Sub ID#2 (Master Coarse Tuning) llH Master Coarse Tuning LSB mmH Master Coarse Tuning MSB F7H EOX (End Of Exclusive) 
llH: ignored (processed as 00H) mmH: 28H - 40H - 58H (-24 - 0 - +24 [semitones]) 
* The Master Key Shift parameter (SYSTEM:SOUND) will change. 
Status F7H 

My main headache is how should I define this parameter in the "Sysex model definition file" so I can adjust the transposing function by semitones giving values in the range of -24 till 24.

Any clue how to do this?

All the best

Mark van den Berg
Mark van den Berg's picture

From the INTEGRA-7's MIDI implementation document I gather that it listens to three "Universal Realtime System Exclusive Messages":
Master Volume: this actually sets the Master Level parameter
Master Fine Tuning: this sets Master Tune
Master Coarse Tuning: this sets Master Key Shift

You cannot define any of these Universal Realtime System Exclusive Messages in BC Manager's SysEx model definition file, because the message format is incompatible.
So if you want to assign one of these messages to an encoder, you will have to set up the encoder directly (i.e. via the "Custom output" tab of the encoder dialog box in BC Manager).
For instance, for Master Coarse Tuning:
Message: $F0 $7F $7F $04 $04 $00 val $F7
Value 1 = 40 (=28H)
Value 2 = 88 (=58H)

However, if the MIDI implementation document is to be believed, a Master Coarse Tuning message (as described on p. 7) actually sets the Master Key Shift parameter (p. 9).
So it should also work to change Master Key Shift directly, i.e. via a DT1 message, and of course this can be defined via BC Manager's SysEx model definition file.
I think the parameter line should simply be:
02 00 00 04 | 28 - 58 | val ;Master Key Shift

You may want to test whether the Master Coarse Tuning and Master Key Shift messages are indeed equivalent. If so, you have a choice.

Hope this helps,
Mark

Alex
Alex's picture

Hi Mark,

thanks for your answer! Tomorrow I test it! 

I was reading the BCMI and I observed there you have to do some kind of programming.

For example:

$encoder 1
.showvalue on
.mode 1dot
.resolution 100
.minmax 0 100
.tx $C0 $01 ifp $C1 $01 $F0 $7D $F7 $C2 $01

My question would be: where should we insert these lines in BC Manager? I mean where exactly I have to write it so the program is activated?

Thanks!

Mark van den Berg
Mark van den Berg's picture

BC Manager intends to hide BCL (with all its complexities) from the user as much as possible.
So most BCL statements can be entered in BC Manager by changing some graphical element (checkbox, knob, etc.).
To take your example:
.showvalue -> "General" tab -> "Show value" checkbox
.mode -> "General" tab -> "LEDs" pull-down box
.resolution -> "General" tab -> "Resolutions" knobs and "Speed levels" radio buttons
.minmax -> "Custom output" tab -> "Value 1" and "Value 2" knobs
.tx -> "Custom output" tab -> a line in the "Output" grid

However, BC Manager also offers the "BCL editor" (accessible from the View pull-down menu in the B-Controls window), in which you can type and "execute" BCL scripts.
But you can't successfully execute anything in the BCL editor that you cannot also enter graphically, so normally you'll never need the BCL editor.
However, the BCL editor can be useful when you have found a BCL script made available by someone - such as the script from BCMI that you mentioned. But executing a BCL script is always a tricky business, so you really need to know what you're doing in the BCL editor.

Mark.

Alex
Alex's picture

Hi Mark,

the inf/inp method worked as you explained. Great!

it's amazing this feeling as I am starting to get a grip on the beast and thanks to your help/software!

thanks!