Linux Sound subsystem development
 help / color / mirror / Atom feed
* [PATCH 0/2] Quirks for the M-Audio Venom synth
@ 2026-08-22  4:30 Federico Valentín Andrade
  2026-08-22  4:30 ` [PATCH 1/2] ALSA: usb-audio: Skip reading sample rate on M-Audio Venom Federico Valentín Andrade
                   ` (4 more replies)
  0 siblings, 5 replies; 12+ messages in thread
From: Federico Valentín Andrade @ 2026-08-22  4:30 UTC (permalink / raw)
  To: linux-sound
  Cc: linux-kernel, perex, tiwai, kuba, alexander.deucher,
	Federico Valentín Andrade

Hello, this is my first ever patch to Linux, hope this helps.

Since it's release, the M-Audio Venom never worked through USB
in Linux, drivers for Windows and Mac OS have been available
for ever, but due to it's short maintenance time, it never got
a Linux driver or any support for Linux users.

Some users across the years have posted about its MIDI usage
but all have pointed out that the USB port was useless for Linux.

So I found a fix for it, but the process went as follows:

The device upon connection without any fix showed the following
through dmesg:

[23824.463792] usb 2-3: New USB device found, idVendor=0763, 
	idProduct=2084, bcdDevice=11.44
[23824.463796] usb 2-3: New USB device strings: Mfr=2, 
	Product=3, SerialNumber=0
[23824.463797] usb 2-3: Product: Venom
[23824.463798] usb 2-3: Manufacturer: M-Audio
[23829.670004] usb 2-3: 1:1: cannot get freq at ep 0x2
[23850.150093] usb 2-3: 2:1: cannot set freq 44100 to ep 0x84
[23855.270162] usb 2-3: Quirk or no altset; falling back to 
	MIDI 1.0
[23901.350369] usb 2-3: 6:0: failed to get current value for 
	ch 0 (-110)
[23911.590383] usb 2-3: 6:0: cannot get min/max values for 
	control 2 (id 6)
[23911.590401] usb 2-3: Warning! Unlikely small volume range (=1), 
		linear volume or custom curve?
[23911.590407] usb 2-3: [6] FU [PCM Playback Volume] ch = 2, 
	val = 0/1/1
[23916.710413] usb 2-3: 5:0: failed to get current value for 
	ch 0 (-110)
[23947.430547] usb 2-3: 6:0: cannot get min/max values for 
	control 2 (id 6) 
	// This happened around 15 times until the next loop.
[24019.111127] usb 2-3: 2:1: usb_set_interface failed (-110) 
	// This started happenning every 5 seconds non stop until 
	// the connection was cut.

As the "get freq" and "set freq" pointed to a problem with the sample
rate, I applied a quirk fix with the following:

options snd-usb-audio quirk_flags=0763:2084:get_sample_rate|
	disable_autosuspend;

And that seemed to work for the sample problems and the
usb_set_interface:

[33121.858400] usb 2-3: new full-speed USB device number 15 
	using xhci_hcd
[33121.983604] usb 2-3: New USB device found, idVendor=0763, 
	idProduct=2084, bcdDevice=11.44
[33121.983608] usb 2-3: New USB device strings: Mfr=2, Product=3, 
	SerialNumber=0
[33121.983610] usb 2-3: Product: Venom
[33121.983611] usb 2-3: Manufacturer: M-Audio
[33121.987805] usb 2-3: Quirk or no altset; falling back to MIDI 1.0

But the device still didn't work in any test. It did show, though, in
various ALSA commands: 

aplay -l; arecord -l; amidi -l; aconnect -l
**** List of PLAYBACK Hardware Devices ****
card 2: Venom [Venom], device 0: USB Audio [USB Audio]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
**** List of CAPTURE Hardware Devices ****
card 2: Venom [Venom], device 0: USB Audio [USB Audio]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
Dir Device    Name
IO  hw:2,0,0  Venom Synth In
IO  hw:2,0,1  Venom MIDI In
client 24: 'Venom' [type=kernel,card=2]
    0 'Venom Synth Out '
    1 'Venom MIDI Out  '

So I decided to check if Windows was using any weird or propietary
functions in the handshake but it did not (I checked through USBPcap),
so then I made a quick script using pyusb to try and recreate it with no
driver in between, previously disabling the auto-probing, and it worked!

Sending the commands:

dev = usb.core.find(idVendor=0x0763, idProduct=0x2084)

dev.ctrl_transfer(0x80, 0x00, 0, 0, 2, timeout=3000)
dev.ctrl_transfer(0xA1, 0x81, 0x0100, 0x0500, 1, timeout=3000)
dev.ctrl_transfer(0x01, 0x0b, 1, 1, None, timeout=3000)
dev.write(0x0d, b'\x0c\xc0\x05\x00', timeout=3000)
dev.write(0x0d, b'\x09\x90\x3c\x64', timeout=3000)
dev.read(0x8e, 64, timeout=3000)

Not only could I hear the device, which up to this point it didn't emit
any sound when connected to Linux, I was also able to control it through
messages, changing presets and configs.

So the only remaining thing seemed to be the initializer, I programmed a
quick composite quirk to disable the mixer (or at least ignore it) so
that the device configured itself, and it worked outright, so I'm
sending this patch to make it work for anyone's computer.

Thanks for the attention.

Federico Valentín Andrade (2):
  ALSA: usb-audio: Skip reading sample rate on M-Audio Venom
  ALSA: usb-audio: Skip mixer creation on M-Audio Venom

 sound/usb/quirks-table.h | 22 ++++++++++++++++++++++
 sound/usb/quirks.c       |  2 ++
 2 files changed, 24 insertions(+)

-- 
2.55.0


^ permalink raw reply	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2026-08-25  7:55 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-08-22  4:30 [PATCH 0/2] Quirks for the M-Audio Venom synth Federico Valentín Andrade
2026-08-22  4:30 ` [PATCH 1/2] ALSA: usb-audio: Skip reading sample rate on M-Audio Venom Federico Valentín Andrade
2026-08-23  8:59   ` Takashi Iwai
2026-08-22  4:30 ` [PATCH 2/2] ALSA: usb-audio: Skip mixer creation " Federico Valentín Andrade
2026-08-23 15:27 ` [PATCH v2 0/2] ALSA: usb-audio: Include M-Audio Venom Quirks Federico Valentín Andrade
2026-08-24 14:02   ` [PATCH v3 " Federico Valentín Andrade
2026-08-24 14:02   ` [PATCH v3 1/2] ALSA: usb-audio: Skip reading sample rate on M-Audio Venom Federico Valentín Andrade
2026-08-25  7:55     ` Takashi Iwai
2026-08-24 14:02   ` [PATCH v3 2/2] ALSA: usb-audio: Skip mixer creation " Federico Valentín Andrade
2026-08-23 15:27 ` [PATCH v2 1/2] ALSA: usb-audio: Skip reading sample rate " Federico Valentín Andrade
2026-08-24  6:44   ` Takashi Iwai
2026-08-23 15:27 ` [PATCH v2 2/2] ALSA: usb-audio: Skip mixer creation " Federico Valentín Andrade

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox