[LAD] TASCAM US-1641

Karsten Wiese fzuuzf at googlemail.com
Thu Mar 25 08:52:32 UTC 2010


Am Freitag 19 März 2010 schrieb Jan Depner:
> Karsten,
> 
>     Last year I emailed you with a question about the TASCAM US-1641 and
> you replied with a bit of information related to the US-144.  I finally
> bought the US-1641 (it went down to $299 US).  It works great under
> Windows with Cubase.  In fact, I'm tempted to just leave it at that
> since it works so well but I hate the thought of having it here and not
> being able to use it in Linux.  I have installed UsbSnoop on Windows and
> can dump the tons of traffic back and forth between the device and the
> system.  My problem is that I have no idea where to start.  I'm a pretty
> good C programmer (I've been doing it for a living since 1989 [FORTRAN
> since 1978]) so I think I could probably figure this thing out if I
> could just get started.  You mentioned something about using libusb or
> usblib instead of playing around with building and modifying a kernel.
> I don't have any problem with building a kernel and hacking it but I
> need a starting point.  Are there ANY USB 2.0  audio drivers for Linux
> that I could start with?  Is the US122L or the US144 USB 2.0?  Any help
> you could give me would be greatly appreciated.


hey jan,


the US122L linux driver uses non-standard USB 2.0. It comes with a kernel part
in snd_usb_us122l and a userspace alsa-plugin called usb_stream.

i've heard the US-1641 uses bulk usb packets for audio
(maybe bulk in, iso out or the other way round), where snd_usb_us122l uses
iso packets only. 
the devices sample rate is most likely interpreted from audio in packets and
the audio out packets are cut to fit.

the hard stuff is figuring from the usbsnoop dump, what happens why and when.
then one would verify things by trying out. you already know that ;-)

sequence of operation guessed:
- lowlevel initialisation
- sample format setup
- sample rate setup
- stream start 
- audio i/o

iirc, the actual userspace start/stop on the usb_us122l doesn't change the audio i/o,
userspace just starts/stops reading/writing the audio.

using libusb for trying out could spare you some kernel crashes + reboot cycles.
if you've verified operations via libusb, moving to a kernel driver, maybe expanding
or using snd-usb-us122l as a template might be easier.


regards,
karsten



More information about the Linux-audio-dev mailing list