[alsa-devel] M-Audio Fast Track Ultra 8R - USB Sniffs and first layman's analysis
Hi,
as posted on the alsa-user list, I could get the Fast Track Ultra 8R (USB Id 0763:2881) partially working with Clemes Ladisch's patch for the Fast Track Ultra (w/o 8R) [1] by just changing the USB Id.
What's not working is setting the sample rate (at least I don't know how to set it up for 44100 Hz ). And there is no access to the DSP mixer and effects section.
The nice thing on the DSP mixer is that it remembers it's settings and operates even without a computer attached. In other words, once set up, the device can operate as a simple stand alone mixer.
In order to help developing a driver, I've gathered some information on how the M-Audio Fast Track Ultra 8R interface is set up in Windows (using Virtualbox and usbmon). I'm not familiar with USB programming nor with programming audio devices or Alsa. But I hope, I can give the relevant parts of the usbmon output nonetheless.
I've grepped the usbmon logs for "Co", the output below contains only the lines with "Co" in them. Most of them carry a "Co:1:003:0" while some of them have "Co:1:006:0". I guess that's because of my replugging the device as at the time of this writing all output has the 006.
I hope somebody can take this information and put in in a driver.
You can find further information on this device on http://www.m-audio.com/products/en_us/FastTrackUltra8R.html.
Some parts of my description might make a little more sense looking at a screenshot of the Windows settings dialog or the flow schematics, both of which you can find in the manual, linked to on the site above.
See below my findings. And please, don't hesitate to aks for more information.
Kind regards,
Felix
[1] http://www.mail-archive.com/alsa-user@lists.sourceforge.net/msg25385.html
1. Settings on Win** --------------------
There are 4 regions in the settings tab. (A nice overview on the Control Panel can be found in the manual, which you can download at www.m-audio.com.)
1.1 Effect Program ------------------
1.1.1 The Effect Program ------------------------
There are 8 effect programs to choose from a drop down menu: Room 1-3, Hall 1-2, Plate, Delay and Echo.
Choosing an effect programm yields these relevant parts of the usbmon output:
ffff8800a00d0d80 595057804 S Co:1:003:0 s 21 01 0100 0600 0002 2 = [VAL] ffff8800a00d0d80 595058325 C Co:1:003:0 0 2 > ffff8800a00d0d80 595079774 S Co:1:003:0 s 21 01 0200 0600 0001 1 = 40 ffff8800a00d0d80 595080194 C Co:1:003:0 0 1 > ffff8800a00d0d80 595084732 S Co:1:003:0 s 21 01 0300 0600 0002 2 = 0040 ffff8800a00d0d80 595085070 C Co:1:003:0 0 2 > ffff8800a00d0d80 595089766 S Co:1:003:0 s 21 01 0400 0600 0001 1 = 40 ffff8800a00d0d80 595090192 C Co:1:003:0 0 1 >
where [VAL] is one of the following values:
0000 for "Room 1" 0100 for "Room 2" 0200 for "Room 3" 0300 for "Hall 1" 0400 for "Hall 2" 0500 for "Plate" 0600 for "Delay" 0700 for "Echo".
1.1.2 Duration --------------
There's a control "Duration". Changing it yields these relevant parts of the usbmon output:
ffff8800608fed80 771218819 S Co:1:003:0 s 21 01 0300 0600 0002 2 = [VAL] ffff8800608fed80 771219174 C Co:1:003:0 0 2 >
where [VAL] seems to range from 0000 (control knob left) to 007f (control knob right).
1.1.3 Feedback --------------
There's a control "Feedback", which is only adjustable in the effect programs "Delay" and "Echo". Changing it yields these relevant parts of the usbmon output:
ffff8800662a6600 3120473733 S Co:1:006:0 s 21 01 0400 0600 0001 1 = [VAL] ffff8800662a6600 3120474160 C Co:1:006:0 0 1 >
where [VAL] seems to range from 00 (control knob left) to 7f (control knob right).
1.1.4 Volume ------------
There's a control "Volume". Changing it yields these relevant parts of the usbmon output:
ffff8800ac1ed900 2882138576 S Co:1:006:0 s 21 01 0200 0600 0001 1 = [VAL] ffff8800ac1ed900 2882138990 C Co:1:006:0 0 1 >
where [VAL] seems to range from 00 (control knob left) to 7f (control knob right).
1.2 Sample rate ---------------
1.2.1 Sync Source -----------------
There's a drop down menu for selecting the sync source. The choices are "Internal" and "External" (<- SPDIF).
When set to "External" there are lots of "Zi" lines in the log like these:
ffff88006638d000 3325892013 C Zi:1:006:1 0:1:904:0 8 0:0:168 0:312:144 0:624:120 0:936:144 0:1248:168 1152 = a7e4fff5 d7ff6fe3 ffb0e0ff a9e9ff65 dcff0000 00000000 cce4fffa d7ff8ee3 ffff88004e611800 3325893010 C Zi:1:006:1 0:1:912:0 8 0:0:168 0:312:144 0:624:120 0:936:168 0:1248:144 1176 = d7e5ff0a d9ff6ce4 ff0be2ff 17eaff66 ddff0000 00000000 eee5ff32 d9ff59e4
Don't know if they are relevant.
1.2.1.1 From "Internal" to "External" -------------------------------------
Here's what happens when switching the "Sync Source" from "Internal" to "External":
ffff8800662a60c0 3325542111 S Co:1:006:0 s 01 0b 0000 0001 0000 0 ffff8800662a60c0 3325543386 C Co:1:006:0 0 0 ffff88009159e740 3325594872 S Co:1:006:0 s 01 0b 0000 0002 0000 0 ffff88009159e740 3325596263 C Co:1:006:0 0 0 ffff8800a00d0900 3325633405 S Co:1:006:0 s 01 0b 0001 0001 0000 0 ffff8800a00d0900 3325633637 C Co:1:006:0 0 0 ffff88009159e440 3325644251 S Co:1:006:0 s 01 0b 0002 0002 0000 0 ffff88009159e440 3325644631 C Co:1:006:0 0 0 ffff8800a00d0480 3326127863 S Co:1:006:0 s 22 01 0100 0001 0003 3 = 80bb00 ffff8800a00d0480 3326128270 C Co:1:006:0 0 3 > ffff8800a00d0480 3326132492 S Co:1:006:0 s 22 01 0100 0081 0003 3 = 80bb00 ffff8800a00d0480 3326132895 C Co:1:006:0 0 3 >
1.2.1.2 From "External" to "Internal" -------------------------------------
Here's what happens when switching the "Sync Source" from "External" to "Internal":
ffff8800a00d0480 3349133460 S Co:1:006:0 s 01 0b 0000 0001 0000 0 ffff8800a00d0480 3349134696 C Co:1:006:0 0 0 ffff88009159e740 3349186489 S Co:1:006:0 s 01 0b 0000 0002 0000 0 ffff88009159e740 3349187696 C Co:1:006:0 0 0 ffff88009159e440 3349239544 S Co:1:006:0 s 01 0b 0001 0001 0000 0 ffff88009159e440 3349239823 C Co:1:006:0 0 0 ffff8800a00d0900 3349255385 S Co:1:006:0 s 01 0b 0001 0002 0000 0 ffff8800a00d0900 3349256567 C Co:1:006:0 0 0
1.2.2 Sample Rate -----------------
When "Sync Source" is set to "Internal" you can choose a sample rate 44.1 kHz, 48 kHz, 88.2 kHz an 96 kHz.
ffff88007a826a40 4164558574 S Co:1:003:0 s 22 01 0100 0001 0003 3 = 007701 ffff88007a826a40 4164559977 C Co:1:003:0 0 3 > ffff88007a826a40 4164563251 S Co:1:003:0 s 22 01 0100 0081 0003 3 = 007701 ffff88007a826a40 4164563597 C Co:1:003:0 0 3 >
where [Val] is one of the following values:
44ac00 for 44.1 kHz 80bb00 for 48 kHz 885801 for 88.2 kHz 007701 for 96 kHz
1.3 Other settings ------------------
The other settings do not seem to change anything on the device but are only related to the driver or the GUI. (Well, maybe the "High Performance Mode" button changes something on the device, when the driver is loaded next time.)
2. The mixer (on Win**) -----------------------
The Fast Track Ultra 8R features 4 monitor mixers. Monitor 1/2, 3/4, 5/6 and 7/8. They are mixing to the corresponding outputs 1-8. Each mixer is represented by controls for "Analog In 1-8" and "Software Return 1-8" and "Master Out 1/2".
For each of those 16 channels ("Analog In"s and "Software Return"s) there is a level slider, a pan knob, a mute button and a solo button.
"Master Out" 1+2 are represented by a level slider.
For "Monitor 1/2" and "Monitor 3/4" in addition to the controls mentioned above there's an "Effects Send" control knob for each "Analog In" and "Software Return", a control knob "Effects Return" for each of the "Master Out"s and a "Effects Bypass" button.
2.1 Effects Bypass ------------------
2.1.1 Monitor 1/2 Bypass ------------------------
Setting the Monitor 1/2 to bypass the effect yields this:
ffff8800ac1edcc0 734991273 S Co:1:006:0 s 21 01 0201 0700 0002 2 = 0080 ffff8800ac1edcc0 734991583 C Co:1:006:0 0 2 > ffff8800ac1edcc0 734999254 S Co:1:006:0 s 21 01 0202 0700 0002 2 = 0080 ffff8800ac1edcc0 734999581 C Co:1:006:0 0 2 >
Reenabling the effects on Monitor 1/2 yields this:
ffff8800662a63c0 1084925217 S Co:1:006:0 s 21 01 0201 0700 0002 2 = e7cd ffff8800662a63c0 1084925584 C Co:1:006:0 0 2 > ffff8800662a63c0 1084934745 S Co:1:006:0 s 21 01 0202 0700 0002 2 = e7cd ffff8800662a63c0 1084935078 C Co:1:006:0 0 2 >
2.1.2 Monitor 3/4 Bypass ------------------------
Setting the Monitor 3/4 to bypass the effect yields this:
ffff8800ac1ed0c0 3024153559 S Co:1:006:0 s 21 01 0203 0700 0002 2 = 0080 ffff8800ac1ed0c0 3024153901 C Co:1:006:0 0 2 > ffff8800ac1ed0c0 3024158859 S Co:1:006:0 s 21 01 0204 0700 0002 2 = 0080 ffff8800ac1ed0c0 3024159277 C Co:1:006:0 0 2 >
Reenabling the effects on Monitor 3/4 yields this:
ffff8800662a6840 3034928368 S Co:1:006:0 s 21 01 0203 0700 0002 2 = e7cd ffff8800662a6840 3034928788 C Co:1:006:0 0 2 > ffff8800662a6840 3034936142 S Co:1:006:0 s 21 01 0204 0700 0002 2 = e7cd ffff8800662a6840 3034936540 C Co:1:006:0 0 2 >
2.2 Levels ----------
Changing a level for a channel yields this:
ffff880093800e00 3649051254 S Co:1:003:0 s 21 01 [OutIn] 0500 0002 2 = [VAL] ffff880093800e00 3649051527 C Co:1:003:0 0 2 >
where [VAL] ranges from 0080 to ffff and
[OutIn] is a number composed of the Out-channel (01-08) and In ranges from 01 to 10 (Hex, Software returns starting at 09).
Example: [OutIn] = 0209 for the Level of "Software Return 1" on Out 2.
2.2.1 Panning -------------
Panning is done by changing the respective Levels for 2 channels. When panning is in the middle position, the max value for each level seems to be "fdfc". Example:
ffff8800ac1edd80 1908059496 S Co:1:003:0 s 21 01 0402 0500 0002 2 = fdfc ffff8800ac1edd80 1908059852 C Co:1:003:0 0 2 > ffff8800ac1edd80 1908064495 S Co:1:003:0 s 21 01 0302 0500 0002 2 = fdfc ffff8800ac1edd80 1908064850 C Co:1:003:0 0 2 >
This sets the level of "Analog In 2" in "Monitor 3/4" to the maximum value while the panning control is in the middle position.
2.3 Solo and Mute -----------------
Solo and Mute are operated by changing the respective levels to minimum value. In other words: Not a seperate action from changing levels.
2.4 Effects Send ----------------
Changing the Effects send value for a Channel
ffff8800ac1ed840 958480452 S Co:1:[MON]:0 s 21 01 09[CH] 0500 0002 2 = [VAL] ffff8800ac1ed840 958480800 C Co:1:[MON]:0 0 2 >
where
[VAL] ranges from e7cd (knob left, minimum) to daff (knob right, maximum),
[MON] = 003 for Monitor 1/2 and 006 for Monitor 3/4 and [CH] is the channel number (0-10, Hex, Software returns starting at 09)
2.5 Effects Return ------------------
2.5.1 Monitor 1/2 -----------------
Setting the "Effects Return 1" ('left') Value in Monitor 1/2 yields
ffff8800608fe9c0 1220780329 S Co:1:003:0 s 21 01 0201 0700 0002 2 = [VAL] ffff8800608fe9c0 1220780648 C Co:1:003:0 0 2 >
with [VAL] from e7cd to daff.
For "Effect Return 2" ('right') it's
ffff880093800080 1281633920 S Co:1:003:0 s 21 01 0202 0700 0002 2 = [VAL] ffff880093800080 1281634358 C Co:1:003:0 0 2 >
2.5.2 Monitor 3/4 -----------------
Setting the "Effects Return 1" ('left') Value in Monitor 3/4 yields
ffff8800ac1ed240 45150924 S Co:1:006:0 s 21 01 0203 0700 0002 2 = [VAL] ffff8800ac1ed240 45151245 C Co:1:006:0 0 2 >
with [VAL] from e7cd to daff.
For "Effect Return 2" ('right') it's
ffff8800a00d0480 31181802 S Co:1:006:0 s 21 01 0204 0700 0002 2 = [VAL] ffff8800a00d0480 31182181 C Co:1:006:0 0 2 >
2.6 Master Out --------------
2.6.1 Monitor 1/2 -----------------
Changing the "Master Out 1" ('left') level in Monitor 1/2 gives this
ffff880093800440 1385027420 S Co:1:003:0 s 21 01 0109 0500 0002 2 = [VAL] ffff880093800440 1385027770 C Co:1:003:0 0 2 >
changing the "Master Out 2" ('right') level in Monitor 1/2 gives this
ffff8800ac1ede40 1410769402 S Co:1:003:0 s 21 01 020a 0500 0002 2 = [VAL] ffff8800ac1ede40 1410769744 C Co:1:003:0 0 2 >
with [VAL] ranging from e7cd to 0000 (loudest).
2.6.2 Monitor 3/4 -----------------
Changing the "Master Out 1" ('left') level in Monitor 3/4 gives this
ffff8800662a6540 4152434840 S Co:1:006:0 s 21 01 030b 0500 0002 2 = [VAL] ffff8800662a6540 4152435226 C Co:1:006:0 0 2 >
changing the "Master Out 2" ('right') level in Monitor 3/4 gives this
ffff88008280ca40 14381909 S Co:1:006:0 s 21 01 040c 0500 0002 2 = [VAL] ffff88008280ca40 14382274 C Co:1:006:0 0 2 >
with [VAL] ranging from e7cd to 0000 (loudest).
3. Startup ----------
I've attached a log file showing what happens when the device is attached to Windows. Please note, that this is done under VirtualBox, so there might be some noise at the beginning of the file.
I hope, there's some information in the log on how the Windows control panel gathers the current mixer values from the device.
participants (1)
-
Felix Homann