[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <87wmcr9ap1.wl-tiwai@suse.de>
Date: Fri, 14 Mar 2025 11:19:06 +0100
From: Takashi Iwai <tiwai@...e.de>
To: Ricard Wanderlof <ricard2013@...oba.net>
Cc: Clemens Ladisch <clemens@...isch.de>,
Jaroslav Kysela <perex@...ex.cz>,
Takashi Iwai <tiwai@...e.com>,
linux-sound@...r.kernel.org,
linux-kernel@...r.kernel.org
Subject: Re: [PATCH] ALSA: usb-audio: Fix CME quirk for UF series keyboards
On Thu, 13 Mar 2025 23:16:17 +0100,
Ricard Wanderlof wrote:
>
> Fix quirk for CME master keyboards so it not only handles
> sysex but also song position pointer, MIDI timing clock, start
> and stop messages, and active sensing. All of these can be
> output by the CME UF series master keyboards.
>
> Tested with a CME UF6 in a desktop Linux environment as
> well as on the Zynthian Raspberry Pi based platform.
>
> Signed-off-by: Ricard Wanderlof <ricard2013@...oba.net>
> ---
> The CME UF6 not only sends sysex messages using CIN 0xf which
> in the standard is only intended for single-byte unparsed
> messages, but also song position pointer, as well as ordinary
> MIDI timing clock, start, stop and active sensing.
>
> The old quirk sent all four bytes of the USB MIDI message through
> when CIN 0xf was received, which caused trailing bytes in the case
> of single byte data, which would be interpreted as zero-valued
> repeats of the previosly received channel message due to the
> running status feature of MIDI. (In practice, this causes
> continuous controllers to be reset to 0 as soon as a new value is
> set. For note messages, it basically results in a note off for
> note number 0, which is an annoyance although harmless in
> practice.)
>
> Furthermore, the UF6 can send multiple messages in the same
> packet. Because of this, and the 0xf quirk, we need to parse each
> such message individually to get the length right, before sending
> it on.
>
> Finally, the UF6 sends messages with length 0 when it has nothing
> else to send; don't forward these useless messages.
>
> According to the original comment in the code, the old
> functionality was intended to handle sysex messages only, and this
> commit will still handle that case properly, so should be
> compatible with all devices utilizing this quirk. I have only
> tested this with a CME UF6 as don't have access to any other
> CME devices (which are pretty old and rare these days).
Thanks, applied now.
Takashi
Powered by blists - more mailing lists