Hi,
The following patches adds support for the M-Audio Fast Track C400. I recently bought this device and I was able to get this work thanks to the discussion on the alsa-devel list.[1] Thanks everyone!
This series applies against the latest mainline tree, 3.7-rc4 (HEAD 3d70f8c617a436c7146ecb81df2265b4626dfe89 )
This is v2 of the series. It adds patches #3 and #8.
* First of all, everything works: mixer controls, effects control, playback and capture (with the correct sampling frequency set). Note that the device doesn't really have a master control or left/right pan. It's just "emulated" in the software.
* Audio in/out seems to work good in v2, mainly because the playback is an implicit feedback endpoint, and it is now configured with the capture endpoint as its sync-buddy (patch #8).
* Also needed to correct the calculation for implicit feedback, because of the different channel numbers between the two endpoints on the C400 (6 playback - implicit feedback, 4 capture) (patch #3).
* The clock sources are still named "Unit 129" (0x81, internal) and "Unit 130" (0x82, SPDIF). I'll fix this later. I also plan to fix the channel names (i.e., instead of "AIn3", use "SPDIF In L").
* I've touched one FTU mixer creation function. I'd appreciate if someone can test this with the FTU to make sure I didn't break something.
* Patches #6 and #7 are not ready to go in. Patch #6 employs a crude hack and misuses cmask. Patch #7 follows suit. I'd appreciate some hints on how to do this properly. (It's theoretically possible to use cmask properly, but cmasks must be a 64 bits type, because we have 10 input * 6 output = 60 paths).
Grant, I mentioned just now that I get distorted playback. This was caused by me using an lower bandwidth altsetting (2), which I tried since it gives only 2 playback channels, figuring it might help latency somehow. I now reverted back to the original alsetting (1) and I seem to get a stable latency and I can't hear anything unusual (yet?). jack_delay seems to be happy as well.
Cheers, Eldad
Cc: Grant Diffey gdiffey@gmail.com Cc: Chris Cavey chris-alsa@rauros.net Signed-off-by: Eldad Zack eldad@fogrefinery.com
Eldad Zack (8): usb-audio: skip UAC2 EFFECT_UNIT usb-audio: parameterize FTU effect unit control usb-audio: use sender stride for implicit feedback usb-audio: M-Audio Fast Track C400 quirks table usb-audio: Fast Track C400 mixer ranges usb-audio: Fast Track C400 mixer quirks usb-audio: add remaining C400 controls usb-audio: FT C400 sync playback EP to capture EP
sound/usb/endpoint.c | 9 ++- sound/usb/mixer.c | 55 +++++++++++++- sound/usb/mixer_quirks.c | 196 ++++++++++++++++++++++++++++++++++++++++++++-- sound/usb/pcm.c | 13 +++ sound/usb/quirks-table.h | 71 +++++++++++++++++ 5 files changed, 332 insertions(+), 12 deletions(-)