Penguin

Note that the newer Tascam US-122L and US-144 have different internal hardware; the remainder of this page does not apply to these models.

The Tascam US-122 (and apparently others) is a USB Audio/MIDI interface device which lets you plug things like guitars and condenser mics into your computer via a USB interface. An ALSA driver exists for it (snd-usb-usx2y), but it did not work out of the box for me with Ubuntu. I tried the following steps to get my hardware working (based largely on a post made in this thread: http://ubuntuforums.org/archive/index.php/t-21851.html). These steps are probably ubuntu-specific. I have followed the instructions given in the aforementioned ubuntuforums post almost to the letter, except that I compiled from source rather than using i386 RPM versions of packages (mostly because I'm running a 64-bit system). This seems to make a difference in terms of paths and such.

  • Download alsa-firmware and alsa-tools (version 1.09 in my case) from http://alsa-project.org/
  • Compile and install the alsa-firmware package (./configure && make && sudo make install)
  • Compile and install the usx2yloader tool from the alsa-tools package. I had to satisfy a few dependencies for this to work, including alsa-headers. I was able to just apt-get this package.
  • In order to make the US-122 work with Linux, a firmware upgrade is required - the upgrade is available from http://langerland.de/audio/usx2y/ - I downloaded the latest version (0.1b at the time of writing).
  • Determine the bus ID of the USB device using the lsusb command. The output from mine looked like this:
Bus 002 Device 003: ID 1604:8006 Tascam US-122 Audio/Midi Interface (without fw)
  • After extracting the firmware upgrade package, I ran:
sudo fxload -s ld2-ezusb.hex -I \
/usr/local/share/alsa/firmware/usx2yloader/us122fw.ihx \
-D /proc/bus/usb/002/003

(The /proc/bus/usb/002/003 path above is based on the "Bus 002 Device 003" output from running lsusb).

  • If you happen to have something plugged into the phones socket on your US122 at the time, you may hear a click.
  • Running sudo usx2yloader lights the US-122 up like a christmas tree, and it all seems to "just work".
  • The output of aplay -l can be used to verify that it has worked:
 card 3: USX2Y [TASCAM US-X2Y], device 0: US-X2Y Audio [US-X2Y Audio #0]
   Subdevices: 1/1
   Subdevice #0: subdevice #0
  • cat /dev/urandom > /dev/dspN (where N is the ordinal device ID, starting from 0) will also verify that sound output is working (it'll generate static which you will be able to hear if you plug some headphones into your US-122). Be sure to turn the "Phones" volume down on the device - I gave myself quite a fright trying this one out on my unsuspecting ears.
  • So that's output done... I haven't managed to record anything using it yet. I will keep updating this if/when I make progress.
  • UPDATE: I have been able to record using audacity, but sadly the US-122 seems to translate to a single audio device, so it gets locked by the recording process. I've been having to use my onboard soundcard for previewing/multitracking. I'm hoping there is some way of configuring ALSA to make it view the input and output channels as separate devices (as Windows seems to).
  • Further Update: Using jackd, the unit is perfect! I started jackd using:
sudo jackd -R -v -d alsa usx2y -d hw:1

and everything just works! I used Ardour? to do multi-track recording and it all worked nicely.