Open chrisdiamand opened 3 years ago
If you suffix a midi-mapping with a minus-sign, the range is reversed (grep for MFLAG_INV
).
eg. https://github.com/pantherb/setBfree/blob/master/cfg/cx3.cfg
As for the Leslie, I don't know what a good solution would be. Perhaps add a 4th way There's already rotary.speed-toggle
(slow/fast), rotary.speed-preset
, rotary.speed-select
to satisfy other controllers.
However I don't see an easy way to combine those with an explicit internal stopped state, since that can lead to ambiguities and maintaining backwards compatibility with existing sessions will be tricky. Using two controls for a parameter that should be atomically automatable needs to be avoided.
If you suffix a midi-mapping with a minus-sign, the range is reversed
That worked perfectly :)
Perhaps add a 4th way
Sounds good - I've got most of a patch for that, I'll tidy it up and send it over. In the meantime I've just created a PR for the controls which can already be handled just using the existing code.
However I don't see an easy way to combine those with an explicit internal stopped state...
Yeah :( I'll leave this one until last...
Would backwards compatibility be an issue if it was ignored until explicitly set by the controller, or if there was a user-provided default (like the existing whirl.speed-preset
)?
Using two controls for a parameter that should be atomically automatable needs to be avoided.
Could this be solved by leaving the existing control mechanisms intact? I guess if you were automating the rotary control you'd use rotary.speed-select
or rotary.speed-preset
anyway? Unless you are referring to another kind of automation - apologies if I've misunderstood.
Thanks again, Chris
The use-case I have in mind is when the organ is used as plugin, or when re-playing a partial MIDI file, or CC automation from a DAW. -- If there are two distinct messages for on/off and slow/fast. One has to make sure that both are re-played at the same time.
On the Nord 5, do the switches physically toggle on/off? Or are they push-buttons that don't latch? What messages are sent for on/off and fast/slow? Can those be customized?
Physically, the switches are non-latching push-buttons. But from a MIDI standpoint they're toggles.
E.g. I press the speed button once, the keyboard lights up the "fast" LED, and outputs a value 127 on CC 82 I press it again, the "slow/stop" LED lights up, and we get a 0 on CC 82.
Pressing "stop mode" is the same - when pressed, the LED lights up, we get 127 on CC 79. Press it again, LED off, 0 on CC 79.
I've contacted customer support just in case, but currently I can't see any way to customise it. It's a stage piano more than a controller so I expect this is a low-priority use case :(
Also worth noting that at least the Hammond SK-1, SK-2 and XK-1 use a similar scheme: http://hammondorganco.com/wp-content/uploads/2011/03/owners-manual-XK-1c-101613.pdf
10 STOP button ... When the light is ON, the [FAST] button toggles STOP/FAST. And when the light is OFF, it toggles SLOW/FAST(P. 49) 11 FAST button Toggles the modes of the rotors FAST or not. When the light is ON, it is FAST. (P. 49)
Hi!
Recently I've been trying to use my Nord Electro 5D keyboard with setBfree. I started working out the MIDI mappings, but I've run into a few issues which I think might require some code changes.
The main two issues are as follows:
The drawbars - on the Nord, a drawbar pulled all the way down (so '8') has a MIDI value of 127, whereas setBfree interprets it the other way around, as documented in
cfgParser.c:246
.Rotary control. Unlike a traditional 3-way hammond switch, Nord provides two buttons - fast/slow, and "stop mode". When "fast" is engaged, the leslie is both moving and fast. When "fast" is off, the leslie is stopped or slow, depending on the value of "stop mode". Mapping the fast/slow key to
rotary.speed-toggle
doesn't work, because that parameter is designed to only accept sustain pedal presses - and so ignores when the button is switched off because of it's parameter value of 0!I started hacking something up, but I got to the point where I thought I should stop and ask for advice before continuing :)
The obvious way to solve both issues seems to be to simply add more CC-controllable things. E.g. a "reverse drawbar values" setting, and for the Leslie, equivalent "triggers". "Stop mode" would require some extra state in
struct b_whirl
though.Does that seem like the way to go?
Thanks! Chris