TASCAM US-1641

classic Classic list List threaded Threaded
5 messages Options
Reply | Threaded
Open this post in threaded view
|

TASCAM US-1641

Jan Depner
I finally couldn't resist anymore so I bought a TASCAM US-1641.  At $299
it's hard to pass up.  OK, so now the fun part.  I loaded (shudder)
Windows and I've got Cubase 4 LE with the latest driver (2.00) and
firmware (1.02).  I realize that there is no driver for the 1641 on
Linux.  I've got a ton of programming experience (including some hard
real-time work) but I've never written a driver for Linux.  I have no
idea where to start. I've read the following pages:

http://www.reactivated.net/weblog-content/20050806-reverse-0.2.txt
http://www.linux-usb.org/
http://www.lrr.in.tum.de/Par/arch/usb/usbdoc/
http://www.pps.jussieu.fr/~smimram/tascam/


I'm assuming that since ALSA is part of the kernel now I'll have to
compile my own kernel to play with things.  If there's another way I'd
sure like to know about it.  Any help would be greatly appreciated.  If
anyone has any advice to help me get started you can either post it here
or send to me off list (that will at least save everyone else from
having to wade through all of my ignorant questions ;-)  I may not be
able to figure this out but at least I'll give it the old college try.


Cheers,
Jan


_______________________________________________
Linux-audio-dev mailing list
[hidden email]
http://lists.linuxaudio.org/listinfo/linux-audio-dev
Reply | Threaded
Open this post in threaded view
|

Re: TASCAM US-1641

Adrian Knoth
On Sun, Mar 14, 2010 at 07:46:09PM -0500, Jan Depner wrote:

Hi!

> I finally couldn't resist anymore so I bought a TASCAM US-1641. At $299

FAIL. You now spend hours (and therefore money) on the software side. ;)

> If anyone has any advice to help me get started you can either post it
> here or send to me off list (that will at least save everyone else
> from

You're facing multiple problems:

   * How to initialize the device. Firmware upload required?

   * How to trigger special functions, i.e. a builtin mixer?

   * Which streaming format is used?


You could live without the second, but the other two are important.
It's basically what the FFADO project does for each firewire interface,
but with USB-2.0, each vendor implements his own on-wire protocol,
there's no common platform chip.

So prepare for a lot of sniffing. (capture the packets your windows
driver sends to the box and try to understand. There's isochronous
traffic for the audio streaming and non-iso (async) for device handling)

If nothing helps: run Windows in a VM (virtualbox?), make a USB
passthrough and then reroute the audio/midi ports via netjack (jackd2)
back to your Linux machine.

Don't know if wine can load drivers, if so, you might be able to
debug/sniff the win driver directly.


In any case, help from your vendor would be a good thing. Try to contact
him and ask for documentation. I bet the answer will be "We don't care
about Linux", but if so, please tell us. This way, others could avoid
buying Tascam in the future. ;)


Cheerio

--
mail: [hidden email]   http://adi.thur.de        PGP/GPG: key via keyserver

USER, n.: The word computer professionals use when they mean "idiot."
_______________________________________________
Linux-audio-dev mailing list
[hidden email]
http://lists.linuxaudio.org/listinfo/linux-audio-dev
Reply | Threaded
Open this post in threaded view
|

Re: TASCAM US-1641

Jan Depner

On Mon, 2010-03-15 at 09:37 +0100, Adrian Knoth wrote:
> On Sun, Mar 14, 2010 at 07:46:09PM -0500, Jan Depner wrote:
>
> Hi!
>
> > I finally couldn't resist anymore so I bought a TASCAM US-1641. At $299
>
> FAIL. You now spend hours (and therefore money) on the software side. ;)
>

    Not really.  It works fine on Windows with Cubase and I can still
run my DSP 2000 C-Port on Linux if I only need 10 channels.


> > If anyone has any advice to help me get started you can either post it
> > here or send to me off list (that will at least save everyone else
> > from
>
> You're facing multiple problems:
>
>    * How to initialize the device. Firmware upload required?
>

    It came with firmware 1.00 loaded.  I did upgrade to 1.02 but I
doubt that it's necessary because I ran it on the 1.00 firmware before I
upgraded.


>    * How to trigger special functions, i.e. a builtin mixer?
>

    Not too concerned about that.

>    * Which streaming format is used?
>

    Now that is a good question ;-)

>
> You could live without the second, but the other two are important.
> It's basically what the FFADO project does for each firewire interface,
> but with USB-2.0, each vendor implements his own on-wire protocol,
> there's no common platform chip.
>

    Yeah, what a PITA.  It's like they all think they've come up with
something magical and they don't want anyone else to know.


> So prepare for a lot of sniffing. (capture the packets your windows
> driver sends to the box and try to understand. There's isochronous
> traffic for the audio streaming and non-iso (async) for device handling)
>
> If nothing helps: run Windows in a VM (virtualbox?), make a USB
> passthrough and then reroute the audio/midi ports via netjack (jackd2)
> back to your Linux machine.
>

    It didn't work well under VirtualBox.  It only worked sporadically.


> Don't know if wine can load drivers, if so, you might be able to
> debug/sniff the win driver directly.
>
>

    Actually, there are a couple of USB sniffers for Windows that I'll
probably try.


> In any case, help from your vendor would be a good thing. Try to contact
> him and ask for documentation. I bet the answer will be "We don't care
> about Linux", but if so, please tell us. This way, others could avoid
> buying Tascam in the future. ;)
>

    I contacted TASCAM support last year and they were no help so I
wrote snail mail to the CEO of TASCAM America.  No response yet nor do I
expect one.


>
> Cheerio
>

_______________________________________________
Linux-audio-dev mailing list
[hidden email]
http://lists.linuxaudio.org/listinfo/linux-audio-dev
Reply | Threaded
Open this post in threaded view
|

Re: TASCAM US-1641

Paul Davis
On Mon, Mar 15, 2010 at 5:53 PM, Jan Depner <[hidden email]> wrote:
>    Yeah, what a PITA.  It's like they all think they've come up with
> something magical and they don't want anyone else to know.

Its not like that. It *IS* that :)

--p
_______________________________________________
Linux-audio-dev mailing list
[hidden email]
http://lists.linuxaudio.org/listinfo/linux-audio-dev
Reply | Threaded
Open this post in threaded view
|

Re: TASCAM US-1641

Karsten Wiese-3
In reply to this post by Jan Depner
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
_______________________________________________
Linux-audio-dev mailing list
[hidden email]
http://lists.linuxaudio.org/listinfo/linux-audio-dev