Learning Wizard is not handling MIDI pitch-bend messages properly.

Bug #1532297 reported by Craig
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Mixxx
Fix Released
Low
RJ Skerry-Ryan

Bug Description

Running Mixxx 2.0.0 (build 1.12 r5772) on Windows 10

Discovered while attempting to create a mapping for the Behringer CMD Studio 4a.

This deck outputs the deck pitch (sliders) as MIDI pitch-bend messages. These can be seen in "controllerDebug" mode and are correctly identified in the controller "Learning Wizard". However even though the "Learning Wizard" adds an input mapping for them, Mixx does not seem to process the messages properly.

My MIDI knowledge is somewhat rough, but the mapping generated by the "Learning Wizard" shows the correct channel, and also shows "Pitch Bend" in the "Opcode" field, but then puts 0x50 in the "Control" field. I was under the impression that the "Contol" field represents byte 2 of the MIDI message but as far as I know byte 2 in a MIDI pitch-bend message is the MSB of the pitch-bend value (the third byte being the LSB), so a value of 0x50 (or any value in fact) in the "Control" field seems incorrect.

Is the handling of MIDI pitch-bend messages broken or does Mixxx just not currently handle MIDI pitch-bend messages at all? (and if not can this function be added?)

NB: I know I can probably add a script to handle this, but if this functionality is currently missing (or broken) in Mixxx then I think is it worth adding it as a basic feature (ie. one that can be used via an XML mapping definition alone). It seems the detection of the messages is already implemented (e.g. the Learning Wizard already attempts to create a mapping for them), it's just that the mapping doesn't seem to work.

Revision history for this message
RJ Skerry-Ryan (rryan) wrote : Re: [Bug 1532297] [NEW] MIDI pitch-bend messages are not being handled.

Hey Craig -- could you please provide MIDI dumps of the commands you're
receiving and the config you have enabled.

We do support 14-bit pitch bends so this would be a rather serious bug! We
have a unit test for this as well and it's passing on all platforms.

On Fri, Jan 8, 2016 at 11:01 AM, Craig <email address hidden> wrote:

> Public bug reported:
>
> Running Mixxx 2.0.0 (build 1.12 r5772) on Windows 10
>
> Discovered while attempting to create a mapping for the Behringer CMD
> Studio 4a.
>
> This deck outputs the deck pitch (sliders) as MIDI pitch-bend messages.
> These can be seen in "controllerDebug" mode and are correctly identified
> in the controller "Learning Wizard". However even though the "Learning
> Wizard" adds an input mapping for them, Mixx does not seem to process
> the messages properly.
>
> My MIDI knowledge is somewhat rough, but the mapping generated by the
> "Learning Wizard" shows the correct channel, and also shows "Pitch Bend"
> in the "Opcode" field, but then puts 0x50 in the "Control" field. I was
> under the impression that the "Contol" field represents byte 2 of the
> MIDI message but as far as I know byte 2 in a MIDI pitch-bend message is
> the MSB of the pitch-bend value (the third byte being the LSB), so a
> value of 0x50 (or any value in fact) in the "Control" field seems
> incorrect.
>
> Is the handling of MIDI pitch-bend messages broken or does Mixxx just
> not currently handle MIDI pitch-bend messages at all? (and if not can
> this function be added?)
>
> NB: I know I can probably add a script to handle this, but if this
> functionality is currently missing (or broken) in Mixxx then I think is
> it worth adding it as a basic feature (ie. one that can be used via an
> XML mapping definition alone). It seems the detection of the messages is
> already implemented (e.g. the Learning Wizard already attempts to create
> a mapping for them), it's just that the mapping doesn't seem to work.
>
> ** Affects: mixxx
> Importance: Undecided
> Status: New
>
> --
> You received this bug notification because you are a member of Mixxx
> Development Team, which is subscribed to Mixxx.
> https://bugs.launchpad.net/bugs/1532297
>
> Title:
> MIDI pitch-bend messages are not being handled.
>
> To manage notifications about this bug go to:
> https://bugs.launchpad.net/mixxx/+bug/1532297/+subscriptions
>

Revision history for this message
RJ Skerry-Ryan (rryan) wrote : Re: MIDI pitch-bend messages are not being handled.

Ah, got it. Looks like this is a bug in the MIDI learning wizard (and the controller mapping GUI). You're right that the control being 0x50 is a problem. It needs to be 0xFF. We shouldn't even let you edit the control if it's a pitch bend because as you point out it's part of the 14-bit message.

Could you confirm that setting the control value to 0xFF fixes the problem?

Revision history for this message
Craig (craigeastonuk) wrote :
Download full text (16.0 KiB)

"contollerDebug" output when moving the deck pitch slider from end to end:

Debug [Controller]: "MIDI t:1201359 ms status 0xE0: pitch bend ch 1, value 0x3F80"
Debug [Controller]: "MIDI t:1201367 ms status 0xE0: pitch bend ch 1, value 0x3F20"
Debug [Controller]: "MIDI t:1201375 ms status 0xE0: pitch bend ch 1, value 0x3EC0"
Debug [Controller]: "MIDI t:1201383 ms status 0xE0: pitch bend ch 1, value 0x3E50"
Debug [Controller]: "MIDI t:1201391 ms status 0xE0: pitch bend ch 1, value 0x3DC0"
Debug [Controller]: "MIDI t:1201399 ms status 0xE0: pitch bend ch 1, value 0x3D30"
Debug [Controller]: "MIDI t:1201407 ms status 0xE0: pitch bend ch 1, value 0x3CA0"
Debug [Controller]: "MIDI t:1201415 ms status 0xE0: pitch bend ch 1, value 0x3C10"
Debug [Controller]: "MIDI t:1201423 ms status 0xE0: pitch bend ch 1, value 0x3B70"
Debug [Controller]: "MIDI t:1201431 ms status 0xE0: pitch bend ch 1, value 0x3AD0"
Debug [Controller]: "MIDI t:1201439 ms status 0xE0: pitch bend ch 1, value 0x3A20"
Debug [Controller]: "MIDI t:1201447 ms status 0xE0: pitch bend ch 1, value 0x3980"
Debug [Controller]: "MIDI t:1201455 ms status 0xE0: pitch bend ch 1, value 0x38D0"
Debug [Controller]: "MIDI t:1201463 ms status 0xE0: pitch bend ch 1, value 0x3820"
Debug [Controller]: "MIDI t:1201471 ms status 0xE0: pitch bend ch 1, value 0x3770"
Debug [Controller]: "MIDI t:1201479 ms status 0xE0: pitch bend ch 1, value 0x36C0"
Debug [Controller]: "MIDI t:1201487 ms status 0xE0: pitch bend ch 1, value 0x3610"
Debug [Controller]: "MIDI t:1201495 ms status 0xE0: pitch bend ch 1, value 0x3560"
Debug [Controller]: "MIDI t:1201503 ms status 0xE0: pitch bend ch 1, value 0x34B0"
Debug [Controller]: "MIDI t:1201511 ms status 0xE0: pitch bend ch 1, value 0x33F0"
Debug [Controller]: "MIDI t:1201519 ms status 0xE0: pitch bend ch 1, value 0x3340"
Debug [Controller]: "MIDI t:1201527 ms status 0xE0: pitch bend ch 1, value 0x3290"
Debug [Controller]: "MIDI t:1201535 ms status 0xE0: pitch bend ch 1, value 0x31D0"
Debug [Controller]: "MIDI t:1201543 ms status 0xE0: pitch bend ch 1, value 0x3120"
Debug [Controller]: "MIDI t:1201551 ms status 0xE0: pitch bend ch 1, value 0x3060"
Debug [Controller]: "MIDI t:1201559 ms status 0xE0: pitch bend ch 1, value 0x2FA0"
Debug [Controller]: "MIDI t:1201567 ms status 0xE0: pitch bend ch 1, value 0x2EE0"
Debug [Controller]: "MIDI t:1201575 ms status 0xE0: pitch bend ch 1, value 0x2E20"
Debug [Controller]: "MIDI t:1201583 ms status 0xE0: pitch bend ch 1, value 0x2D60"
Debug [Controller]: "MIDI t:1201591 ms status 0xE0: pitch bend ch 1, value 0x2CA0"
Debug [Controller]: "MIDI t:1201599 ms status 0xE0: pitch bend ch 1, value 0x2BE0"
Debug [Controller]: "MIDI t:1201607 ms status 0xE0: pitch bend ch 1, value 0x2B20"
Debug [Controller]: "MIDI t:1201615 ms status 0xE0: pitch bend ch 1, value 0x2A60"
Debug [Controller]: "MIDI t:1201623 ms status 0xE0: pitch bend ch 1, value 0x29A0"
Debug [Controller]: "MIDI t:1201631 ms status 0xE0: pitch bend ch 1, value 0x28F0"
Debug [Controller]: "MIDI t:1201639 ms status 0xE0: pitch bend ch 1, value 0x2830"
Debug [Controller]: "MIDI t:1201647 ms status 0xE0: pitch bend ch 1, value 0x2770"
Debug [Controller]: "MIDI t:1201655 ms status 0xE0: p...

Revision history for this message
Craig (craigeastonuk) wrote :

Just seen your previous comment. Thank you!!!

Setting the <midino> to FF in the XML works fine (the UI does not allow me to set this in the Input Mapper page).

I have a working pitch control now! :-)
Thanks again!!

Revision history for this message
RJ Skerry-Ryan (rryan) wrote : Re: [Bug 1532297] Re: MIDI pitch-bend messages are not being handled.
Download full text (17.7 KiB)

Sorry for the confusion -- 14-bit in the input mapping UI is for MIDI CC
messages -- definitely do not enable those. All pitch bend messages are
14-bit so we don't provide an option to enable 14-bit on those.

Could you try setting status to Pitch bend, control to 0xFF and verify
whether or not it works?

BTW if I'm reading the code right, it should start working after a reboot
of Mixxx too (ie use MIDI learn on the control, save the config and reboot
mixxx, when you boot up / enable it should work). It should be purely a bug
in how MIDI learn constructs the input mappings.

On Fri, Jan 8, 2016 at 12:10 PM, Craig <email address hidden> wrote:

> "contollerDebug" output when moving the deck pitch slider from end to
> end:
>
> Debug [Controller]: "MIDI t:1201359 ms status 0xE0: pitch bend ch 1, value
> 0x3F80"
> Debug [Controller]: "MIDI t:1201367 ms status 0xE0: pitch bend ch 1, value
> 0x3F20"
> Debug [Controller]: "MIDI t:1201375 ms status 0xE0: pitch bend ch 1, value
> 0x3EC0"
> Debug [Controller]: "MIDI t:1201383 ms status 0xE0: pitch bend ch 1, value
> 0x3E50"
> Debug [Controller]: "MIDI t:1201391 ms status 0xE0: pitch bend ch 1, value
> 0x3DC0"
> Debug [Controller]: "MIDI t:1201399 ms status 0xE0: pitch bend ch 1, value
> 0x3D30"
> Debug [Controller]: "MIDI t:1201407 ms status 0xE0: pitch bend ch 1, value
> 0x3CA0"
> Debug [Controller]: "MIDI t:1201415 ms status 0xE0: pitch bend ch 1, value
> 0x3C10"
> Debug [Controller]: "MIDI t:1201423 ms status 0xE0: pitch bend ch 1, value
> 0x3B70"
> Debug [Controller]: "MIDI t:1201431 ms status 0xE0: pitch bend ch 1, value
> 0x3AD0"
> Debug [Controller]: "MIDI t:1201439 ms status 0xE0: pitch bend ch 1, value
> 0x3A20"
> Debug [Controller]: "MIDI t:1201447 ms status 0xE0: pitch bend ch 1, value
> 0x3980"
> Debug [Controller]: "MIDI t:1201455 ms status 0xE0: pitch bend ch 1, value
> 0x38D0"
> Debug [Controller]: "MIDI t:1201463 ms status 0xE0: pitch bend ch 1, value
> 0x3820"
> Debug [Controller]: "MIDI t:1201471 ms status 0xE0: pitch bend ch 1, value
> 0x3770"
> Debug [Controller]: "MIDI t:1201479 ms status 0xE0: pitch bend ch 1, value
> 0x36C0"
> Debug [Controller]: "MIDI t:1201487 ms status 0xE0: pitch bend ch 1, value
> 0x3610"
> Debug [Controller]: "MIDI t:1201495 ms status 0xE0: pitch bend ch 1, value
> 0x3560"
> Debug [Controller]: "MIDI t:1201503 ms status 0xE0: pitch bend ch 1, value
> 0x34B0"
> Debug [Controller]: "MIDI t:1201511 ms status 0xE0: pitch bend ch 1, value
> 0x33F0"
> Debug [Controller]: "MIDI t:1201519 ms status 0xE0: pitch bend ch 1, value
> 0x3340"
> Debug [Controller]: "MIDI t:1201527 ms status 0xE0: pitch bend ch 1, value
> 0x3290"
> Debug [Controller]: "MIDI t:1201535 ms status 0xE0: pitch bend ch 1, value
> 0x31D0"
> Debug [Controller]: "MIDI t:1201543 ms status 0xE0: pitch bend ch 1, value
> 0x3120"
> Debug [Controller]: "MIDI t:1201551 ms status 0xE0: pitch bend ch 1, value
> 0x3060"
> Debug [Controller]: "MIDI t:1201559 ms status 0xE0: pitch bend ch 1, value
> 0x2FA0"
> Debug [Controller]: "MIDI t:1201567 ms status 0xE0: pitch bend ch 1, value
> 0x2EE0"
> Debug [Controller]: "MIDI t:1201575 ms status 0xE0: pitch bend ch 1, value
> 0x2E20"
> Debug [Controller]: "MID...

Craig (craigeastonuk)
summary: - MIDI pitch-bend messages are not being handled.
+ Learning Wizard is not handling MIDI pitch-bend messages properly.
RJ Skerry-Ryan (rryan)
Changed in mixxx:
status: New → Confirmed
importance: Undecided → Low
Revision history for this message
RJ Skerry-Ryan (rryan) wrote :
Changed in mixxx:
milestone: none → 2.0.1
status: Confirmed → Fix Committed
assignee: nobody → RJ Ryan (rryan)
Be (be.ing)
Changed in mixxx:
milestone: 2.0.1 → 2.1.0
Changed in mixxx:
status: Fix Committed → Fix Released
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/8432

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.