MIDI learn and others

I have a MIDI controller keyboard that I use for many MIDI modules and I defined 9 sliders to control drawbars as CC12…20
I used the MIDI Learn to control setBfree but the behaviour of drawbars in SetBfree is inverted:
I got 127 when slider is at “0” position.
Is there a magic command to invert the sllider position in SetBfree?

I do not want to change the MIDI controller setup

It’s on purpose! Think that in the original B3 you “pull” the bars to increase the level. setBfree is thought to emulate the original B3 with a MIDI controller so it uses inverted logic for the drawbar midi controllers, so you get the maximum level with the fader at 0, simulating you are pulling the bar. I wouldn’t like to change this behavior in zynthian.

Is there a simple workaround?

No. It’s a feature :wink:

Indeed, many commercial organ emulators use “inverted” sliders for the drawbars:

Regards,

my controller has sliders setted in that way (as Hammond drawbars): 0 ifar from player and 127 close to player
image

when I do MIDI Learn I got the opposite: why?

1 Like

@jofemodo I think we may need an invert option. As we see, some hardware controllers are already reversed so don’t need software reversal.

maybe I can get what I need some “MIDI tool”

I was trying to find a solution to the problem described by a @piattica . And I came across the following.

Please could someone try the following to see if it works?

  • I created a channel with setBfree
  • I assigned a MIDI CC Map in front of it, which I configured as follows to
    ** Filter Channel: Any
    ** CC input: 70
    ** CC output: 71

I jumped to the drawbars 1 page in controls.
On the external controller (torso T-1) I turned the encoder with CC 70 transmission, in the MIDI log it shows CC70, setBfree also shows a reaction to CC 70, because DB 16 changes.

I expected that DB 5 1/3, which is set to CC 71, will be change.

The classic question, is this a feature or a bug?

Hi @ToFF !

MIDI-learned controls can’t be filtered “on-chain” because MIDI-learning is processed before reaching the chain. Indeed, the channels setBfree is listening are not the channels shown by zynthian. All these is mapped and masked to allow moving the engines from a channel to other, all the MIDI routing magic, etc.

You could try to process the MIDI stream in a separated MIDI chain, then send-back to the router. This would allow to do the processing you want.

Anyway, i will consider adding a flag to reverse setBfree’s drawbar behavior.

All the best,

1 Like

Yeah, I kind of thought it would.

So I tried the following:
chain 1. - instrument with setBfree - midi channel set on 1
chain 2. - midi with MIDI CC map - midi channel set on 2, midi out - send midi to 1#setBfree selected

In this case, no signal from channel two reaches channel one.

You should send-back to the router (router feedback). Remember that MIDI learning is processed BEFORE chains. Sending back to the setBfree chain is not going to work.

Regards,

1 Like

Unfortunately, I am not successful with x Router Feedback either. Maybe it’s the Gin and Tonic I had :slight_smile:

1 Like

Yep! It’s tricky! Gin-tonic could help, indeed! :grin:

You don’t need to use the Zynthian midi learn for SetBfree drawbars, these (and all parameters) are set by default. Just set the sliders on the controller keyboard to CC values 70-78, and you are ready.

You find the default parameters here: setBfree/cfg/default.cfg at master · pantherb/setBfree · GitHub

1 Like

I have added a CC mode called “Absolute Reverse” in testing (vangelis). This inverts the range of a controller so can be used for this purpose. You access the control options menu by bold press a controller knob or bold touch the controller display widget. The current mode is shown in the menu and selecting this allows manual selection of the mode from:

  • Absolute Mode
  • Absolute Reverse
  • Learn Relative Mode (enters automatic detection)
  • Relative Mode 1…4

This new reverse mode needs some testing because I am not sure whether it may have adverse impact on already reversed controls. Please test.

1 Like

next days I will try

This is now in staging (oram) so no need to be on testing (vangelis) to test.

1 Like

I setted version to staging and update
but I got apparently 2 problems:

Updated 0 paths from the index
error: object file .git/objects/48/7654d909455c1aa90c55dd5a519eb2ad2a377f is empty
error: object file .git/objects/48/7654d909455c1aa90c55dd5a519eb2ad2a377f is empty
error: object file .git/objects/e5/5e3b1002ffaaf63347457eab722635943416ce is empty
fatal: loose object e55e3b1002ffaaf63347457eab722635943416ce (stored in .git/objects/e5/5e3b1002ffaaf63347457eab722635943416ce) is corrupt
fatal: unpack-objects failed

and update icon still there aftyer updating

My controller has a setting to reverse the CC values on the sliders.

You have a corrupt file system. I would suggest reimaging. You could try a couple of updates in webconf first to see if recent git update changes may help resolve your issue.