BC Manager doesn't change preset on the BCR

4 posts / 0 new
Last post
Pistor
Pistor's picture
BC Manager doesn't change preset on the BCR

Hi,

thanks for the BC Manager, it's great! I made a preset that disables all the Store/Edit/etc. and Preset change buttons, and I assigned all buttons to send note events and all rotaries to send CCs on channel 1. (I also wrote a script to set the rotary encoder speed to 96 192 384 768 for all.)

I stored this preset in preset 1 of the BCR. So now I can't change the presets on the BCR anymore because I remapped the buttons to send notes (which is how I want it). So I should still be able to switch presets from the BCR manager, with any of the 3 methods (Prog change, Sysex, BCL), right?

But now when I switch the presets in the BC Manager, the BC Manager doesn't cause the BCR to switch to that preset, it stays on preset 1. (It used to cause the BCR to switch presets before.)

I checked in the Midi Output Monitor, nothing gets sent (prog change or sysex should show up).

I tried to change the Prog change method in the Midi Options of the BC Manager from Sysex to Prog change, or to BCL, but as soon as I close that dialog and reopen it, it's back to Sysex, why?

In the global setup the Feedback midi channel is 1, and I can set the BCR's knobs and button states by sending midi msgs to it on channel 1 with another program. If this works, shouldn't the BC Manager accept the option to send the preset switch as prog change msg?

Or am I doing something else wrong?

I'd be really grateful for any help on this.

Mark van den Berg
Mark van den Berg's picture

What are you actually doing when you're "switching presets in BC Manager"?
You can make the BCR select a memory preset from BC Manager's "Presets" window by pressing the spacebar or via Edit -> "Copy to preset 0", provided that "Select preset upon Copy to preset 0" in the "MIDI options" dialog box is on.
I've just tested this myself (BC Manager 3.1.0, Windows edition): if the "Method" parameter is "Select Preset", the "MIDI output meters" window shows the outgoing SysEx message and the BCR's display updates to the selected preset number. I can't see how the content of the selected preset (in particular "Function of function/preset keys") could prevent this.

In the "MIDI options" dialog box, "Select preset upon Copy to preset 0" and "Method" don't always update to the new values because of a bug introduced in BC Manager 2.6.0. Thanks very much for pointing this out!
I'll fix this bug in the upcoming version 4.0.0, but until then you can use the following workaround:
Open the MIDI options dialog box, change the Device parameter to an arbitrary value and press OK.
BC Manager will now open a dialog box in which it is trying (and failing) to find the BCR. You can click Cancel immediately.
Then reopen the dialog box, revert Device to its original value, change "Select preset upon Copy to preset 0" and/or "Method" as desired and press OK.
BC Manager should now find the BCR again.
Reopen the dialog box to verify that all parameters are now changed as desired, and click Cancel.

However, as I stated above, it should not be necessary to change "Method" from its default "Select Preset".
(Note: if you set it to "Program Change", you face an additional constraint: the global Receive Channel set on the BCR itself and the value set in BC Manager's "Global setup" dialog box must match. That's one reason why "Program Change" is not recommended.)

Hope this helps,
   Mark.

Pistor
Pistor's picture

Thanks for the quick reply.

By "switching presets" I mean clicking the left/right arrow buttons in the layout view or selecting a preset's row in the presets window.

Clicking these left/right arrow buttons used to also switch to that preset on the BCR before, but now it doesn't, why?

Preset 0 on the BCR is the in-RAM preset that doesn't survive a restart, unless stored to a real preset, right?

When I press space to copy a preset to preset 0, the BCR shows that preset, with the "Select Preset (sysex)" method.

So how can I switch to another preset than 0 on the BCR? I'm 99% sure that it worked with the left/right arrow buttons in the preset layout view before.

Regarding Receive Channel constraint for Program Change: I want to have this working too, so that I can switch presets on the BCR from other software with a simple prog change msg. This is my global setup:

https://i.imgur.com/JVRTT2h.png

https://i.imgur.com/OcPUPlG.png
It received this data from the BCR, so how can there even be a mismatch between "Receive Channel set on the BCR itself and the value set in BC Manager's 'Global setup' dialog box"?
Isn't the channel reported in global setup always the one that's also set on the BCR, because it fetched this global setup data from the BCR?

I only see this one global setup section in BC Manager. Or is this the wrong dialog box? (Since I remapped the buttons on the BCR I can't check the channel there.)

Ok, I followed the steps and got "Program Change" working for "copy to preset 0" (and Channel 1 lights up in the midi output monitor due to the prog change msg). But when I make a change to preset 0, it doesn't reflect that change on the BCR until I copy preset 0 to another preset and send that. Is there a way I can test changes in this in-RAM preset on the BCR before setting it in stone in a real/numbered preset?

It seems that when I "copy preset N to preset 0", on the BCR it just switches to preset N, it never actually modifies the BCR's in-RAM preset, is this correct?
Thanks again!

Mark van den Berg
Mark van den Berg's picture

Clicking these left/right arrow buttons used to also switch to that preset on the BCR before

No.
When a memory preset on the BCR is selected ("recalled"), the BCR copies the memory preset to the temporary preset. In other words: the temporary preset ("preset 0") gets overwritten.
So if BC Manager were to send a recall command in any form (Program Change, Select Preset or $recall) to the BCR whenever the user presses the left/right arrow, this would make working with preset 0 independently very difficult, because it would get overwritten "all the time." This is why in BC Manager the user has to explicitly execute "Copy to preset 0" (e.g via pressing the spacebar).

One of the nice things about preset 0 is that you can set up an individual button/encoder in BC Manager, then send only that button/encoder to the BCR to test it. This is impossible for memory presets, because these can only be uploaded to the BCR as a whole.

See section 7 of the BC Manager manual for further explanation.

So how can I switch to another preset than 0 on the BCR?

Strictly speaking you can't. By definition, the temporary preset ("preset 0") is what is active on the BCR. When you select (recall) a memory preset on the BCR, that memory preset is copied to the temporary preset. Yes, the BCR's display will then show the number of that memory preset, but this basically only means "this is the number of the memory preset last copied to the temporary preset".
Also see question 8 in section 32 (FAQ) of the BC Manager manual.

It received this data from the BCR, so how can there even be a mismatch between "Receive Channel set on the BCR itself and the value set in BC Manager's 'Global setup' dialog box"?
Isn't the channel reported in global setup always the one that's also set on the BCR, because it fetched this global setup data from the BCR?

BC Manager only retrieves the global setup (including the Rx Ch) from the BCR when you tell it to (either via "Receive all data" from the B-Controls window or via "Receive" from the "Global setups" window). So there will be a mismatch after you change the Rx Ch on the BCR or in BC Manager until you synchronize explicitly.

when I make a change to preset 0, it doesn't reflect that change on the BCR until I copy preset 0 to another preset and send that. Is there a way I can test changes in this in-RAM preset on the BCR before setting it in stone in a real/numbered preset?

As I stated above, preset 0 in BC Manager directly maps to the temporary preset of the BCR, so there should be no need to copy preset 0 to a memory preset until you really want to commit your new preset there.
After setting up an individual button or encoder in preset 0 in BC Manager, go to the "Preset 0: Buttons/Encoders" window and press the green MIDI socket button (or execute MIDI -> Send from the menu) to send only that button/encoder to the BCR.
To send preset 0 as a whole to the BCR, select (highlight) preset 0 in the Presets window and execute MIDI -> Send from the menu.

The root cause of all this confusion is of course that the BCR uses its temporary preset as a corridor for its memory presets, which is very unusual, but we just have to live with this.
Most MIDI hardware devices that distinguish between temporary and memory areas keep these areas strictly separated - for good reason...

Hope this helps,
   Mark.