Set LED-encoders/value on BCR2000

10 posts / 0 new
Last post
OSon's picture
Set LED-encoders/value on BCR2000


i am new in Programming then BCR2000. Maybe this question was answered before, but i didn’t found anything.

I try to send some sysex Data to my Axe FX. This works very well! But I also like to receive some Sysex Data from the axe Fx to set the value of the encoders. If i recall another preset on my Axe FX, i want to manipulate the actual data in the axe fx. Via sysex I am able to read out the different parameters of my Axe FX preset. So now I have to set the encoders too. 

Is it Possible with the BCR2000 and the BC manager?

thank you for your help!

Royce's picture

Firstly, the sad news, you can't send sysex to the BC and get it to reset it's value.

This would be very difficult for the BC to do as it would have to be able to sort out how to handle the dozens of different
positions the data could be in.
Also it would have to know what the form the data is in (E-mu uses 2 bytes of data for 14bit positive and negative data.
Kenton use 8 bits, but splits it up over two bytes, Roland can use up to 4 bytes for a single value... etc).

You can only do what you want to do by a 'man in the middle' computer or micro controller.
It would take the sysex from the synth and extract the value and send it to the BC as a CC message.

In fact it is best for the BC just to send and receive CC messages and the computer to sort out the sysex.
This way when you do a patch change on the synth and it sends out a PC message the computer can request a bulk dump
of the patch (the quickest way to get it) and then unpack it and send out a series of CC messages to the BC
so it will be in sync with the synth.

This setup can be quick and very effective and turn the BC and the synth into great single machine.
You might like to look at my website where I have done this for a Korg DW6000 and again for a Yamaha 4op FM synth the TQ5.
Look under "Synth Control for the the TQ5.

All the best

OSon's picture

Hi Royce,

thanks for your reply. It is no problem. I will do it with a simple Arduino program. Can you tell me, where I find some Infos, which CCs I have to use? I already read about it but found nothing in concrete.

OSon's picture

I think I unterstand Now a Little Bit. 


Is it possible to set the encoder leds via sysex by my Arduino?

Royce's picture

The CC messages between the BC and the Arduino can be any type from 0 to 127 (1 to 128) on any channel 0 to 15 (1 to 16).

I would write the code on the Arduino that converts the CC to sysex and sysex to CC first as this won't change.
You may find that you need to change and refine the layout on the BC and this is a simple mater to do on Mark's editor

Note that you have to have a Midi In and Out from the FX unit and an Midi In and Out from the BC into the Arduino to make
it work.
The Arduino has a UART that you can use for Midi, but you will have to sort out another serial I/O for the other Midi port.
There is Arduino code to turn a couple of pins into a serial interface around, so have a look for that.

If you need the Midi hardware specification, you can find it at the Midi Association website. It's free.
The download button is at the bottom of the page.
You may have to register as a member.

Let me know how you get on.
All the best

OSon's picture

Ha! I got it! Really nice and so simple. Trank you very much!

for my Arduino project it would be nice to read out the config of the encoders and Buttons. They send some sysex Data but i Want to know what sysex they send! Is it possible with BCL? I Need an real BCL Example. Is it like Sending sysex Data from the Arduino?

Royce's picture

If you have a BC preset for the Axe FX, you can get the preset out of the BC by using Marks editor.
You can then see the sysex in the editor in the Custom Edit column of the Encoder and Button windows.
You can also use MidiOx (or Mark's editor ) to see what sysex the BC is putting out when you twist the encoder.

If you want to read the BCL (although you don't have to learn BCL to do what you want to do) you can open the text
editing window in Mark's editor.

Use the View menu option in the B-Controls window and select BCL Editor.
This gives you a colour display of the BCL (see page 95 of the editor manual)

All the best

OSon's picture

Ok, but I want dynmically read out Which encoder send what CC and what sysex Data. This is behause i want a Self configure Funftion for my Arduino.

Royce's picture

I got the manual for the Axe FX from Fractal's web site and it doesn't include any information for sysex.
I couldn't find any other sysex documentation.
You will need to write to the guys at Fractal Audio Systems and ask for the information.

There is NO sysex coming from the BCR.
The 'man in the middle' system works like this...

BCR CC messages Arduino Sysex messages Axe FX

Most of the time the BCR sends values in the CC messages, these are converted to sysex parameter messages by the arduino and
sent to the Axe FX.

To synchronize the BCR and the Axe FX, the Arduino also has to be able to detect any patch change message from the Axe FX and
then request the patch data (usually by bulk data sysex) from the Axe FX.
When the arduino gets the patch data from the Axe FX the arduino unpacks the data and uses those values in CC messages to
synchronize the BCR.

You can also forget the arduino and set the Axe FX to respond to CC messages from the BCR.
This would work perfectly well one way (BC -> Axe FX), but I couldn't see any mention of CC messages being
sent out from the Axe FX to synchronize the BCR

I don't really see why you would want to dynamically allocate either sysex or CC as it is so easy to reprogram the BCR.

Inside the Arduino I would have a one to one table that maps CC channel and type (unique) to sysex parameter number (unique)
and when you get a CC message from the BCR pop the value in the correct parameter sysex and send it to the Axe FX.

Use the same map to go the other way from the Axe FX to the BCR

Did I miss the point of what you are asking?

All the best

marcost's picture

Hi all the midi sysex info for the axe fx parameter and function control can be found in the axe fx wiki pages. I haven't posted links as I don't know which axe fx you have and the sysex is different between versions.

Using this info, a bcr and a midi translator running on pc between the bcr and axe (ultra), I was able to access all midi-controllable functions.

Note as already stated that the axe fx does not send sysex in a way that would allow updating of the bcr status leds, so the communication is strictly one way.

Hope that helps