On Mon, May 26, 2025 at 03:23:09PM +0200, Jan Stary wrote:
> This is just to say that with M-Audio Fast Track Ultra
> (i.e. not Fast Track Ultra 8R), it is mostly the same story.
> 
> The device attaches as
> 
> umidi0 at uhub1 port 1 configuration 1 interface 3 "M-Audio Fast Track Ultra" 
> rev 2.00/1.51 addr 2
> umidi0: (genuine USB-MIDI)
> umidi0: out=1, in=1
> midi0 at umidi0: <USB MIDI I/F>
> ugen0 at uhub1 port 1 configuration 1 "M-Audio Fast Track Ultra" rev 
> 2.00/1.51 addr 2
> 
> i.e. ugen, not uaudio. It is not a class-compliant USB audio device.
> usbdevs -vv says
> 
> addr 02: 0763:2080 M-Audio, Fast Track Ultra
>        high speed, power 498 mA, config 1, rev 1.51
>        driver: umidi0
>        driver: ugen0
> 
> I can make it attach as uaudio with the diff below (by ratchov@)
> which made it work for the Fast Track Ultra 8R,
> replacing 0x2081 with 0x2080 as seen in usbdevs.
> 
> uaudio0 at uhub1 port 1 configuration 1 interface 0 "M-Audio Fast Track 
> Ultra" rev 2.00/1.51 addr 2
> uaudio0: class v1, high-speed, async, channels: 8 play, 8 rec, 0 ctls
> audio1 at uaudio0
> umidi0 at uhub1 port 1 configuration 1 interface 3 "M-Audio Fast Track Ultra" 
> rev 2.00/1.51 addr 2
> umidi0: (genuine USB-MIDI)
> umidi0: out=1, in=1
> midi0 at umidi0: <USB MIDI I/F>
> ugen0 at uhub1 port 1 configuration 1 "M-Audio Fast Track Ultra" rev 
> 2.00/1.51 addr 2
> 
> It has _four_ channels, not _eight_,
> and I don't know how to fix that.
> 
> It plays a stereo file, sending the output to the [1] headphones,
> reporting the following error.
> 
> uaudio0: sync play xfer, err = 6
> uaudio0: sync play xfer, err = 6
> uaudio0: sync play xfer, err = 6
> uaudio0: sync play xfer, err = 6
> uaudio0: sync play xfer, err = 6
> uaudio0: sync play xfer, err = 6
> uaudio0: sync play xfer, err = 6
> uaudio0: sync play xfer, err = 6
> uaudio0: sync play xfer, err = 6
> 

Is this continuous or does it happen only once, when playback stops?

> It never outputs to the [2] headphones,
> wven with a four channel audio, such as
> $ play -n synth 10 sin 100 sin 200 sin 300 sin 400 gain -6 
> 
> I will try again with UAUDIO_DEBUG, but are there any hints do far please?
> Is anyone using this device successfully?
> 

my guess would be that the 8-channel mode correspond to the 6 line
outputs plus 2 headphone channels. But they might be the spdiff
channels.

If you test with sndiod, I'd suggest using "-j off" to make sure that
sndiod doesn't mess with the channels routing. Then, possibly use
8-channel files for testing. The aucat's -m option could work as well,
ex. to test channels 4:5, do:

        aucat -m 0:1/4:5 -i stereo.wav

Alternatively, you could define one logical device per channel pair
and test using stereo, ex:

        -C0:1 -c0:1 -s a -C2:3 -c2:3 -s b ...

and test using:

        aucat -f snd/a -i file.wav
        aucat -f snd/b -i file.wav
        ...

> Neither MacOS nor Windows detect the device,
> and I couldn't find any working drivers for the device.
> (See the previous posts: much like woth the Ultra 8R,
> M-Audui/Avid just left the users out in the cold.)
> 
> 
>       Jan
> 
> 
> Index: uaudio.c
> ===================================================================
> RCS file: /cvs/src/sys/dev/usb/uaudio.c,v
> retrieving revision 1.178
> diff -u -p -r1.178 uaudio.c
> --- uaudio.c  7 Jan 2025 12:49:40 -0000       1.178
> +++ uaudio.c  7 Feb 2025 14:10:16 -0000
> @@ -2790,8 +2790,8 @@ uaudio_process_conf(struct uaudio_softc 
>                       return 0;
>               if (!uaudio_getnum(&dp, 1, &subclass))
>                       return 0;
> -             if (class != UICLASS_AUDIO) {
> -                     DPRINTF("%s: skipped iface\n", __func__);
> +             if (class != UICLASS_AUDIO && class != 0xff) {
> +                     DPRINTF("%s: 0x%x: skipped iface\n", __func__, class);
>                       continue;
>               }
>  
> @@ -3842,6 +3842,14 @@ uaudio_match(struct device *parent, void
>               DPRINTF("%s: couldn't get idesc\n", __func__);
>               return UMATCH_NONE;
>       }
> +
> +     /*
> +      * M-Audio Fast Track Ultra
> +      */
> +     if (arg->vendor == 0x0763 && arg->product == 0x2081 &&
> +         idesc->bInterfaceClass == 0xff &&
> +         idesc->bInterfaceSubClass != UISUBCLASS_AUDIOSTREAM)
> +             return UMATCH_VENDOR_PRODUCT_CONF_IFACE;
>  
>       if (idesc->bInterfaceClass != UICLASS_AUDIO ||
>           idesc->bInterfaceSubClass != UISUBCLASS_AUDIOSTREAM)
> 
> 

Reply via email to