Justin Smith wrote:
On Wed, May 6, 2009 at 5:17 AM, Olivier Guilyardi
<ml(a)xung.org> wrote:
- what would
be the best MIDI configuration system in Jackbeat?
- how to achieve *both* easy and flexible bindings with a control surface?
- should a hw knob control a fixed track and/or the current GUI active track?
- what hardware do/would you use, and what are their peculiarities?
regarding your first two questions: I use a device with multiple knobs
(as I am sure do many others), so it makes sense to have multiple
assignable knobs, one option being the current active track makes
sense.
Regarding flexible/easy setup, implement midi learn, it is simple:
user presses learn button on GUI control (ie. a right click context
menu on each knob or slider), then moves a slider or knob on midi
device, software takes the fist cc it sees from the external device,
and assigns it to that software control. IE I right click and select
"learn" on the track 3 fader, then I move a slider that sends CC 6,
from now on CC 6 controls the track 3 fader (and for bonus points,
have anything other than midi that changes the track 3 fader
(automation, gui activity, etc.) SEND a CC 6, for those of us with
motorized or LED-ring knobs/faders).
The trouble with midi learn is that when binding the pitch widget in the active
track property panel, there will be an ambiguity about whether the user wants to
control the active track or track N.
Plus, from what I read on this list the push buttons on control surface have
various behaviours. So when binding a push button to a mute widget, what to do:
- mute for CC value > 0 and unmute for CC value == 0
- the opposite
- toggle muting (ignore value)
- mute (ignore value)
- unmute (ignore value)
?
I sense that most if not all of these cases are possible.
So, what about a configuration dialog such as those found for shortcuts? You
would see the complete list of functions, could select one of these, then click
a "Learn" button and move/push/slide some hw control... Rational and easy to
me.
And, at a later time, I could implement widget-based midi learn, which would
fall back on some reasonable default when there is an ambiguity.
Btw, thanks for mentioning motors and leds, I completely forgot those ;)
--
Olivier