Linux and Fast Track Ultra

Year ago I bought M-Audio Fast Track Ultra to use it with Linux. I’ve been generally very happy with it, and these are my experiences.

Table of contents

General info

The card has 8in/8out configuration. Channels work like this:

  • 1-2 in: two hybrid mic/instrument jacks on the front
  • 3-4 in: two mic jacks on the front
  • 1-6 in/out: normal instrument jacks on the rear
  • 7-8: SPDIF I/O. I haven’t tried these.

In addition it has midi I/O (works without problems with ALSA), built-in effects (reverb and delay with few presets) and two inserts for channels 1-2 (haven’t tested). This card also has two headphone jacks. If you connect your headphones to the first headphone Jack, outputs 1 and 2 are mirrored to headphones. A second jack works same way, and mirrors 3-4 to it. Outputs on the back still function normally, so you can actually drive four channels from this card to two different places. Further information about card can be found from SOS.

It works with Jack and Alsa without problems and also has support in PulseAudio. My Jack settings look like this:

Fast Track Ultra Jack Setup. Periods/buffer: 3, Interface: hw:Ultra, Frames/period 128
Settings in QJackCtl

Basically I drive it with default settings, just changed periods/buffer from 2 to 3: that’s recommended with USB sound cards, and stabilizes card. I can easily use 128 frames/period, and get something like 5ms latency. No problems whatsoever. I also wrote hw:Ultra to Interface box. That way my card gets recognized after every boot unlike with device numbers (hw:0 etc.)

I have also driven the card with 48 KHz sample rate, and still everything works well. Juan Pablo Bouza told me in the comments that he has used FTU with Ardour and recorded 32-bit 96KHz audio. Everything works perfectly well. There is some problem with playback artifacts in 96KHz mode, but it doesn’t affect recording.

Only problem with FTU is its internal routing system. In Linux we have Jack so we don’t need any other routing systems. By default the routing is wrong but can be solved with alsamixer.

Fixing the routing

I posted following to the LinuxMusicians forum:

Fast Track Ultra has internal routing system (and somewhat complex/flexible actually!) There are eight software return channels (as the user guide calls them), and each of those channels can be routed to every physical output. In Linux, by default all of them are routed to each other. On my Ubuntu 11.10 two first channels were routed right way, but others were wrong.

What I wanted (and what I think you want too) was that software return 1 would route to physical output 1 and so on. That way you could just forget all the internal routing stuff and use Jack – which is even more flexible system as we know! (Pulseaudio with all that surround-sound-stuff also works great when card’s internal routing is made that way.)

I’ve used Gnome Alsamixer in AV Linux and alsamixer in Ubuntu and KX Studio. Both tools work similar, so you can use what suits best to you. (Alsamixer is command line software, so open your terminal, type alsamixer and press enter).

When you have alsamixer opened, you should first choose right soundcard. This is done by pressing F6, in command line version, Gnome Alsamixer has separate tabs for different soundcards. If you use command line alsamixer, press F5 to get both input and output sluiders visible. After that you should see about 128 faders. Those control card’s internal routing.

Now, if you are using Gnome Alsamixer, first thing you should do is rename all the 128 faders. (At least I had to, because all faders had same names in GUI) This is quite boring job to do, but once you do it, Gnome Alsamixer remembers it’s settings. If you decide to use command-line alsamixer, you don’t have to do this.

First 64 faders describe inputs, and last 64 describe outputs. Faders are in the groups of eight.

Alsamixer with all faders 100%
This is how it looks by default

Now you just have to adjust most of the faders to zero (in cli alsamixer this is done by pressing end). PageDown and PageUp buttons can be used to adjust fader’s volume. I adjusted DIn1 – Out1 to 100 and all other DIn1 outputs to zero, DIn2 – Out2 to 100 and all other DIn2 outputs to zero, and so on. The end result was just 8 outputs being open: every software return channel was routed to one physical output. Nice!

New playback fader settings: first software input is routed only to first hardware output.

Routing input and effects

FTU’s input routing works differently: those input sliders actually represent hardware monitoring. With them you can control which inputs are routed directly to outputs. So if you don’t want any input signal present in outputs, just set all input sliders to zero. Then you can easily route signals with Jack and do monitoring that way. On slower computers it can be good idea to use harware monitoring.

There are also some effects and effect sends&returns in card. They all are turned on by default and I turned them all off.

Clever setup script

Grant posted a clever setup script in comments of this article. Later Fulup refined it and uploaded to his own server. I will also provide it for download. I assume this is public domain since it’s trivial and posted publicly to the comment feed without any.

Saving new settings

When you are ready, you should save your mixer settings so that your computer remembers them after boot. I did it from the AV Linux’s command line by running

alsactl -f /var/lib/alsa/asound.state store

as root.

If you are using Ubuntu or KX Studio, running things as root is done via sudo. So the right command for you is

sudo alsactl -f /var/lib/alsa/asound.state store

If you don’t want to save your settings as root, you can also save them to your home folder like this:

alsactl store -f ~/.asoundrc

And to restore your saved settings after every login:

alsactl restore -f ~/.asoundrc

There are many ways to run certain commands in login. Every desktop environment / window manager has their own method. Gnome / Unity / XFCE / KDE have feature called “Startup Applications” or similar. With that you can run custom scripts. Just write aforementioned oneliner to a text file, save it somewhere in your home folder and make executable.

Simpler window managers (like Openbox and Fluxbox) usually have some kind of autostart-file. It can be found in hidden directories on your home folder. Something like .config/openbox/ Add this command to that file. LXDE is based on Openbox, so this method works with it (and with AV Linux, which uses LXDE). Don’t forget to put ampersand symbol at the end of the command ;)

…and then you have .bashrc file in your home folder of course! It’s executed every time you drop to the command prompt.

FTU is good card on Linux

FTU is good card on Linux. It works without problems, with normal ALSA. Just plug the cable and it works – if you set the internal routing right. It has never crashed or done anything weird. I’ve used it on live gigs, where it has been running continuously several hours (soundcheck, break, gig itself). No problems.

Leave a Reply

Your email address will not be published. Required fields are marked *