Re: M-Audio Fast Track Ultra 8R

From: Mathias M. <mma_at_darktemple.ch>
Date: Sat, 08 Feb 2025 00:02:25 UTC
According to snd_uaudio(4), this  seems to be the driver for regular
class compliant audio interfaces.

"The snd_uaudio driver provides support for USB audio class devices and
USB MIDI class devices."
The driver states that it's designed according to the specs on https://www.usb.org/.
That 0xef you've mentioned probably is not considered when choosing the
driver to begin with.

I don't really know how it works, but I imagine that FreeBSD just picks
this default driver. The device itself seems to be more class compliant
than M-Audio is willing to 'guarantee'. I'm sure that some features
won't while using the default driver. You know, the stuff that comes
with it when you install it on windows or mac. The obligatory 'lite'
versions of some stuff and the "you need to register" blabla.
I bet recording and playing works as expected.

Again, I don't know the first thing about driver development. And this
post might be unnecessary.

Regards,
Mathias

P.s. You could always browse the source code of the driver at:
https://github.com/freebsd/freebsd-src/blob/main/sys/dev/sound/usb/uaudio.c
https://github.com/freebsd/freebsd-src/blob/main/sys/dev/sound/usb/uaudio.h


On Fri, Feb 07, 2025 at 04:16:15PM +0100, Jan Stary wrote:
> I got my hands on an M-Audio Fast Track Ultra 8R,
> an USB audio interface; eight tracks, 24/96, nice.
> It attaches like this on FreeBSD:
>
> ugen0.6: <M-Audio Fast Track Ultra 8R> at usbus0
> uaudio0 on uhub2
> uaudio0: <M-Audio Fast Track Ultra 8R, class 239/2, rev 2.00/1.51, addr 6> on usbus0
> uaudio0: Play[0]: 96000 Hz, 8 ch, 24-bit S-LE PCM format, 2x4ms buffer. (selected)
> uaudio0: Play[0]: 88200 Hz, 8 ch, 24-bit S-LE PCM format, 2x4ms buffer.
> uaudio0: Play[0]: 48000 Hz, 8 ch, 24-bit S-LE PCM format, 2x4ms buffer.
> uaudio0: Play[0]: 44100 Hz, 8 ch, 24-bit S-LE PCM format, 2x4ms buffer.
> uaudio0: Record[0]: 96000 Hz, 8 ch, 24-bit S-LE PCM format, 2x4ms buffer. (selected)
> uaudio0: Record[0]: 88200 Hz, 8 ch, 24-bit S-LE PCM format, 2x4ms buffer.
> uaudio0: Record[0]: 48000 Hz, 8 ch, 24-bit S-LE PCM format, 2x4ms buffer.
> uaudio0: Record[0]: 44100 Hz, 8 ch, 24-bit S-LE PCM format, 2x4ms buffer.
> uaudio0: Single command MIDI quirk enabled
> uaudio0: MIDI sequencer.
> pcm3 on uaudio0
> uaudio0: No HID volume keys found.
>
> Everything seems to work, recording the 8 channels.
>
> The device doesn't seem to be USB class-compliamt, though.
> Class 239 (= 0xef) is "miscelaneous", i.e. not audio, which is 0x01.
> https://en.wikipedia.org/wiki/USB#Device_classes
>
> I am trying to make this work on OpenBSD
> https://marc.info/?l=openbsd-misc&m=171972890415337&w=2
> where it only attaches as ugen, not uaudio.
>
> I would like to learn here what it is that FreeBSD does
> while trying to attach the device, given that it is, apparently,
> not an adio-class compliant device.
>
> Is there a quirk that makes the kernel go
> "oh, but it is actualy USN audio device, even
> if it does not report as such; act accordingly"?
>
> Please excuse my ignorance. Where in the FreeBSD code can I look
> at the driver and see how exactly the device gets treated?
>
> 	Thank you
>
> 		Jan
>
> PS: M-Audio themselves have left users in the cold, abandoning the device.
> https://avidtech.my.salesforce-sites.com/pkb/articles/en_US/Knowledge/Fast-Track-Ultra-8R-Drivers
>
>
>

--
They don't know how the world is shaped.  And so they give it a shape, and
try to make everything fit it.  They separate the right from the left, the
man from the woman, the plant from the animal, the sun from the moon. They
only want to count to two.
		-- Emma Bull, "Bone Dance"