setBfree: snapshot request

I realized I have not yet understood setBfree with 2 manual.
If you can share here a snapshot of setBfree with 2 manuals to play lower and upper manuals with a 88 key keyboard that send MIDI channel 01, it would be very useful.
Thank you in advance.

Simply select lower+upper when adding the engine.


1 Like

I did it.
Problem I have is that CC64 does not work as toggle swich for Rotary speed as it works in Upper manual preset.
Is it a bug?
There is a workaround?

With MIDI learn, sustain pedal works as temporary

It works for me. Could you describe your problem?
Remember that rotary is global. You can’t enable rotary for a single manual. Rotary is placed in the engine’s output, that include the output from the 2 manuals + pedals.


1 Like

I opened a ticked expalin better

Hi Jofemodo
I am using ORAM 2403 updated yesterday

I do not understand how to use setBFree with upper+lower setting or maybe there is a n issue.
To be clearer:

a) Add an instrument chain → setBfree
c) → Upper + Lower
d) → Sine
e) → Blues 1

On mixer now I have:
chain 1: setBfree/Upper Blues 1
chain 2: setBfree/Lower LCello

Both channels respond to MIDI CHANNEL 1 but not in the same time:
if cursor is on chain 1 you play Upper Blues 1
if cursor is on chain 2 you play Lower LCello
if cursor is on Main you still play Lower LCello

so how to play both manuals in the same time with a 88keys controller?

Hi @piattica!

You have your Zynthian configured to use active mode for your MIDI input. This mode targets all MIDI note messages at the currently active (selected) chain. You can change this to multitimbral mode by bold SELECT on a chain to show its Chain Options menu then selecting the MIDI In menu then bold SELECT on the input you wish to configure. (This can also be done from the Admin menu MIDI Input menu.) In multitimbral mode, the MIDI channel decides what chain is used.

There is another option that allows you to stay in Active mode but to play all the chains with the same MIDI channel, e.g. you could configure 2 chains to listen to MIDI channel 1 and both will play in a layered way. To enable this you go to Admin menu and enable Active MIDI Channel.

You probably want to play the different setBfree manuals sepetately, not layered. If you have 2 keyboards with different MIDI channels you can use multitimbral mode to configure this but you can also use split keyboard mode. Enable Active MIDI Channel then for each chain, bold SELECT to access its Chain Options and select Note Range & Transpose. Adjust the keyboard range (to configure split keyboard) and use Transpose to bring the key range back to where it should be.

I use always active MIDI channel.
upper and lower setBfree chains cannot be set as all the other splits: I can’t manage them to play in the same time

that is why I asked a working snapshot with Upper and Lower driven by same channel and splitted
mine is that:
014— setBfree lower&upper.zss (8.5 KB)

1 Like

I just tried this and although the split and transpose can be set up, there is a constraint in setBfree that does not allow changing the MIDI channel of each chain. Indeed MIDI Channel setting is missing from all the setBfree chains. I wonder whether this was a side effect of the a bug fix that @jofemodo recently applied? When I refactored setBfree for the chain manager in Oram I am sure I removed this constraint so it feels like a regression. We will have to investigate.

1 Like

OK I opened an issue

1 Like

setBfree is a special beast and manage its own splits. When starting the engine, you have 6 options and half of them (3) are for splitted modes. I never tried using Zynthian key range with setBfree, but I don’t think it’s well suited.


do you have an idea for a workaround?

Wait … it seems that the “splitted” modes have been removed. @riban, do you know something about this?


I re-added the constrain because setBfree channel can’t be changed without reconfiguring and restarting the engine. The current engine implementation doesn’t support this,l so i re-added the option because it didn’t work.

Regarding the splitted modes, i didn’t note you have removed them until now. I really like the simplicity these modes offer and i would like to restore them. Anyway, we should fix things to allow MIDI channel change and get key-range / transpose working. Using the “trick” you used for fluidsynth and zynaddsubfx, we could implement this quite easily without restarting setBfree. I will do ASAP.



Yes - I removed the split modes because they were fixed and did not suit every keyboard combination. The changes allowed for proper split and transpose allowing users to configure exactly as they want. If we fix the other issues this should be fine.

1 Like

But they works nicely for many use cases and they are super fast to setup!!
Configuring with key-range takes time and it’s bored. I must say i ALWAYS use these modes when playing setBfree, so i will restore the splitted modes in Oram :wink:


1 Like

OK! I just restored de “native” split manual modes in setBfree:

  • Split Lower/Upper
  • Split Pedal/Upper
  • Split Pedal/Lower/Upper

They are predefined in the setBfree config like this:

# These programs demonstrate split and an associated transpose.
57 {name="Lowr/Upr Split",   keysplitlower=58}
58 {name="Pd/Lw/Up Split",   
59 {name="Pdal/Upr Split",   keysplitpedals=54, trssplitpedals=-12}
60 {name="No split",         keysplitpedals=0,  keysplitlower=0}

If you want to tweak it, you should modify to this file:


but be warned that any change to these files will be overwritten by the update system unless you exclude the modified files by adding them into the “.gitignore” file.

The best,


I will implement MIDI channel change in setBfree ASAP, so we can also use the zynthian’s key range mechanism.



thank you for the temporary workaround!
it would be better to invert Low and Up because of presets
the total range is only 60 keys

You can tweak the setBfree config file as described above so it fits your playing style and setup.


1 Like