Transmit to all midi channels (omni)

7 posts / 0 new
Last post
paulster44's picture
Transmit to all midi channels (omni)

Would like to know if it's possible to transmit omni from a note value assigned to a button.. (or any control actually)


Richard Crane
Richard Crane's picture

I'm not sure what you are asking, and I suspect others may not be either. Do you want a one button send to something that puts it in Omni mode? Or do you want to switch all following BCF/R transmissions to the same thing on all 16 Channels? I don't think that you can do the later with a BCF/R but a MIDISolutions Event Processor would be able to do that (and could be switched by the BCF/R).

Mark van den Berg
Mark van den Berg's picture

Reading your question I felt the same ambiguity as Richard.
But if you want to make a BCF/R element (button/encoder/fader) send the same MIDI message to all 16 channels, you can define what BC Manager calls a "custom output" statement. (Internally this works via a ".tx" statement.)

However, you should keep in mind that an element's custom output definition is restricted to 127 bytes.
Naturally, each "hard-coded" MIDI byte (except $FE in fact) takes up 1 byte, but e.g. the "val" identifier (standing for the element's current value) takes up 2. And a ".tx" statement itself takes up 2 bytes as well. (See section 14.6.6 in "BC MIDI Implementation.pdf" for further details.)
So if you want to duplicate one or more messages for each of the 16 MIDI channels, the definition for a single channel can maximally take up (127-2) div 16 = 7 bytes.

A MIDI Note On message consists of 3 bytes, and if these are all "hard-coded" (not containing "val" or so), the definition of the message simply takes up 3 bytes.
So a button has more than enough room for a "hard-coded" Note On message duplicated on all 16 channels.
For instance:
.tx   $90 $40 $64   $91 $40 $64   $92 $40 $64   $93 $40 $64   ...   $9F $40 $64

For an encoder, you'd probably want to do something with the encoder's value, so you'd need something like
.tx   $90 val $64   $91 val $64   $92 val $64   $93 val $64   ...   $9F val $64
Here each "val" takes up 2 bytes, so each message takes up 4 bytes, which is still well below the maximum.

Hope this helps,

paulster44's picture

Awesome, Thanks Mark.  What I needed to know.
Thanks Richard, sorry for my lack of clarity.


anskifeji's picture

I'd like to jump in on this thread.

First of all, many thanks for BC Manager. It helped turn my old synth into a powerhouse and I'm very appreciative.

said synth has 6 voices and now I can now independently adjust the 6 filters and LFO's and other parameters.

I have 6 identical presents on the BCR2000, one for each channel;

additional presets allow for tuning 6 differents filters simultaneously – or LFO's or whathaveyou. awesome : )

...and all very quick and easy to setup and edit of course....

it would however be amazing to be able to send any given control change to multiple - specific channels simultaneously.

....if it's possible, could i have a push in the right direction in terms implementing such a thing?.//




Royce's picture

You could, of course, create a new preset and combine messages to different channels either by system exclusive or multiple CC messages.

For instance, you could have a "Filter" preset with one row of encoders changing the each of the filter parameters of all 6 voices at once. Another row (or press one of the group buttons for the top row) to have messages for just the three odd channels, another row / group just the even channels etc.

The BC can have many MIDI messages on a single control.

You could then have a patch for each element (Osc, filter, amp, LFO etc) and swap between them.


anskifeji's picture

thanks Royce !

nice to know that's possible. you'd send many MIDI messages on a single control using 'custom output' messages?
I'm going to dig through the manual... tips welcome : )