I suggest that users confirm their choice. Do this by having the software
ask them to trigger the same action again to confirm.

Mock process for initiating midi-learn:

1. User enables midi-learn feature
2. User adds UI controls to the queue of controls to be "midi learned" from
a list of available controls -OR- by ctrl+L_Mouse_Click on the control in
the Mixxx UI.  *Because midi-learn is toggled on or off it won't matter if
the midi-learn selection overrides a previous ctrl+L_Mouse_Click behavior.
3. User initiates the learning process by clicking a big fat "Okay,
MIDI-Learn!" button.

Mock process for midi-learning events:

1. Announce in text on the screen the name of the control to be learned
2. Flash some red box around the portion of Mixx UI where applicable of the
control to be learned. The length of time that this flashing red box happens
should be user-configurable and is the delay which pleases both "New User"
or "Expert User"
3. Announce in text to please move / engage the MIDI control desired,
include a decay countdown that is reset on each midi event incoming.
4. After decay countdown completes, announce in text to please again move /
engage the same MIDI control desired, to confirm previous assignment.
5. Repeat to Step #1 for all controls in midi-learn queue


On Mon, Feb 16, 2009 at 11:09 PM, Albert Santoni <[email protected]> wrote:

> Hi guys,
>
> With all the refactoring going on, I had to temporarily remove our
> MIDI learning functionality a couple of weeks ago. With our old
> implementation, I wasn't entirely convinced that average joe DJ would
> be able to figure out how to use it, since a bunch of us developers
> struggled with it. Since I'll need to do some coding to re-enable MIDI
> learning, now is a good time to have a quick discussion about how
> people think MIDI learning should work.
>
> Ideas?
>
> How do Traktor and Virtual DJ do MIDI learning?
>
> In some other MIDI-capable applications that I've used, I've seen the
> following approaches:
> 1) If you right-click on a control in the GUI, you can click "MIDI
> Learn...", move a control on your controller, and you're done.
> 2) They had something similar to what trunk had before, where you
> could pick a control name from a giant list and move a knob on your
> controller. The workflow here was just a pain in the ass (so much
> clicking and digging through controls to find the right one.)
> 3) You click "MIDI learn", then you move a control in the UI, and then
> move a control on your controller, which then magically creates the
> mapping between the two.
>
> #1 might be interesting to look at doing (since our WWidgets know
> about ControlObjects, I think), but it's still a lot of mousework.
> #2 was less user friendly and just generally harder to use.
> #3 reduced the mousework significantly, but it's still a lot of
> switching back and forth.
>
> My own idea that I pitched to people back in the summer (but I guess
> didn't get any attention) was to have a dialog that mimics the way old
> computer games used to let you set up your keyboard keys. Some
> emulators like zsnes work like this too. Basically, the idea is that
> the dialog will ask you to move some specific knob or slider on your
> controller, then you do it, and then it automatically flips to the
> next control that you would need to bind. As an example, the workflow
> is like:
> - Dialog asks you "Push the play button for player 1"
> - You push the left play button on your MIDI controller,
> - Dialog then asks you (with no user intervention required), "Push the
> play button for player 2"
> - You push the right play button on your MIDI controller.
> - etc.
>
> The key idea is that you don't have to touch your mouse or keyboard
> while you're setting up your controller, and you're being force-fed
> very straightforward instructions about what to do.
>
> So my parting questions are: Is this a reasonable thing to do? Can we
> make this idea even better? And if we come up with an even better
> idea, should I just reimplement what we had before and push MIDI
> Learning 2.0 to 1.6.3?
>
> Thanks,
> Albert
>
>
> ------------------------------------------------------------------------------
> Open Source Business Conference (OSBC), March 24-25, 2009, San Francisco,
> CA
> -OSBC tackles the biggest issue in open source: Open Sourcing the
> Enterprise
> -Strategies to boost innovation and cut costs with open source
> participation
> -Receive a $600 discount off the registration fee with the source code:
> SFAD
> http://p.sf.net/sfu/XcvMzF8H
> _______________________________________________
> Mixxx-devel mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/mixxx-devel
>
------------------------------------------------------------------------------
Open Source Business Conference (OSBC), March 24-25, 2009, San Francisco, CA
-OSBC tackles the biggest issue in open source: Open Sourcing the Enterprise
-Strategies to boost innovation and cut costs with open source participation
-Receive a $600 discount off the registration fee with the source code: SFAD
http://p.sf.net/sfu/XcvMzF8H
_______________________________________________
Mixxx-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mixxx-devel

Reply via email to