MIDI learn should support a single knob for opposing functions (e.g. track select)

Bug #1358844 reported by Daniel Schürmann
8
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Mixxx
New
Wishlist
Unassigned

Bug Description

Dear devs,
I'm wondering if this feature can be added: when learning MIDI from a controller, I would like to scroll up/down the tracks with one potentiometer/encoder. Unfortunately the MIDI learn feature only tracks the CC and not the value increment/decrement, thus I cannot use one pot/encoder for scrolling up/down, but I have to assign two pots or two push buttons (which are too slow to scroll through the list).

If this cannot be done by editing some script/mapping file, I would try add the fix from the source, but I need a hint where to look for.

Best regards

Revision history for this message
Daniel Schürmann (daschuer) wrote :
Changed in mixxx:
importance: Undecided → Wishlist
Revision history for this message
Daniel Schürmann (daschuer) wrote :

Is it an endless knob, you trying to map?
What is the console output if you start Mixxx with
mixxx --controllerDebug
and turning the knob in both directions?

The mapping would look like that using a RMX2 effect knob:

<control>
 <group>[Playlist]</group>
        <key>SelectPrevTrack</key>
        <status>0xB0</status>
        <midino>0x54</midino>
</control>
<control>
 <group>[Playlist]</group>
        <key>SelectNextTrack</key>
        <status>0xB0</status>
        <midino>0x55</midino>
</control>

Revision history for this message
Leodardo (leodardo) wrote :

Thanks for getting back quickly.
My controller is a M-Audio AxiomPro49, and I'm prototyping a custom microcontroller based MIDI controller where I will add an endless encoder.

By opening mix in debug mode I realized my (physically) endless knob was (virtually) actually not endless, as the controller mapped it to a virtual CC knob with vals ranging 0x00-0x7F, so the scrolling would in any case come to an end. Silly me!

The solution is to assign the knob a different type from the MIDI controller itself: Edit -> Control -> Type: SingleStep-/+

Now the knob outputs two different commands whether it is incrementing or decrementing:
Debug [Controller]: "MIDI status 0xB0 (ch 1, opcode 0xB), ctrl 0x61, val 0x00"
Debug [Controller]: "MIDI status 0xB0 (ch 1, opcode 0xB), ctrl 0x60, val 0x00"

With the two different CC for up and down. In Mixxx I just done again a MIDI learn and it works like a charm!
So everything's ok in Mixxx. You just have to make your knob work the right way.
Regards

Revision history for this message
Daniel Schürmann (daschuer) wrote :

Nice to read this bug is fixed. Can you edit the title of this bug, that it helps others and set it to invalid?
Thank you.

Leodardo (leodardo)
Changed in mixxx:
status: New → Invalid
summary: - MIDI learn: Track scrolling with 1 pot/encoder
+ Track scrolling with endless knob: controller setup
Revision history for this message
Sean M. Pappalardo (pegasus-renegadetech) wrote : Re: Track scrolling with endless knob: controller setup

Leodardo: Can you also test where the knob uses the same control # for both directions but changes only the value? e.g. 0x3F for backwards and 0x41 for forwards. This is how most endless knobs work and I want to make sure it works for you with learning as well.

Revision history for this message
Sean M. Pappalardo (pegasus-renegadetech) wrote :

...or is that what you did originally? If so, I would consider this still an open bug since the learning should be able to handle that case.

Revision history for this message
Leodardo (leodardo) wrote : Re: [Bug 1358844] Re: Track scrolling with endless knob: controller setup

Just to be clear, as you ask I'm sending two MIDI commands, same CC,
different value:
Debug [Controller]: "MIDI status 0xB0 (ch 1, opcode 0xB), ctrl 0x19, val
0x7E"
Debug [Controller]: "MIDI status 0xB0 (ch 1, opcode 0xB), ctrl 0x19, val
0x7F"

With the first I tell mixxx to scroll down, with the latter to scroll up.
The learning learns the first as scroll down, then when I attempt the
learning for the scroll up, it deletes the first one, I can see it from the
XML. I guess the logic is to delete older learnings for the same <midino>
or CC.

I think the logic should be changed for controls that do not require a
value: unlike faders, a "scroll down" or "switch view" need only sense a
CC+value couple. However I think there are cases where you only need to
watch the CC and cases where you exactly want to map a command to CC+value.
But that's my 50 cents.
Regards

2014-08-20 17:57 GMT+02:00 Sean M. Pappalardo <email address hidden>:

> ...or is that what you did originally? If so, I would consider this
> still an open bug since the learning should be able to handle that case.
>
> --
> You received this bug notification because you are subscribed to the bug
> report.
> https://bugs.launchpad.net/bugs/1358844
>
> Title:
> Track scrolling with endless knob: controller setup
>
> Status in Mixxx:
> Invalid
>
> Bug description:
> Dear devs,
> I'm wondering if this feature can be added: when learning MIDI from a
> controller, I would like to scroll up/down the tracks with one
> potentiometer/encoder. Unfortunately the MIDI learn feature only tracks the
> CC and not the value increment/decrement, thus I cannot use one pot/encoder
> for scrolling up/down, but I have to assign two pots or two push buttons
> (which are too slow to scroll through the list).
>
> If this cannot be done by editing some script/mapping file, I would
> try add the fix from the source, but I need a hint where to look for.
>
> Best regards
>
> To manage notifications about this bug go to:
> https://bugs.launchpad.net/mixxx/+bug/1358844/+subscriptions
>

Revision history for this message
Sean M. Pappalardo (pegasus-renegadetech) wrote : Re: Track scrolling with endless knob: controller setup

We should make the MIDI learn support the case where a single knob can be used for two opposing functions if it gives different values for each. Marking this as new until me or another dev has a chance to test to see if this already works in latest master.

Changed in mixxx:
status: Invalid → New
summary: - Track scrolling with endless knob: controller setup
+ MIDI learn should support a single knob for opposing functions (e.g.
+ track select)
Revision history for this message
Swiftb0y (swiftb0y) wrote :

Mixxx now uses GitHub for bug tracking. This bug has been migrated to:
https://github.com/mixxxdj/mixxx/issues/7557

lock status: Metadata changes locked and limited to project staff
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.