Thursday, June 16, 2011

Howto 24 bit M-Audio Fast Track Pro in Debian Linux with RT-Preemtible Kernel


For Kernels +3.x

LOG:

UPDATE MAY 25, 2012 was on the fast-track-pro.conf file for better understanding of different modes.

UPDATE JUNE 16, 2012 changed kernel configuration in section "PROCESSOR TYPE AND FEATURES" Tickless System (Dynamic Ticks) to enabled, I wasn't thinking right, sorry for that one.

PART I - INTRODUCTION


The Fast Track Pro by M-Audio is a really nice USB Audio interface, although small, it can perform well in a professional environment. I was given one of these a while back by one of my best web design clients and good friend.

The basic specs on this device are:
  • 24-bit/96kHz audio interface with dual mic/instrument preamps
  • Balanced/unbalanced analog I/O
  • S/PDIF coaxial; MIDI I/O
  • ¼” headphone output with level control and A/B source switch

Front and Back Views of the Fast Track Pro





This device is recognized by ALSA and should work "OK" (class compliant mode) out of the box on linux since it's a USB1 class device. So it will only capture or playback in 16 bit mode up to a sample rate of 48000 KHz. To be able to capture @ 24bit with it under linux you will have to patch and compile your own kernel and do some tweaking. Once you do that you will be able to capture/playback in 24 bit (Big Endian) up to a sample rate of 96000. Do notice that still, above 48000 KHz this device will only work either in capture or playback modes (not both or full Duplex) because it is a USB1 audio device and that is how it's designed and because of the limitation of USB1 speeds, for more information check the M-Audio website for the full specs, still I post below the way it works in mac or windows with and without the drivers. Also the digital input/output can be enabled this way, I have kind of tested the digital in myself but do get some predictable xruns, so I try to go "naturally" analog with it as possible. Besides, the preamps and converters in this thing are quite descent and silent. So in other words when compiling a patched kernel for this device you should get pretty much the results as if you had the drivers installed.



I/OBit DepthSample Rate (kHz)
-------------------------------------------------------------------------------------------------------------------------------
With Drivers 4 x 41644.1/48

2 x 4 2444.1/48

2-in OR 2-out 2488.2/96
-------------------------------------------------------------------------------------------------------------------------------
Class compliant2x41644.1/48



A little bit of boring history and technical explanation (that you should read):

I found a patch for this specific device at the ALSA wiki page but it was quite outdated, it corresponded to kernel 2.6.22, so I downloaded it and readjusted it for a newer kernel (2.6.29 at the time I started experimenting). Then I kept updating it for further kernel versions and did a lot of testing, then user "nandoski" listed below in the comments was very nice to push this "fix" into the ALSA development stream, so now the newest 3.X kernels have this fix to recognize this device and make it work at 24 bit mode, so patching the kernel with that specific "Fast Track Pro patch" is no longer necessary, but compiling and some tweaking will still be needed so it works as it should, so thanks to "nandoski" and the ALSA development team for this, it has made it easier from now on...

The kernel version we will be working on (at the time of writing this) will be 3.2.16, whenever I have some time I try to update this post once in a while but you are free to test on newer kernel versions as they are released if you wish, just make sure you get the correct versions of the real-time patch by Ingo Molnar with the corresponding kernel version. If you don't want to try that and just stick to this post's versions you should be perfectly fine, compiling a newer kernel won't make your computer faster nor your music better, just adds more support to newer hardware, so don't think you are behind technologically just because you are using an older version of the kernel, things should work just fine with this current one, updating to a newer kernel is something that should be done only when it really is necessary.

This guide used to be aimed for the ubuntu distribution at one time. But this is not the case anymore.

I will explain...

Ubuntu is a great distro for many things, I still use it for my normal everyday desktop use like web browsing, e-mailing, skyping, listening to music, 3D and Graphics, Virtualization and writing boring blogs like this one, but when it comes to Pro Audio where you have to set up the machine to run at its best performance without latencies and drop outs, well....., that's where it starts staying behind. Newer versions of ubuntu have been harder and harder for me to set up and configure for Real Time Audio and run the Fast track pro at 24 bit mode. The reason is simple, the ubuntu developers have been working on a linux distro that is easy, fast and reliable for normal desktop users and new ones also who are making the switch from other Operating Systems, so it has gotten to the point where compiling a patched kernel with Real Time capabilities and to make this device run at 24 bit has been almost impossible now, so now I use another partiton with Debian just for Pro Audio and boot back up to my ubuntu for normal "every day" use. I don't have time for further testing on other distros like ubuntu, I have to focus on my music, so if I got it working finally under Debian, then that's why this guide is written for Debian.

------------------------------

UPDATE: I finally gave up on ubuntu and became a 100% Debian user, after testing 12.04-LTS, I just felt it was heading to a more "commercial" distro, but that's more of a personal preference and thought, if you do use ubuntu or another distro that's no problem, just keep on reading.

-----------------------------

So my advice now is, If you have the extra drive space you should create a pure Debian installation just for pro-audio and this device. Please, try to understand that just because ubuntu is a derivative of Debian it doesn't mean that it's the same thing, IT'S NOT.  If you use another Debian derivative like 64studio or any other similar distro then configuring and setting it all up is under your own responsibility and I really can't guarantee that it will work then, if you succeed I congratulate you, but I don't want to know how you did it, you can create your own blog about it if you like, all I ask is that you give me proper credit under this license terms for whatever information you extract from this guide; you also have to remember that some linux distros are derivatives of other Debian derivatives, for example Linux Mint, which is a derivative of ubuntu, try to keep away from those if possible. So the current STABLE version of Debian is "Squeeze" (or the current "stable" release of the moment you are reading this tutorial), please try to stick to that "current" version, it is very stable, (you can give it a try also with the "testing" release, mostly if you will be compiling many things like ardour, you'll might need newer development libraries) also try to stick with a 32 bit version, if you have more than 4 GB of RAM this is absolutely no problem, since we will be building our custom kernel with PAE support for up to 64 GB of RAM, even if you are running a 32 bit version of linux.

The method used here on how to compile your own Kernel (The Debian Way) is that it will leave your original Kernel intact, that means it will not mess anything with your current kernel. It will create two deb packages for you to install (one with the main kernel and the other with the headers) so you can then boot to that custom kernel, if something goes wrong with the new kernel, all you have to do is boot back to your original kernel and uninstall the custom self compiled one from synaptic. So this is straight forward easy and safe. You should leave your original kernel installed for everyday use (in case you use the same partition or system for your standard daily usage also) and only use the custom self compiled one for audio production, If you only intend to use the computer as an audio workstation, then you can remove the generic kernel to free up some space if necessary, but I really don't recommend it.

Just as explained above, this guide can be used just to compile any kernel version, just change the version numbers to the ones you are compiling and if you want a real time kernel just make sure to get the rt patch that corresponds to the kernel version you want to build.

If you have an Nvidia card, DO NOT try to install the official drivers, also you will have to disable the nouveau kernel module with this custom kernel and just use plain vesa or nv drivers. Nvidia does not support Real Time kernels, so using plain "nv" or "vesa" on your xorg.conf should be fine. Just try whatever you feel more comfty with and that it works. So please don't think about any cool "spiffy" 3D Desktop effects or visual fantasy "eyecandy", remember this is a Pro Audio setup. Besides GL acceleration hogs the CPU cycles and that causes xruns too.


But..., Why a Real Time Kernel??? I have a SUPER FAST COMPUTER!!!

Yes, I know, I perfectly understand..., and I have been told (and read) many times that patching a kernel with the RT (Real Time) patch by Ingo Molnar is not necessary anymore these days for audio, with machines being so fast and powerful now, having huge amounts of RAM and multi-threads, this is true! Very true indeed! But I do, even if I have an AMD Athlon II X3 at 3.2GHz with 8 Gigs of RAM that I built specifically for Pro Audio (and some 3D), and believe me, in the linux world, this is a powerful PC; the main issue here is not the computer, but the audio device, remember?, it's a USB1 compliant device, where USB1 audio devices are not very reliable because of the USB bandwidth limitation and latency or dropouts can be very common, if it was a USB2, Firewire or PCI card then this whole guide would probably differ, maybe it wouldn't even exist. So I want you to understand that it's not about pushing the computer to its limits to make it run faster, for crazy things like laser precision cutting, or firing missiles and controlling them via RC with your computer (yes you can do that, there is a US NAVY ship DDG 1000 Zumwalt Class Destroyer that uses Linux with real time kernel for these type of things), our purpose is different, it's to be able to prioritize the IRQ's in our box, it's about IRQ Threading or Full Preemption, and this can only be done with a Real Time kernel, and that's what we'll do with our USB IRQ's, we are going to push them up so that the Fast Track Pro runs with the highest priority possible while connectedand powered up, just below the Real Time Clock. Besides, not everyone has a fast computer, and the RT kernel will be a plus for them.



THE GUIDE


PART II - KERNEL COMPILING

Note: Most text that you see formatted on a grey box:

like this

Means that it is code that you must place in a terminal window. You can easily just select it to copy and paste it to avoid any typos. If you feel like typing the code yourself, go ahead, but do recheck that you are typing everything just as is provided in this guide.

If you are a 100% ubuntu user you will find out that your user account is not added to the sudoers list, it can be enabled if you wish, but we will do all this as plain root using su in the terminal. You can google up later how to enable sudo in Debian.

If you are new to this I strongly recommend to stick to the same kernel versions I am pointing you to in this guide for ease and understanding, in the future you are free to experiment:


1.- First of all you have to download the linux kernel and the Real Time patch by Ingo Molnar that corresponds to the same kernel version. The versions we want are for kernel 3.2.16. You can browse the kernel site at http://www.kernel.org, but it can be a bit hard to browse and find the files, since they have all the kernel versions in there all the way down to the first historic ones that used to run on calculators :) so I will point you to the right files from here.

Linux Kernel version 3.2.16 click here to save it to your computer.

Ingo Molnar's Real Time Preemption patch version 3.2.16-rt27 click here to save it to your computer.


2.- Open up a terminal and type:

su

and hit enter. Yes, as I mentioned before, we are going to do all as root.....


3.- Next we will install the necessary packages to compile a kernel. So now that you are logged in as root in your terminal do:

apt-get install kernel-package libncurses5-dev fakeroot wget bzip2 zlib1g-dev


 4.- Now we will move the downloaded files (kernel source and rt patch) to the /usr/src directory, so cd to where you downloaded them and do:

mv linux-3.2.16.tar.bz2 /usr/src

mv patch-3.2.16-rt27.patch.bz2 /usr/src


5.- We cd to the /usr/src directory, since we will be working from there:

cd /usr/src

We extract the kernel source:

tar xjfv linux-3.2.16.tar.bz2

 We then create a symlink (symbolic link) to it:

ln -s linux-3.2.16 linux

and we cd to the symlink:

cd /usr/src/linux


6.- We now apply the real-time patch:

This first command is just a test to see if the patch won't spit out any errors:

bzip2 -dc /usr/src/patch-3.2.16-rt27.patch.bz2 | patch -p1 --dry-run

If you didn't get any errors (which you shouldn't) then run the same command without the --dry-run switch:

bzip2 -dc /usr/src/patch-3.2.16-rt27.patch.bz2 | patch -p1

Now the kernel source is patched with the real time preemption code by Ingo Molnar.


7.- Now the fun.... we are now ready to go into the configuration of our kernel. What we will do here first is copy the current configuration of our running kernel, this way we don't have to set too many things up in the kernel configuration from start, believe me, it can take a long time to configure it. Maybe in the future, if you feel a little adventurous, you can try it, but for now and simplicity's sake, let's just copy it so we can then just tweak it:

cp /boot/config-`uname -r` ./.config

Now we have a .config file in our kernel source tree identical to our original kernel.

Now, something quite important, if you don't have your terminal window maximized (full size), it's a good idea to do it now, since going into the configuration, it's best to view in a maximized terminal or things will look tight.


Now do:

make menuconfig

You are now in the configuration of the new kernel, first we load our copied .config from our current kernel, so go to the bottom where it says Load an Alternate Configuration File and select .config (which should be selected) and hit enter, now just tweak the following settings under each section and try not to mess around with anything else (for now), even if it looks tempting, also when you enable some options described below, it will tell you that it will enable them as modules only, don't worry, just say yes.

TIP: hitting "esc" key twice takes you back up the tree... If you accidentally hit it to many times to where the configuration asks you if you want to save your config to exit, just hit "esc" again and will take you back to the configuration. Also read at te very top of the config window, you will see how to navigate, enable and disable things:

Arrow keys navigate the menu.  <Enter> selects submenus --->.  Highlighted letters are hotkeys.  Pressing <Y> includes, <N> excludes, <M> modularizes features.  Press <Esc><Esc> to exit...

Wherever you see this arrow ---> It means that you go into that section by pressing enter and select the settings as described below:

[SECTION] PROCESSOR TYPE AND FEATURES--->:

     Enable Tickless System (Dynamic Ticks)
     Enable High Resolution Timer Support
     Processor Family--->: Select your processor type here, you'll might have to google up a little, if unsure, leave as it is.
     Preemption Model--->: Select Fully Preemtible Kernel (RT)
     High Memory Support--->: If you have more than 4GB RAM you can select 64GB.
     Timer Frequency--->: 1000 Hz



[SECTION] POWER MANAGEMENT AND ACPI OPTIONS--->:

     Enable Suspend to RAM and Standby
     Disable Power Management Debug Support
     Enable ACPI (Advanced Configuration and Power Interface) Support
     Disable CPU Frequency Scaling---> (You'll have to go into this submenu and just disable the one at the very top)




[SECTION] DEVICE DRIVERS--->:

     Soundcard Support--->
          Enable Advanced Linux Sound Architecture--->
               Enable Sequencer Support
               Enable Sequencer dummy client
               Enable HR-Timer Backend Support
               Enable Use HR-Timer As Default Sequencer Timer
               Enable USB sound devices--->
                    Enable USB Audio/MIDI driver
                    Enable Edirol UA-101/UA-1000 driver (this is a new one, I think it's nice to enable it)


Look for Sound Devices and enable additional audio cards that you have, if they are all selected then leave them like that, if you want to enable them all it's ok, it means your pc will have support for all those audio chips.

Still in Device Drivers section (Going back up the tree):

          Enable Real Time Clock (Just enable it)

          Disable Staging Drivers (RT kernel compiling will halt with errors if enabled)



[SECTION] KERNEL HACKING--->:

     Enable Magic SysRq Key (Always good to have!)
     Disable Kernel Debugging (Will build a very small kernel like 20 MB, otherwise it will be > 500MB, but you won't be able to debug kernel issues)



[SECTION] SECURITY OPTIONS--->:

     Enable Different Security Models


We're done configuring our custom kernel! Exit and please do say yes to the prompt "Do you wish to save your new configuration?"


8.- Now we build the kernel, type:

make-kpkg clean

Then:

fakeroot make-kpkg --initrd --append-to-version=-custom kernel_image kernel_headers

You can change the word custom to anything you like, just make sure it begins with - and has no spaces.

NOTE:  if you have a multi-core you can specify with the -j switch right after the make-kpkg  to speed up the build process, for example if you have 4 cores and you want to use them all, then you would type the above command like this:

fakeroot make-kpkg -j 4 --initrd --append-to-version=-custom kernel_image kernel_headers

This is optional, you could use only 2 of the 4 cores if you want....

Go get a healthy snack, watch TV or take a nap.....this will probably take a good while depending on your system specs.

--------------------------------------------------------------
-------------------------------------------------------------- 

 COMPILE ERROR AND SOLUTION

Should you get the following error:

make[1]: Leaving directory `/usr/src/linux-3.2.16'
/usr/bin/make -j3 EXTRAVERSION=-custom  ARCH=i386 \
                 -C Documentation/lguest
make: *** Documentation/lguest: No such file or directory.  Stop.
make: *** [debian/stamp/build/kernel] Error 2


Nothing to worry! This is a new bug in newer kernels and is easily fixed by issuing the following command:

ln -s /usr/src/linux/Documentation/virtual/lguest/ /usr/src/linux/Documentation/

And just re-run the last command again....

fakeroot make-kpkg --initrd --append-to-version=-custom kernel_image kernel_headers

And it will continue without issues.

-------------------------------------------------------------
-------------------------------------------------------------


When the build finishes, you should have 2 deb packages in /usr/src named something like:

linux-headers-3.2.16-custom-rt27_3.2.16-custom-rt27-10.00.Custom_i386.deb
linux-image-3.2.16-custom-rt27_3.2.16-custom-rt27-10.00.Custom_i386.deb

Install them and boot to your new kernel to see how all is going. Remember, you can uninstall them from synaptic if not working. If when you reboot you don't see the new Kernel listed in your grub entry, it's probably because you are using another linux distro besides the Debian as I had recommended above, all you have to do is issue the following command from you other distro, for example if you use ubuntu besides this Debian installation, boot to that ubuntu system and issue as root or sudo:

update-grub

And it will automatically detect other kernel versions and update your grub.


PART III - SYSTEM CONFIGURATION:

Now we are going to do some main adjustments for the IRQ balancing and Fast Track Pro:

Let's first do the IRQ balancig step: We have to install a script that helps the Real Time kernel to decide which IRQ will have higher priority. In the case of audio work, we want to give the soundcard the highest priority possible. But then, in the case of M-Audio FTP, since it's a usb audio device, we want all usb audio interfaces to be at the highest possible.

So here we go:

1.- First, you have to make sure 'schedutils' is correctly installed on the system, on Debian this will be included in the 'util-linux' package, so go to synaptic and make sure you have util-linux installed (which should be since it's an essential package, but doesn't hurt to double check).

Now download and install the rtirq-init script by Rui Nuno Capela. Taken from the Debian "sid" unstable repository, don't enable that repository, just download this file and install it, if you are doing this under Debian "testing" it's possible that you will find it in synaptic from repositories, install it from there instead and just follow the steps below on how to configure it.


Click here to download it.


Install it (righ click on it and select "open with GDebi Package Installer", or do:

su

enter your root password.

cd to wherever you downloaded it and do:

dpkg -i rtirq-init_20111007-1_all.deb


and we edit the configuration file for the rtirq script:

gedit /etc/default/rtirq


Look for line# 30 that should read:

RTIRQ_NAME_LIST="rtc snd usb i8042"

Change it to:

RTIRQ_NAME_LIST="rtc usb1 snd i8042"



And line# 44 almost at the end of the file, which should read:

RTIRQ_NON_THREADED="rtc snd"

Change it to:

RTIRQ_NON_THREADED="rtc usb1 snd"


Notice we changed usb to usb1, this will be better in our case since the Fast track Pro is a USB1 device and we are putting USB2 devices aside in the priority levels.

Save and close the file.

Ok, every time you boot your system with the Real Time Kernel the rtirq script in /etc/init.d should execute at boot time, giving highest priority to the Real Time Clock and then to all USB audio devices with the changes we did to the configuration file above.

To manually start it up, all you have to do is issue the following command as root (su):

/etc/init.d/rtirq restart

There are other commands for this script which are:

[re]start | stop | reset | status | force-reload

which I believe are quite predictable at what they do

issuing
/etc/init.d/rtirq status

will give you a nice list of what's going on and you should see that USB1 ehci_hcd devices are running with highest priority....

Also issuing that command right after boot is a good way to check that the rtirq script is  running...

2.- Now we have to create a file for M-Audio Fast Track Pro (suggested by unofficial ALSA wiki) with the following values:

options snd_usb_audio vid=0x763 pid=0x2012 device_setup=0x9 index=5 enable=1

This is how they explain:

This will put the FastTrack Pro at device number 5 with 24bit mode, max. 48kHz sampling mode, 2 inputs and 4 outputs. According to the patch, the possible values for the device_setup parameter are the sum of the following numbers:

* 0x01 : use the device_setup parameter, always needed
* 0x02 : enable digital output (channels 3,4)
* 0x04 : use 48kHz-96kHz sampling rate, 8-48 kHz if not used
* 0x08 : 24bit sampling rate
* 0x10 : enable digital input (channels 3,4)

Recording can be done e.g. by using arecord:


arecord -c2 -t raw -fS24_3BE -d5,0 ...



As you can see that configuration is for 24bit up to a 48KHz rate, which should suffice for general pro-audio, so I have placed the file on the server for you to download with different values and instructions to change to other settings if needed.

Click here to download it.

Now cd with your terminal (still as root) where you saved it and do:

chown root fast-track-pro.conf

chgrp root fast-track-pro.conf

mv fast-track-pro.conf /etc/modprobe.d

So you should open and read the file for how to set up the Fast Track to run above 48KHz or enabling the Digital ins/outs if needed. Just make sure to follow the instructions in the file and unload and reload the kernel usb-sound module while Fast Track pro is powered off.

If 24 bit - Duplex at 48 KHz max is enough or good for you then you can leave the file untouched, that's the default values it has.


3.- Last is setting your permission to use realtime audio on the system:

First we'll check if you are in the audio group.

So in a terminal do:

groups username

Where username is your username


You should see a list of group names where you belong to, if you do see audio in that list all is well, if not, you will have to add yourself to the audio group.

Do as root:

useradd -g audio user

Remember to substitute "user" for your username!



4.- And last, we'll edit /etc/security/limits.conf

gedit /etc/security/limits.conf


At the very bottom of that file you are going to place the following lines:


@audio - rtprio 99

@audio - memlock unlimited


And that's all you have to insert.

A lot of people tend to put an extra line that says "@audio - nice -10". This is totally unnecessary, as Paul Davis (The main developer of JACK and Ardour) has stated: "the "nice" entry is not required. this is a mistake that has been propagated online by people who don't know what they are talking about. its very unfortunate that it has spread so far and wide."

You can see the original post here

Save and close that file.

Now reboot...... I'll wait right here for you.

5.- We now just have to set up qjackctl for Fast Track Pro, below is a screen shot of my settings.

Maybe you want to copy the settings shown in the screenshot below as a base, later you can adjust somethings and test. But this works perfectly well for me.

Just a tip on the priority level so you know what value to put there, run the following command:

ps -eLo rtprio,cls,pid,pri,nice,cmd | grep "FF" | sort -r

You will see a list of IRQ priority levels, make sure you already restarted the rtirq script before to make sure the order is correct, you should see two lines together like this:

90  FF    54 130   - [irq/8-rtc0]
85  FF   300 125   - [irq/22-ehci_hcd]


If you have different priority numbers than the ones posted here don't worry, the important thing is that rtc0 should be above ehci_hcd then jackd should inmediately follow, in this case 84 would be the value we should put in qjackctl's Priority setting for this example.

If you then start JACK with qjackctl you should see something like this:

90  FF    54 130   - [irq/8-rtc0]
85  FF   300 125   - [irq/22-ehci_hcd]
84  FF  3954 125   - /usr/bin/jackd -S -P84 -m -dalsa -r44100 -p256 -n3 -Xseq -D -Chw:5,1 -Phw:5,0


The screenshot below shows a value of 70, that's because it corrresponded to an older setup I had.

If there seems to be another IRQ getting in the way between JACK and the ehci IRQ's probably it's because both are sharing the same IRQ, a good way to verify this is with the command:


cat /proc/interrupts

In my case I have an intel onboard sound card sharing the USB1 IRQ, so I have a line like this

 22:          0          0        295   IO-APIC-fasteoi   ehci_hcd:usb1, snd_hda_intel

Which means both are sharing IRQ 22. I could blacklist it, but doesn't really bother me nor does it affect any performance.

It's always good to reboot the machine after setting all this IRQ priorities because I found out that the restart command doesn't really apply the changes 100%, so the first times you boot just run rtirq with the status command to see if the priorities are good, once you verify this and you make no more changes then all should be fine.

NOTE: I use JACK2, so under Server Path in qjackctl settings it is advisable to put jackd -S if you are also using JACK2, this makes JACK run in sync mode, which is faster.If you use JACK1 maybe you want to set your Frames/Period to 128, it's just matter of trial and error, but I have found out that with JACK1 I can barely hear a little latency at 256 which I don't with JACK2.





And the results (click for larger view):


AND SOME SCREENIES OF ARDOUR WITH MIXBUS:





FURTHER READING FOR ADDITIONAL CONFIGURATIONS CAN BE FOUND HERE:

http://wiki.linuxmusicians.com/doku.php?id=system_configuration


A VERY IMPORTANT TIP:

It's recommended to disconnect any other USB audio devices (USB keyboards, sequencers or mixers don't count as USB audio devices) like webcams with microphones, usb mics or usb speakers from the computer since they can create some conflicts especially when attempting to change the sample rate on FAST TRACK PRO, especially since you have to issue the following commands:

sudo modprobe -r snd-usb-audio
sudo modprobe snd-usb-audio


As stated in the fast-track-pro.conf file





SOME NOTES ON BIOS SETTINGS:

One thing you can also tweak is in your BIOS to improve your system, that is to disable the Spread Spectrum option, this is mostly used for overclocking, what it does is reduce Electromagnetic Interference when processor spikes go really high , if you find you get some interference then enable it or leave it enabled, but performance is reduced a little bit. Disabling it will improve performance in the Real Time Clock.



STRANGE STATIC NOISES:

If by any chance your FTP makes a high pink noise (like interference noise) while monitoring, this does happen once in a while, although rarely, just power it down for a few secs. and then power it on, a few people have reported this to happen once in a while, including me, nothing to worry about, this I believe happens when the 24 bit mode doesn't engage properly, so just repowering your FTP will do the work, but do wait a few seconds before powering it up again. Also remember to shut down JACK before powering down the Fast Track Pro.




WHAT TO DO WITH ALL THE STUFF IN /usr/src:

Once your custom kernel is installed you can delete the uncompressed linux-3.2.16 folder, the compressed linux-3.2.16.tar.bz2 , patch-3.2.16-rt27.patch.bz2 and linux symlink in /usr/src, if you have limited hard drive space, just keep a backup of the two kernel debs for future safety.


AND FINALLY:

Please don't try crazy things like installing the ALSA drivers on this new configured system, they will eventually break it all down, and you'll might even end up with no sound at all, there is a very basic rule in life, and you should stick to it:

"IF IT'S NOT BROKEN, THEN DON'T FIX IT...."

--------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------


IF YOU FIND THIS INFORMATION USEFUL, WOULD YOU PLEASE CONSIDER A SMALL KIND DONATION? THANKS!

------------------------- 


IF YOU DON'T WANT TO DONATE HERE BUT YOU ARE AN ARDOUR USER THEN YOU CAN DONATE TO THE ARDOUR COMMUNITY HERE THEY REALLY NEED YOUR FINANCIAL SUPPORT TO KEEP ARDOUR GOING!


140 comments:

  1. hey! nice write-up. Just a detail, the rtirq default list contains this: i8042

    Isn't it the old PS/2 keyboard controller ? why is it in the list of IRQs to be prioritized high ?

    You may also want to mention that in terms of pure debian distros, AV-Linux is a relevant choice here. You may event want to talk to Glen (GMaq) so that this patch is included in the AV-Linux kernel.

    And a comment on semantic: the "real-time" kernel is an abuse of language. The so-called RT patch is making the kernel fully "preemptible" and brings "threaded IRQs". The latter is what makes it possible to prioritize IRQs over others. Note that vanilla kernel 2.6.39.x finally has it. And the last big thing about this kernel version: the big kernel lock is gone forever! AV-Linux 5.0 which is pure debian, has 2.6.39.1 as its default, with threaded IRQs on as well.

    ReplyDelete
  2. Hey Thorgal! You are absolutely correct I should change everything to "Fully Preemtible Kernel" I'll do that later.

    Yes I should contact Glen about AVlinux, he'll probably be interested in including my guide in his kernel and have more support for the Fast Track pro.

    I know about the i8042 in the rtirq script, I guess we'll have to ask Rui Nuno why he included it in the lines.

    Cheers! See you in Ardour....

    ReplyDelete
  3. Hey Joe, I apologize for not responding sooner and thank you for your comments. I already checked your new blog and is pretty awesome. I will update my links. Hey those are pretty nice screenshots of mixbus. I will get it pretty soon( I hope).

    ReplyDelete
  4. Hey Joe!

    Excelent job. I finally got my FTP up and running, and that without any noticeable latency!!

    I've only had one problem, but that one was quick:

    http://masetio.web.id/03-2010/compile-kernel-error-lguest-c3718-error-zlib-h-no-such-file-or-directory/

    Cheers!

    ReplyDelete
  5. About not getting rtirq to run automatically: This may be too obvious, but did you create the relevant start/stop links in /etc/rc?.d/? If not, try running

    update-rc.d rtirq defaults

    as root. See also here.

    ReplyDelete
  6. Yep, that was the very firtst thing I tried and it never runned on boot, I think I read somewhere "Squeeze" uses a new different way to do this, I'm thinking maybe webmin would assist, but I think it's a waste to install webmin server just for an individual script.

    Still thanks for your comment, we'll see what can be done...

    ReplyDelete
  7. Hi all !

    The patch for 2.6.39 has been merged into the sound kernel branch ! It will be available out of the box in Linux 3.1 :)

    The full story here.

    Thanks to all participants !

    ReplyDelete
  8. Congratulations Joe. This is a fine work, that I would like to have done myself...
    Anyway, it is a bit complex for me.
    Is there a possibility to create a bootable CD that we can boot on any computer, that has the patch and ardour, or maybe only arecord, and that allows to record FTB 24bits. I do that with a simple basic Ubuntu CD booted on any PC (currently a Windows PC...), but is works only 16 bits...

    Pierre Couderc
    pierre at couderc . eu

    ReplyDelete
  9. yomguy,

    Do I have to follow any of Joe's steps to go RT on 2.6.39?

    and how do I add "threadirqs" to the kernel boot arguments, and do

    $ sudo update-grub

    on a Gentoo system?

    ReplyDelete
  10. Sorry Bacon, I'm late !

    There are no RT patches for 2.6.39 to get it FULL preemptible whereas this one already includes most of the RT functions. So you don't need all Joe's steps but just apply the FTP patch on sources, compile and, yes, add "threadirqs" to boot args, then update-grub.

    But now new RT patches for 3.0.3 have been published. For those ones, yes, apply all Joe's steps and you will get it then FULL preemptible..

    I just tested 3.1 RC4 yesterday and the FTP mounted in 24 bits out of the box ! :-P But to tune the card, I needed to comment out all "options snd-usb-audio ..." calls in /etc/modprobe.d/alsa-base.conf not refering the FTP but this one :

    options snd_usb_audio vid=0x763 pid=0x2012 device_setup=0x0C index=-2 enable=1

    ReplyDelete
  11. Just a couple of tips that maybe you should add to this guide :-)

    1 - I tried this procedure on a clean Debian 6 installation, and i had an error about missing library (precisely zlib.h) if you got that error you have to install zlib1g-dev to avoid the problem (add an apt-get line to your guide).

    2 - Recompiling the kernel is a very cpu-expensive activity, so you might consider to use the concurrency level at compile-time. To use all your cores you have to add the "-j" options to make-kpkg with your core_number+1. For example, if you have a dual-core you might use:

    make-kpkg -j 3

    Enjoy :-)

    ReplyDelete
  12. So, just to be sure that I understand this correctly… the M-Audio Fast Track Pro should work out of the box in 24-bit/96kHz mode with the current 3.1.x kernel?
    I consider buying this interface…

    ReplyDelete
  13. Peter, yes it should !
    24 bits is OK.
    But I must say that I didn't manage to get 96 kHz now.. I think I have to fix that in the driver soon.
    I propose we could manage a list of our tests so that we can know what is working and what is not.

    Yomguy

    ReplyDelete
  14. Also, I have to get the 4 output channels together. Now, It seems we can just have one pair of output (1&2 or 3&4) for a JACK session..

    ReplyDelete
  15. Note: I was able to handle multiple usb audio device like this :

    options snd-usb-audio index=2,3 vid=0x46d,0x763 pid=0x81d,0x2012 device_setup=0x00,0x12 enable=1,1

    ReplyDelete
  16. I have no words for this great post such a awe-some information i got gathered. Thanks to Author.
    Vee Eee Technologies

    ReplyDelete
  17. Joe, first thanks so much for all the work you've done with the FTP - I've used this post more than several times for reference while getting my FTP to work on Gentoo (which I've done successfully thanks to you). Also, props to yomguy (the 2.6.39 patch worked great !).

    Just wanted to report/update to anyone that is using this device on Linux:

    I had the opportunity to build up a new box this past week, so I chose to use Gentoo 'testing' (~), which to gentoo, is more 'leading edge' on the repos, so you get very recent releases, etc. So, I did pull kernel 3.1.5 and configured the USB audio in the device settings. I can also (like yomguy) say that FTP works great 'out-of-the-box' on Kernel 3.1.5, no patches needed. Nothing to add but the one-line file 'fast-track-pro.conf' into the /etc/modules.d/ dir, and turn the device on. I used the "device_setup=0x09" to start testing. I also noticed now that the new builds of JACK add a 'realtime' group with the priorities already set in the /etc/security dir, so instead of adding the '@audio' lines into /etc/security/limits.conf, all you have to do after the jackd install is add the user the 'realtime' group and done!

    First start up of jackd on the new kernel from the commandline was periods at 256 and priority on 'default' gave 5.3ms!, 48k 24-bit Big Endian! (Duplex) Sweet !

    I ran a few checks with jack-capture both from a streaming source and from a physical input source (Microphone) and the FTP seemed to hold up just fine, no xruns, no aborts or errors that I could see. Like Yomguy, I'm going to try to get through the other 'setup' options and see how the device goes. But for basic, duplex 24-bit, 48K In/Out, looks like the stock 3.1.x kernel is supporting well.

    I noticed Avid is still promoting/selling this device under the M-Audio label and it's in a sweet price range (especially if you can find 'B-Stock' on Amazon) for the intro home studio folk so I'm guessing people are still buying it. Youtube seems to have an excessive number of 'reviews' on this device too, some good, some not-so-good ;)

    ReplyDelete
  18. 8mihi: great!

    For all new tests with 96kHz mode, please drop me an email as a copy of your messages here: yomguy _at_ parisson.com

    I hope I can submit a patch for this and better documentation for config to the Linux sound branch before the 3.2 release :)

    Cheers!

    ReplyDelete
  19. Hello,

    Can you please update to the latest kernel(3.1)? I really want to try it and the main difference is there is no more "sound/usb/usbaudio.c" and it seems that the functionality has split into several files. It would be great if you can update the patch.

    thanks!

    ReplyDelete
  20. It's anonymous again. My real problem is that my card is recognized as 2 devices in Jack. Basically 2in-2out or 2out options. Is there a solution for accessing all 4 outputs? I heard talks of virtualizing with alsa but I don't know what that really means? I just absolutely need 4 simultaneous outputs. Any ideas?

    ReplyDelete
  21. Hello Anonymous, first of all have you tried compiling the 3.1 kernel as yomguy has mentioned here? I believe it is supposed to run at 24 bit with 3.x kernels out of the box. I really don't have the time to do further testing at the moment, I am working in my music now which is very important for me and I really don't feel like breaking my audio workstation environment. Like I said, if it's working don't fix it. You have to remember that compiling to a newer kernel there has to be a real excuse to do so, like some fancy hardware that just wont run in your original kernel and you are absolutely sure it will with a newer one. Many people feel pressured with newer versions of things and feel the urge to upgrade to run the latest. This is not the case, and it should never be until it's absolutely necessary. The problem you have with JACK detecting the FTP as two individual devices is normal (although it shouldn't be) but I guess it's a problem with the patch or even JACK and the way JACK detects and routes things it sees, believe me I have been trying and trying to get the full 4 outs at once myself with no avail, and it will always be that way as long as JACK sees the device as two different devices.

    ReplyDelete
    Replies
    1. Try creating a "forward" in the Jack Patchbay. See post #4 in this thread for a description: http://ardour.org/node/4934

      I successfully got multiple cloned outputs on my Delta 1010LT using this techinique.

      Delete
  22. Hi Joe,

    Have you or anyone else experienced having to reload alsa, after cycling the power on the FTP? Other than after a fresh reboot every time I power off and power back on the FTP I need to do "sudo /sbin/alsa force-reload", removing and reinserting the usb audio module by itself doesn't seem to do the trick.

    On another note, I've also experienced the pink noise (and some other very weird digital distortion) when I try to push the envelope too far with my settings... Trying to start it with in 48kHz with frames/period at 128 and periods per buffer at 2 generates this pink noise without fail--although mine seems to be more persistent, sometime I need to leave it powered off for a few minutes and/or switch the usb bus. Sometimes I'll also get pink noise or weird (non xrun, non peak) digital distortion even with slightly more conservative settings depending on the applications I'm using with it (Audacity is especially bad with this, luckily I have no reason to use Audacity over Ardour). I'd believe that these could all be problems with 24bit mode not engaging properly. It might be interesting though to have FTP users compare notes about at what settings and how consistently they run into occurrences of pink noise/digital distortion so we can map out the frontiers of where the FTP is stable and where it is less so.

    Thanks for your great tutorial! It's useful even for those who get pre-patched kernels elsewhere!

    Austin

    ReplyDelete
    Replies
    1. Hello Austin, thx for your comments.

      I think the only issue when not being able to reload the USB audio kernel modules is because you probably have another USB audio device connected into your computer, even a webcam with integrated microphone will be the culprit for this problem, so issuing "modprobe -r snd-usb-audio" and "modprobe snd-usb-audio" will problably give you an output like "fatal, usb audio modules are in use", is that your case? What I had to do is blacklist all USB audio devices at boot time that way the webcam microphone would never get a grip of it, then issuing the commands even with the Fast Track Pro powered on has been possible, although I still have to power it off sometimes mostly if I get the distorted sound or pink noise. Also this pink noise to me seems more random than by pushing it too far, I always track and mix at 44.1KHz and master at 88.2KHz and I have noticed that the noise is very random even on 88.2. Sometimes waiting a few seconds between booting, powering the device and running JACK have helped to reduce possibilities of the noise.

      You should put a value of 3 in Periods/Buffer that is mostly the value for USB devices and some firewire cards I believe. JACK2 has been much better for me, even latency wise, so I run JACK at 256 and just barely about hear a very minimal latency.

      I just compiled kernel 3.2.5 with rt patches, patching with Fast Track Pro is no longer necessary but configuration files are still needed and are the same, I must say I am surprised how well it all works, I will soon update the guide for newer kernels, if you feel a little adventurous you can give that also a try.

      Thanks and hope you find a solution to this.

      Wish you the best luck.

      Joe

      Delete
  23. HELP ME,
    I can't download the file fast-track-pro.conf and it's too important, can you send me this file? iris72.touchard@gmail.com
    Tanks you very much

    ReplyDelete
  24. Hi Joe,

    and thanks for making this guide.

    I have a couple of questions:

    Is it reasonable to try to use this on a laptop (Lenovo T410s, i5, 4GB)?

    Is it impossible to make this work by applying the patches to the kernel Squeeze installs by default? I would like to try this because the version described here doesn't support my intel 915 graphics adapter, and the screen stays black when X starts... I know that I might habe to fiddle a bit in order to make the 2 patches, so if anyone knows for sure that this will not work, please tell me :-)

    Thanks a lot

    Frank

    ReplyDelete
  25. Frank,

    I'm using this on a laptop (and a much older one than yours, Dell Latitude D630, Core 2 Duo, 4GB) and it works fine (I'm able to get latencies down to 8ms, sometimes 5ms, with complete stability and without putting much strain on the processor). I generally use it with Tango studios prepatched kernel but I just upgraded to Ubuntu 12.04 which ships with a 3.2.0-24-generic kernel and it looks like it recognizes the FTP out of the box. One would still probably want to follow the above system configuration steps to merge the devices, set the frequency/bit-rate/etc. but no messy kernel patching. So you could just try using whatever distro you are most comfortable with but upgrading to a 3.2.* kernel.

    Best,
    Austin

    ReplyDelete
    Replies
    1. Thanks Austin, but the stock Ubuntu kernel doesn't have the real-time patches, in there, so...

      Delete
    2. I haven't tried this (as I still use my Tango Studio partition for all low latency stuff, and don't having JACK and Pulseaudio installed side by side) but linux-image-3.2.0-23-lowlatency is in the repositories and looks supported.

      What I meant though wasn't to recommend Ubuntu (I use it for general desktop computer but would never recommend it for pro-audio) but rather that you should be able to solve your video card issues by using a (or compiling your own) realtime/rt/lowlatency/preempt/whattever 3.2.* family kernel without having to install the FTP patch yourself.

      Delete
  26. Thanks a lot for updating the info, I have just made a small donation. M-Audio should double my donation: I have ordered (and yet to receive) an FTP just because of this page!

    ReplyDelete
    Replies
    1. Thank you very much Frank, and I hope the FTP gives you many years of good service.....

      Delete
  27. Hey Joe, just want to say awesome that you write down your experiences and trials n tribualtions here, I'm about to put some money in a proper sound card, and thought it would be really nice if it also worked on linux (i'm working with avlinux right now). I saw you have renoise too, maybe you want to check out my blog which deals mostly with renoise as of now: beatcreators.wordpress.com
    thanks!

    ReplyDelete
    Replies
    1. @beatcreators:

      Thanks! If you use AVlinux you should have no problem since the main developer (known as GMaq in Ardour forums) has been very supportive with this specific device, you will still have to just go through some of the configurations that I have posted here.

      I'll give your blog a good look.

      Thanks for the share.

      Good luck!

      Delete
  28. Having to compile my own RT kernel for the first time because the old prepackaged one I used to use (2.6.*) doesn't play nice with my new ivy bridge hardware. Thanks a ton for this tutorial, it has made the process much less intimidating.

    I did run into a packaging error that I needed to search around a little to find a solution for (I think that Debian already ships the package that fixes this bug which is why you didn't run into it.)

    The error I got is:

    dpkg-gencontrol: error: package linux-image-3.4.8-custom-rt16 not in control info
    make[2]: *** [debian/stamp/binary/linux-image-3.4.8-custom-rt16] Error 255
    make[2]: Leaving directory `/usr/src/linux-3.4.8'
    make[1]: *** [debian/stamp/binary/pre-linux-image-3.4.8-custom-rt16] Error 2
    make[1]: Leaving directory `/usr/src/linux-3.4.8'
    make: *** [kernel_image] Error 2

    This is a bug (https://bugs.launchpad.net/ubuntu/+source/kernel-package/+bug/58307) where --append-to-version breaks make-kpkg. It was affecting me with kernel-package version 12.032, upgrading to 12.036 from a PPA (https://launchpad.net/~brian-rogers/+archive/ppa has it, but you might need to set the release to maverick, I had to at least) and running the command again fixed the problem.

    Also, the -j flag didn't work for me to set the concurrency level. Instead I needed to use

    export CONCURRENCY_LEVEL=4

    and then run the command (making sure to run both from the same root shell, sudo won't work here).

    Anyway, just thought I'd post these bits here in case anyone else runs into the same problems.

    I've made a small donation to show my appreciation for this post, it's helped me many times over the last year and now I've finally used it for the intended purpose of patching a kernel!

    Best,
    Austin


    ReplyDelete
    Replies
    1. Thank you very much Austin for your donation and tips and fixes for the errors you came across.

      Cheers!

      Delete
  29. anyone know how different the Fast Track is from the Fast Track Pro (besides the number of inputs etc) Just bought one and saw where there was talk of Fast Track Pro working on AVlinux,which Im trying.Im sure I need a different config file.I could return it for a FTP if its not going to work with linux.I need to figure it out quickly or take it back-thank you
    Im going to check out the Ardour site

    ReplyDelete
    Replies
    1. I'm not sure of how different they are, but I come to think that it MIGHT BE POSSIBLE that both devices have the same chipsets (or similar ones) inside, so you'll might get lucky by fooling around and make it work, since I also believe it's a USB1 class device like the FTP.

      AVlinux is a distro where the developer(s) have applied my blog instructions, so all you will need is the config file and in that very config file you will have to make changes like this:

      The default Fast Track Pro config file suggested by ALSA-wiki is:

      options snd_usb_audio vid=0x763 pid=0x2012 device_setup=0x9 index=5 enable=1

      you will have to power on your Fast Track (not Pro) device and in a terminal you will issue the command:

      lsusb

      With Fast Track Pro we get the following values:

      Bus 002 Device 004: ID 0763:2012 Midiman M-Audio Fast Track Pro

      So as you can see you will have to change the values for both the vid and pid in your Fast Track config file according to what you get with lsusb command, and you will have to fool around with the device_setup values because this is what depends on the tpye and number of I/O your device has. The rest could/should be left alone.

      Like I said, it MIGHT work if it does have the same chipset or similar chipset.

      Wish you good luck!

      Delete
  30. lsusb
    Bus 002 Device 006: ID 0763:2024 Midiman

    I need to figure out exactly what to put in the file.I had tried your config and was able to get sound into audacity through the device.I have since installed the latest AVlinux 6.0 .I think it will work if I can get the config right.Thank you!!

    ReplyDelete
    Replies
    1. In that case, your config would be something like this:

      options snd_usb_audio vid=0x763 pid=0x2024 device_setup=0x9 index=5 enable=1

      Just the device_setup=0x9 is what you will have to play with. You'll might have to do different tests with different values like:

      device_setup=0x1 or device_setup=0x2 or device_setup=0x3 ......

      but for the rest it should all be fine.

      Hope it does work!

      Delete
  31. I have
    options snd_usb_audio vid=0x763 pid=0x2024 device_setup=0x1 index=3 enable=1

    I changed jack in qjackCtl input Device hw:3,0 OutputDevice hw:3,0
    Then I changed in Ardour in the mixer on the left in 1 to system :capture_2 I am able to record my guitar at the same time playing along to another track. I have never messed around with Ardour much so it took a bit of time to figure out the input had to be set.Not sure yet how to do that to Qtractor. I believe my device is USB Fast Track MKII at the following link. http://www.m-audio.com/products/en_us/FastTrack.html I do not have a microphone to test that part and I'm not sure that I have done this correctly but it does work everytime I tried it.I am the same person you talked to above.Also I did the changes in /etc/default/rtirq that you showed.My jack config does not show it as Maudio,everthing says default except for the input and output Device changes I made.Audacity will record also.Thanks for your time!

    ReplyDelete
    Replies
    1. Perfect! The index=3 is perfectly fine, actually it's optional on the number you give it, the trick is to give it a number higher than the number of usb audio devices you have connected to your computer so that they don't interfere with the FTP's settings at boot time.

      All you have to do is play/fool-around with the device_setup values and qjackctl options to see what does what, depending on the specs of your device like 24 vs 16 bit, sample-rates channels, etc, it's a painful and tedious task, but will for sure help you understand how your device really works.

      I'm very glad you got yours working and thanks for posting this info, I believe it will help other users who have the same device you have.

      Cheers!

      Delete
  32. Hello Joe... Thanks a LOT!!! My FTP is working full duplex 24bits 44100Hz... I'm using Ubuntu Studio 12.04.

    I just needed to follow from the "Part III - System Configuration" on... :D

    ReplyDelete
  33. Hi Joe,

    I still can't put my FastTrack working. I've made a topic on AV6 forum: http://www.remastersys.com/forums/index.php?topic=2601.0
    but it looks like nobody is able to help with that issue... do you have some idea what should I try to change? I'm starting to be desperate, thinking of why did I buy that tricky mashine...

    The last thing I did to try to get my FastTrack run was to do a bit of the priorities, but AV Linux 6 was having most of the things you advise already included in (I checked that out).

    ReplyDelete
  34. 1.- Did you already try loading and unloading USB Sound Module?

    In terminal as root do:

    modprobe -r snd_usb_audio
    modprobe snd_usb_audio

    And try again

    If you get error please post it here

    2.- Please post contents of /etc/modprobe.d/fast-track-pro.conf

    3.- With Fast Track pro powered on please type in terminal:

    lsusb

    And post result here

    I saw your qjackctl screenshot in AV linux and 5,1 for input and 5,0 for output is ok, but make sure to put -S (BIG S) after jackd in server path.

    Please double check carefully and rested all my configurations with your system, slowly, I know you probably have already, but being tired and stressed makes us overlook things sometimes.

    Let's see what we can do ok?

    Cheers!

    ReplyDelete
  35. Ok, thanks for your intrest!
    I tried to put -S after jackd, but it looks like this option is not included. I thought I use Jack2, but I dont know where to find this information. The message says:

    usage: jackd [ --no-realtime OR -r ]
    [ --realtime OR -R [ --realtime-priority OR -P priority ] ]
    (the two previous arguments are mutually exclusive. The default is --realtime)
    [ --name OR -n server-name ]
    [ --no-mlock OR -m ]
    [ --unlock OR -u ]
    [ --timeout OR -t client-timeout-in-msecs ]
    [ --port-max OR -p maximum-number-of-ports]
    [ --debug-timer OR -D ]
    [ --no-sanity-checks OR -N ]
    [ --verbose OR -v ]
    [ --clocksource OR -c [ c(ycle) | h(pet) | s(ystem) ]
    [ --replace-registry ]
    [ --silent OR -s ]
    [ --version OR -V ]
    [ --nozombies OR -Z ]

    1. After loading and unloading Sound Module, the reaction when I started to play (on Pianoteq, but it is the same in any program) was the same as before, loads of xruns:

    **** alsa_pcm: xrun of at least 0.033 msecs
    13:06:48.248 Calling back XRUN (1).
    **** alsa_pcm: xrun of at least 0.019 msecs
    **** alsa_pcm: xrun of at least 0.030 msecs
    **** alsa_pcm: xrun of at least 0.039 msecs
    (...) - about 150 reports like this, and then:
    jackd watchdog: timeout - killing jackd

    2.The only line in fast-track-pro.conf file, which is not with "#" in the beginning is this one:

    options snd_usb_audio vid=0x763 pid=0x2012 device_setup=0x9 index=5 enable=1

    3.lsusb:

    Bus 002 Device 009: ID 0763:2012 Midiman M-Audio Fast Track Pro
    Bus 002 Device 003: ID 148f:1000 Ralink Technology, Corp.
    Bus 002 Device 002: ID 8087:0020 Intel Corp. Integrated Rate Matching Hub
    Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
    Bus 001 Device 004: ID 0461:4db6 Primax Electronics, Ltd
    Bus 001 Device 003: ID 046d:c52b Logitech, Inc. Unifying Receiver
    Bus 001 Device 002: ID 8087:0020 Intel Corp. Integrated Rate Matching Hub
    Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

    I didnt compile the kernel, but I hope that in AV Linux it is included in the right way! I did the number III of your advices carefully.

    ReplyDelete
  36. I am also not sure what the -S behind jackd should do, but if I understood it, according to the possibilities I tried following:

    jackd -d alsa -S

    But without any changes, still the same problems.

    ReplyDelete
    Replies
    1. Ok, I was assuming you were using JACK2 also, it seems you're not. The -S should go right after the jackd command and only for JACK2 as I explain above.

      Still to make sure please type in terminal jackd --version so we make sure exactly what version you are using.

      Please post the results of:

      /cat/proc/interrupts

      uname -r

      and with FTP powered on please post the results of:

      ps -eLo rtprio,cls,pid,pri,nice,cmd | grep "FF" | sort -r

      And what does your rtirq config file look like? It should be probably in /etc/default/rtirq
      Please copy just the order of priorities...

      Your fast-track-pro.conf file is ok...

      Delete
    2. Ok, this result will be very short:

      1. I am surprised that AV6 is not using Jack2 too! Do you think things could get easier with it - should I try to use it?
      Jackd --version:

      jackd version 0.121.3 tmpdir /dev/shm protocol 24

      /cat/proc/interrupts:

      bash: /cat/proc/interrupts: No such file or directory

      --I understand that you are searching for some information or a file in the wrong directory. I searched for "interrupt" files in my file system, but there are 20 other files like this, so please specify what exactly you want to see, so I can try to find the exact one.

      2. uname -r:

      3.0.36-avl-9

      3. ps -eLo rtprio,cls,pid,pri,nice,cmd | grep "FF" | sort -r:

      99 FF 7 139 - [migration/1]
      99 FF 6 139 - [migration/0]
      99 FF 14 139 - [migration/3]
      99 FF 11 139 - [migration/2]
      90 FF 558 130 - [irq/8-rtc0]
      85 FF 765 125 - [irq/16-ehci_hcd]
      84 FF 1072 124 - [irq/16-mei]
      80 FF 1108 120 - [irq/48-hda_inte]
      80 FF 1078 120 - [irq/47-hda_inte]
      75 FF 546 115 - [irq/1-i8042]
      74 FF 545 114 - [irq/12-i8042]
      50 FF 780 90 - [irq/46-ahci]
      50 FF 774 90 - [irq/20-ehci_hcd]
      50 FF 2608 90 - [irq/45-eth0]
      50 FF 2592 90 - [irq/19-0000:44:]
      50 FF 104 90 - [irq/9-acpi]
      - TS 8925 19 0 grep FF

      (I didnt have Jack on, if it is necessary?)

      4. rtirq file without "#":

      RTIRQ_NAME_LIST="rtc usb1 snd i8042"
      RTIRQ_PRIO_HIGH=90
      RTIRQ_PRIO_DECR=5
      RTIRQ_RESET_ALL=0
      RTIRQ_NON_THREADED="rtc usb1 snd"

      Delete
    3. I attach the "ps -eLo rtprio,cls,pid,pri,nice,cmd | grep "FF" | sort -r" command with Jack turned on.

      99 FF 7 139 - [migration/1]
      99 FF 6 139 - [migration/0]
      99 FF 14 139 - [migration/3]
      99 FF 11 139 - [migration/2]
      90 FF 558 130 - [irq/8-rtc0]
      85 FF 765 125 - [irq/16-ehci_hcd]
      84 FF 1072 124 - [irq/16-mei]
      80 FF 1108 120 - [irq/48-hda_inte]
      80 FF 1078 120 - [irq/47-hda_inte]
      75 FF 546 115 - [irq/1-i8042]
      74 FF 545 114 - [irq/12-i8042]
      50 FF 780 90 - [irq/46-ahci]
      50 FF 774 90 - [irq/20-ehci_hcd]
      50 FF 2608 90 - [irq/45-eth0]
      50 FF 2592 90 - [irq/19-0000:44:]
      50 FF 104 90 - [irq/9-acpi]
      5 FF 9512 45 - qjackctl
      20 FF 9520 60 - /usr/bin/jackd -dalsa -r44100 -p256 -n3 -Xseq -D -Chw:5,1 -Phw:5,0
      10 FF 9520 50 - /usr/bin/jackd -dalsa -r44100 -p256 -n3 -Xseq -D -Chw:5,1 -Phw:5,0
      1 FF 9520 41 - /usr/bin/jackd -dalsa -r44100 -p256 -n3 -Xseq -D -Chw:5,1 -Phw:5,0
      - TS 9533 19 0 grep FF

      Delete
    4. I'm sorry I fucked up with the /cat/proc/interrupts it should be:

      cat /proc/interrupts (in terminal)

      I was typing too fast....

      Meanwhile let me see all you posted....

      I do believe JACK2 will be better for Fast Track pro, it gives no xruns (or should not) at 256 frames....

      You will have to know how to completely remove JACK1 and install JACK2 which is not a very simple process, if any files from version 1 still reside in the system you will without any doubt have issues...

      So let's just wait, give me some time to analyze all your specs, just give me the result of:

      cat /proc/interrupts so I can figure out, ok?

      Delete
  37. Try to give JACK a priority of 84, we want it running just below

    85 FF 765 125 - [irq/16-ehci_hcd]

    After setting that priority in qjack ctl do:

    ps -eLo rtprio,cls,pid,pri,nice,cmd | grep "FF" | sort -r

    again and Jack should be right below it....

    ReplyDelete
    Replies
    1. cat /proc/interrupts:

      CPU0 CPU1 CPU2 CPU3
      0: 123 3 0 0 IO-APIC-edge timer
      1: 111 119 122 115 IO-APIC-edge i8042
      8: 0 1 0 0 IO-APIC-edge rtc0
      9: 271 260 259 268 IO-APIC-fasteoi acpi
      12: 95 82 86 84 IO-APIC-edge i8042
      16: 5522 5416 5673 5597 IO-APIC-fasteoi ehci_hcd:usb1, mei
      19: 7273 7244 7149 7182 IO-APIC-fasteoi 0000:44:00.0
      20: 101340 101269 101265 101189 IO-APIC-fasteoi ehci_hcd:usb2
      23: 0 0 0 0 IO-APIC-edge lis3lv02d
      45: 0 0 0 0 PCI-MSI-edge eth0
      46: 6632 6683 6665 6694 PCI-MSI-edge ahci
      47: 7937 8100 7961 8051 PCI-MSI-edge hda_intel
      48: 8 6 7 8 PCI-MSI-edge hda_intel
      NMI: 0 0 0 0 Non-maskable interrupts
      LOC: 283495 191451 100435 92916 Local timer interrupts
      SPU: 0 0 0 0 Spurious interrupts
      PMI: 0 0 0 0 Performance monitoring interrupts
      IWI: 0 0 0 0 IRQ work interrupts
      RES: 456859 506273 170446 215637 Rescheduling interrupts
      CAL: 540 520 1906 1442 Function call interrupts
      TLB: 4599 3800 355 544 TLB shootdowns
      TRM: 0 0 0 0 Thermal event interrupts
      THR: 0 0 0 0 Threshold APIC interrupts
      MCE: 0 0 0 0 Machine check exceptions
      MCP: 5 5 5 5 Machine check polls
      ERR: 0
      MIS: 0


      After settíng priority 84, I run the command:

      99 FF 7 139 - [migration/1]
      99 FF 6 139 - [migration/0]
      99 FF 14 139 - [migration/3]
      99 FF 11 139 - [migration/2]
      94 FF 4696 134 - /usr/bin/jackd -P84 -dalsa -r44100 -p256 -n3 -Xseq -D -Chw:5,1 -Phw:5,0
      90 FF 558 130 - [irq/8-rtc0]
      85 FF 780 125 - [irq/16-ehci_hcd]
      84 FF 4696 124 - /usr/bin/jackd -P84 -dalsa -r44100 -p256 -n3 -Xseq -D -Chw:5,1 -Phw:5,0
      84 FF 1071 124 - [irq/16-mei]
      80 FF 1192 120 - [irq/48-hda_inte]
      80 FF 1178 120 - [irq/47-hda_inte]
      79 FF 4690 119 - qjackctl
      75 FF 546 115 - [irq/1-i8042]
      74 FF 545 114 - [irq/12-i8042]
      50 FF 792 90 - [irq/46-ahci]
      50 FF 786 90 - [irq/20-ehci_hcd]
      50 FF 2650 90 - [irq/45-eth0]
      50 FF 2637 90 - [irq/19-0000:44:]
      50 FF 104 90 - [irq/9-acpi]
      1 FF 4696 41 - /usr/bin/jackd -P84 -dalsa -r44100 -p256 -n3 -Xseq -D -Chw:5,1 -Phw:5,0
      - TS 4759 19 0 grep FF


      The results of sound card still the same.

      Delete
    2. Well There are two possibilities, which could be both in combination....

      When you posted the results of cat /proc/interrupts

      There's a line that says:

      16: 5522 5416 5673 5597 IO-APIC-fasteoi ehci_hcd:usb1, mei

      This is the one belonging to USB1 but it's sharing the same IRQ (16) with mei, I'm not sure what mei is but I think it has something to do with networking and that is not a very good thing because networking devices are awake and running all the time listening, so please try blacklisting mei and reboot so the module is not loaded at reboot, It's possible that you won't have networking but the thing here is that USB1 is free on it's own. You can also try plugging FTP to another USB port (maybe even try all other ports), but I still believe blacklisting will be a better option for your case.

      To blacklist all you have to do is edit

      /etc/modprobe.d/blacklist.conf

      and at the end place mei, if that file does not exist you can create it, save it and reboot.

      I also believe that mei is a driver module that belongs to the staging drivers stack in the kernel, which I explain here in my blog to better disable them...., So I'm not sure if you really are using a well tuned kernel for the Fast Track Pro. You have to ask in AV linux forums if the kernel that ships by default is already a preemtible kernel or do you have to install it from their repository after installing AV linux.

      And I am afraid that JACK2 will be much better with the -S switch which means "synchronous" mode, and it does give less xruns and latency.

      I would like you to repost me again for the last time the outputs of:

      cat /proc/interrupts
      ps -eLo rtprio,cls,pid,pri,nice,cmd | grep "FF" | sort -r

      Because with reboots things accomodate better....

      The second command is the one that matters with FTP powered on and JACK running....

      I also need to know if you have these lines:

      @audio - rtprio 99
      @audio - memlock unlimited

      in your /etc/security/limits.conf

      and in terminal do:

      groups (username) <--- your username

      So I can also make sure these are ok.

      This is the best i can do for now, but I need to double check these things I ask.

      Delete
    3. Joe, thanks for your time, it is taking a lot more than I expected and it is wonderful that there are such people like you! Anyway, the things went this way:

      Groups Awedboy:
      Awedboy : Awedboy dialout cdrom floppy audio video plugdev netdev powerdev

      The lines @audio - rtprio 99 and @audio - memlock unlimited are included in the /etc/security/limits.conf file.

      I tried to plug the USB in all 3 ports I have on my laptop, but the result was the same. So I tried the blacklisting mei. I think you forgot to say that the line should look like „blacklist mei“ - I worked with this file for several times with „blacklist“ in the beginning... and it works, the line is now without „mei“. The networking – at least wireless internet, if you mean this one, is working ok.

      CPU0 CPU1 CPU2 CPU3
      0: 123 0 0 0 IO-APIC-edge timer
      1: 90 65 79 66 IO-APIC-edge i8042
      8: 0 1 0 0 IO-APIC-edge rtc0
      9: 41 36 36 40 IO-APIC-fasteoi acpi
      12: 17 14 12 16 IO-APIC-edge i8042
      16: 38 39 37 39 IO-APIC-fasteoi ehci_hcd:usb1
      19: 707 689 702 733 IO-APIC-fasteoi 0000:44:00.0
      20: 1110 1140 1123 1144 IO-APIC-fasteoi ehci_hcd:usb2
      23: 0 0 0 0 IO-APIC-edge lis3lv02d
      45: 0 0 0 0 PCI-MSI-edge eth0
      46: 3356 3376 3371 3323 PCI-MSI-edge ahci
      47: 80 77 77 77 PCI-MSI-edge hda_intel
      48: 7 8 7 7 PCI-MSI-edge hda_intel
      NMI: 0 0 0 0 Non-maskable interrupts
      LOC: 32765 22634 13991 19942 Local timer interrupts
      SPU: 0 0 0 0 Spurious interrupts
      PMI: 0 0 0 0 Performance monitoring interrupts
      IWI: 0 0 0 0 IRQ work interrupts
      RES: 30864 24911 14404 12776 Rescheduling interrupts
      CAL: 36 66 59 76 Function call interrupts
      TLB: 301 277 273 284 TLB shootdowns
      TRM: 0 0 0 0 Thermal event interrupts
      THR: 0 0 0 0 Threshold APIC interrupts
      MCE: 0 0 0 0 Machine check exceptions
      MCP: 2 2 2 2 Machine check polls
      ERR: 0
      MIS: 0

      I started JACK, and typed the command ps -eLo rtprio,cls,pid,pri,nice,cmd | grep "FF" | sort -r:

      99 FF 7 139 - [migration/1]
      99 FF 6 139 - [migration/0]
      99 FF 14 139 - [migration/3]
      99 FF 11 139 - [migration/2]
      94 FF 3120 134 - /usr/bin/jackd -P84 -dalsa -r44100 -p256 -n3 -Xseq -D -Chw:5,1 -Phw:5,0
      90 FF 558 130 - [irq/8-rtc0]
      85 FF 775 125 - [irq/16-ehci_hcd]
      84 FF 3120 124 - /usr/bin/jackd -P84 -dalsa -r44100 -p256 -n3 -Xseq -D -Chw:5,1 -Phw:5,0
      80 FF 1174 120 - [irq/48-hda_inte]
      80 FF 1162 120 - [irq/47-hda_inte]
      79 FF 3053 119 - qjackctl
      75 FF 546 115 - [irq/1-i8042]
      74 FF 545 114 - [irq/12-i8042]
      50 FF 785 90 - [irq/46-ahci]
      50 FF 779 90 - [irq/20-ehci_hcd]
      50 FF 2661 90 - [irq/45-eth0]
      50 FF 2653 90 - [irq/19-0000:44:]
      50 FF 104 90 - [irq/9-acpi]
      1 FF 3120 41 - /usr/bin/jackd -P84 -dalsa -r44100 -p256 -n3 -Xseq -D -Chw:5,1 -Phw:5,0
      TS 3133 19 0 grep FF

      Delete
    4. When I started hydrogen to play something, the only difference was that the program shut down immediately, and I am not sure if those two lines in the jack messages were there before:
      subgraph starting at Hydrogen lost client
      bad status (-2) for client Hydrogen handling event (type = 8)

      I will ask about this preemptible kernel right now.

      Delete
    5. Jara, I fucked up again :)

      It was:

      blacklist mei (not just mei)

      Sorry about that.

      So you had better results blacklisting mei?

      As you can see when you vlackilisted mei now the same line for irq shows:

      16: 38 39 37 39 IO-APIC-fasteoi ehci_hcd:usb1 (NO MEI)

      Since you mention you are on a laptop I would try to disable all wireless/network managers or services, more than anything the wireless, those are well known to cause majority of xruns.

      Delete
    6. Ok, all what I know to do is to disable networking on the NetworkManager Applet 0.8.1. I tried that without any changes with running FTP.

      I also repost reply from the guy who "leads" the AV6 project on the forum topic about the Jack2:

      "I don't suggest or support JACK2, I don't think that is your problem, Joe may simply be recommending it because he is used to it and has it working on his hardware. We have a lot of reports that the FTP is working on AV Linux as-is even on the LiveDVD, I'm surprised that we don't have some more people who use the device helping with this thread. I don't have one personally otherwise I would have better help and suggestions for you. JACK2 is simply an SMP fork of JACK1 it is not a better or improved version, in fact Paul Davis the developer of Ardour still recommends JACK1. It's not that JACK2 is bad although it seems to have worse performance with some FireWire devices.

      I do not have custom JACK2 packages for AV Linux and if you install JACK2 from the Debian Squeeze repos it will be an older version without JACK-Session support and it will want to remove a few JACK1 dependent packages. If you feel you MUST try JACK2 then I suggest installing the default JACK2 Debian Squeeze packages which will remove the custom AV Linux JACK1 packages and a few more besides and then downloading the latest JACK2 source code from jackaudio.org and doing an overly install of the newer source to --prefix=/usr.

      Again I don't believe the version of JACK is the issue here, I think you are missing some settings OR you have an IRQ sharing issue with your USB hub sharing resource with something else on the system. It would certainly be helpful if someone else here who uses an FTP could pitch in!"

      Delete
    7. Ok, well GMaq is correct (I know him well from Ardour Forums), and he know's what he's talking about. The thing is that when I did all this testing on my own I did figure out that the FTP had better performance with JACK2 because of the synchronous mode, far less xruns and less latency. But he is right about JACK1 being more reliable and he is right about removing JACK1 will break a few things on the system, the best way to install JACK2 is do it over JACK1 and it must be done exactly at the same location where the original one is installed, so it is kinda tricky and not easy, and that is how I've done it always and because I self compile everything related to pro-audio, but I can't expect everyone to do that.

      Also as he stated that they have users who have reported that the FTP is working with JACK1 from even live DVD, then I will suppose that JACK version will (or should) not be the main issue here, ok?

      There has to be something else I am overlooking or your laptop hardware creating the conflict, I am running out of ideas, and I'm really sorry about it...

      I went over to AV linux forums and saw the recent posts, and as GMaq said, maybe someone else can help there, but I don't know how long it will take, and I understand your need and urge to start using the FTP and creating music....

      The last thing I can tell you to try is to go into the Ardour forums (join us, GMaq will be there also) and ask for help there too, there are a few users that will for sure help us out and might even detect what could be wrong.

      Meanwhile I am thiking of other possibilities....

      Delete
    8. Ok, anyway thanks 100 times for your time, you are really devoted and good guy that you were trying for such a long time :-)

      What I will try before going to Ardour forums, is to try to run FTP straight from the LiveDVD system. I have done a couple of tweakings - but mostly with design and comfort, so I dont expect it to be different - with the system, maybe I broke some dependencies or something.

      So, I guess see you on Ardour forums :-)

      Delete
    9. Now I am running FTP through av6 liveDVD on a different laptop and for the first time I can see that it is running OK. I also tried to run FTP on liveDVD on my laptop (it is HP Probook 4720s, by the way), but it didnt work, the xruns were bahaving as before, nothing special.

      Delete
    10. Ok, well, that is kinda good news in a way, at least the FTP is working as it should out of the box with AV linux, so the real issue here is with your laptop..

      I know this will sound maybe stupid but just a thought. Have you tried with the laptop connected to power supply and not from battery? Maybe you are already doing it that way but want to make sure maybe not a energy saving service getting on the way....

      We can continue on Ardour forums if you wish, I already saw your post there at:

      http://ardour.org/node/5504

      Delete
    11. Well, it looks like nobody has to say anything more to me. That is a bit dissapointing, now I am not sure how to solve this situation... Maybe - do you have an idea of any other forum, which would be more deeper inside the system and programming, where I could bring my case? I mean, I dont have that much knowledge to try to do it, but that is the last thing I had in mind...

      The last thing is to sell my notebook and buy another one. But that is so much work to do!

      Delete
    12. Yes, I have been checking often but seems like no one could really chime in and help, it's not so much that they don't want to help, but it's more like they can't seem to find a good solution, since you did put good info on all the tweaks and configurations, so I guess they also don't have good ideas....

      A forum you could try is ArchLinux

      https://bbs.archlinux.org/

      They might be helpful also, some things I have fixed (computer related) has been by them and their guides.

      If I come with something else I'll let you know.

      Delete
    13. Hi again...

      The only idea they gave me from archlinux was this one:
      https://bbs.archlinux.org/viewtopic.php?id=149310

      But I already answered them, that it should not be my case - my version of kernel is 3.0.36-avl-9.
      Still, do you think I should take this into account?

      Delete
    14. I don't think so since the issue that is reported there is having no sound at all, your case is more hardware specific and issues with x-runs, remember you tested same AV linux and configurations on another laptop and it all worked out of the box. The only thing I could recommend is compile your own kernel following my whole tutorial and see what happens, I know it may seem kinda hard, but really isn't.

      Delete
    15. Wow. I didnt even have the idea to run in through the secondsystem - ubuntu 12.04, but now i did it, with input and output device on 2: Fast track pro. And what the hell - it works! (at least normal listening).

      Delete
    16. Hi Jaara,
      so you are able to use the custom kernel in a recent ubuntu release? and the Fast track pro is stable to play for example with Ardour ,guitar software like Rakarrack, or software synthetiser ?
      have you try to record the signal from the instrument inputs of soundcard?

      Dimitri

      Delete
    17. Hi Dimitri,

      I am not on my computer now, but in the weekend I will send you the details how it runs through ubuntu. For me it is kind of a miracle, but I still want to find out what is the problem on AV Linux.

      J

      Delete
    18. Hi Jaara, is your Ubuntu stable to work with music and also listen audio with mediaplayers , internet... ?
      i have several problems to manage the manual istallation of source package like newest version of Rakarrack, Guitarix and so on... Debian is so hard to manage compared to Ubuntu / Ubuntu Studio .. so if you confirm me that i can compile the custom kernel also in Ubuntu (what is the right version to install?) and use the Fast track pro on it i would install also Ubuntu with the customized kernel ....

      Please let me know
      thanks

      Dimitri

      Delete
    19. So, I finally got it working. I am not sure what was the problem, basicly I just kept on trying until it got working, so if anybody is interested, this is my setup (I hope I didnt forgot on something):

      On the blacklist.conf file, I blacklisted mei.
      On the fast-track-pro.conf file, I chose the option with 16bit mode, 48kHz and I put the card on 3 (because 3 and 4 were empty):
      options snd_usb_audio vid=0x763 pid=0x2012 device_setup=0x0 index=3 enable=1

      The jack setup:
      Priority 1, frames/period 256, sample rate 44100, periods/buffer 3, port maximum 3, timeout 500ms; Input 3:1, Output 3:0
      I also checked priorities: realtime, unlock memory, soft mode, H/W monitor, H/W meter

      Dont know what was the actual problem, but I dont want to care anymore after endless wasted hours.
      Thanks for all your support.

      Delete
  38. Hi Joe,

    What about compatibility of
    Fast Track Ultra (FTU) ??

    If FTP works well, are good news to make FTU full compatibility, no?

    Cheers,
    Pedro

    ReplyDelete
    Replies
    1. Hello Pedro, I am not sure for the FTP Ultra since it's a USB2 device, and I'm not sure if it's already supported in linux, I don't even know if the chipset(s) is/are the same as the FTP-pro.

      You could try probably something like we succesfully did in this comments:

      http://joegiampaoli.blogspot.com/2011/06/m-audio-fast-track-pro-for-debian-linux.html?showComment=1345275409564#c3325436712212621936

      (read a few following comments to see how we got the FTP classic running, the trick is that linux detects it immediately with the lsusb command, if not you might have to google it up or check in M-Audio forums.

      Cheers.

      Delete
  39. Hi Joe,
    this is Dimitri from Italy.

    I'm going to reinstall an Ubuntu Studio latest version system in dual boot with windows 7.

    But i'm thinking seriously to move to a pure Debian system because with Ubuntu/Ubuntu studio and also Artistx versions i got several problems to use my usb soundcard M-Audio Fast track Pro (bought last year)..
    (the precedent soundcard was an internal Terratec dmx6 fire 24/96 and it worked pretty good in Ubuntu )

    But with the new M-audio i can listen audio by media players , youtube and so on but i can't play guitar into dsp processor like Rakarrack or Guitarrix... i can't use sequencer or digital multitrack recorder like Ardour.. i can't play MIDI guitar (i have a Roland GR-55 guitar synth) driving software synths like aeolus ,q synth and so on.

    So at the moment i have to play and record music just in Windows Seven but i would prefer open source software because i have not a regular licence for the windows pro audio software i'm using and of course because there are several eccellent software to take advantage in linux world.

    I have just download by Utorrent this version of Debian live: "debian-live-6.0.4-i386-gnome-desktop.iso".. i want to try without install it on the linux partition because i know enough how Ubuntu release works but i don't know if i'm able to manage a pure Debian realease.

    Is this version right for pro audio? and my soundcard is going to be completely supported in all its functions and features? or i have to choose another version?

    can i install in debian system all the free software available in the same way i do in Ubuntu system? for example Libre Office, mozilla Thunderbird,Firefox, Gimp.. or utilities like GParted, Start-Up manager and so on? do i usually need to use terminal emulator and manage scripts a lot more than on Ubuntu system?
    so, a Debian system can be customized like an Ubuntu standard release?
    thanks a lot
    Dimitri

    ReplyDelete
    Replies
    1. I forgot to say... my pc is an intel dual core duo @ 2800 Mhz, and there is 4 GB of RAM..

      Delete
    2. Hello Dimitri, the version of Debian should suffice, it will automatically upgrade to 6.0.5 or whatever 6 recent version is at the moment.

      If you come from ubuntu world you will not have much problems, all the software is located in synaptic package manager just as ubuntu, the thing is that a lot of applications might be a little old, that's why it's called "stable", ubuntu on the other hand uses more the "testing" and "unstable" Debian repositories, I currently use "testing just to be a little more on the edge with package versions, especially since I like to have newer lib versions, and a lot of people that use Debian use the "testing", so it's up to you to use 6 (stable at the moment) or testing, Firefox is rebranded in Debian as Iceweasel but it's exactly the same thing, what I did was completely remove Iceweasel, and downloaded firefox, flash will have to be installed manually, it's simple, if you have nvidia do read how to install nvidia, mostly if you care about high end graphics or gaming, if that's not your case then nouveau will default as your graphics driver automagically. You still might have to compile a few things (maybe more with stable release).

      Good luck!

      Delete
  40. Hello Joe,
    before i dive into kernel customizing adventure i have to add some useful things:

    Just now i remember that when i had the precedent internal Terratec soundcard i got some random problems even in Windows XP... that soundcard was a present of my doctor and friend because he bought a soundcard too complex for his need. He told me that he got some random problems when his p.c. was running since several hours .. at that point very often the soundcard got muted.. but he thought that this problem depended on the fact that his p.c. stay powered on night and day..

    but i also got the same problem after a few hours of running.. and sometimes it needed to restart p.c. to restore the audio output.

    As i'm experiencing similar problems also in Windows 7 and with the M-audio ( the sound randomly disappears and could get back after some minutes..) .... what could be the cause in my hardware?
    where do you suggest me to start to investigate this kind of problem?

    thanks
    Dimitri

    ReplyDelete
    Replies
    1. Probably some power saving setting or configuration, have you checked in the BIOS? Have you tested the Fast Track Pro in another USB port without hubs? Have you tested Fast Track Pro on another PC?

      Delete
  41. Hello Joe, i had already done a check in the BIOS and, as suggested by M-audio italy technician, i disabled some parameters that could have bad effect on the audio reproduction.. but at the moment i have solved other kind of problems but not those i mentioned in the precedent message.
    I'm going to try to connect the soundcard to another usb port , anyway i never use hubs because i don't need it: i have 3 groups of 2 ports for each on the back and 2 ports on the front of pc to connect "on the fly" usb flash memories or mp3 players /cellphone devices .
    On the back the soundcard is connected alone in one of 3 groups, then in the rest of groups there are wireless mouse usb key, usb wired keyboard. Adsl modem is via ethernet port.

    as soon as possible i'll ask to my friend to can go and install the soundcard in her pc..

    ReplyDelete
    Replies
    1. Could you please post what configurations the M-AUDIO tech in Italy told you just so I know, this kind of interests e and probably will help other users, thanks.

      Cheers!

      Delete
    2. Hello!
      at today the settings i have optimized on windows 7 on suggestion of tech service are:

      1) power saving set to high performance (or something like that .. i have italian language O.S. )

      2) in the BIOS, for what concern the processors:
      a) disabled option C1E (i didn't found other similar voices C2E and so on, to disable)
      b) disabled Speed Step
      (there is not the option "EIST" but they suggested to disable also that if available in my AWARD BIOS)
      3) i did BIOS update (related to ASUS mother board) from version 1005 to 1114 (all 2009 versions)

      Then recently as you suggested me , i have connect the soundcard to another group of USB in the back of PC... i have move the printer to another couple of USB and connected the soundcard alone in that couple of USB ports where was connected the printer...
      it would seems that the problems of dropouts and random muting in the sound i mentioned before is solved but i want to test for several days the soundcard to see if it is really stable.

      by the way... some weeks ago i was forced to use the free KM Player (but it is very good) to replace VLC media player because the problems of last versions.. from 2.0 ... also in this case there was impossible to play video or music files because there was audio dropouts every 3-4 seconds..
      no problems at all with KMPlayer.

      thanks
      Dimitri

      Delete
  42. For what concern the installation of my new o.s. Debian (6.0.6) by first dvd, i'm not able to do the login at restart..
    i'm trying to solve this problem with the help of an italian forum but no one have any idea for what to do:
    when arrive at the login window , i select my user and the password but it doesn't work.
    During the installation steps i choose a simple space (by space bar) as password but the system doesn't recognize anymore that choice.
    I'm in Italy and i use an italian keyboard but with the QWERTY US system..
    I have try to change the keyboard language kind before digit the password, in several ways (US, italian with US characters, italian, Gregorian..) but it is still impossible to enter the Debian.
    it is impossible also create the character as in windows systems with combination of ALT+ ASCII code number.

    Do you know something about this problem and how i could solve it?

    thank you
    Dimitri

    ReplyDelete
    Replies
    1. update:

      Hello Joe,
      i have just solved the problem with login in Debian!
      someone suggested me to use a live dvd of Ubuntu to be able to do change root to the disk of debian and then change the password of my main (and only) user..
      it worked: i'm writing right now from the Debian.

      Dimitri

      Delete
    2. Hello Dimitri, I'm sorry I didn't reply to you before,I am remodeling my home studio at the moment, so I have no computer for a while and I have to use my wife's laptop for the meantime :[

      Still hope you can pull thru, I will try my best to check my blog more periodically these days to see how you are coming along, please be patient with me :)

      Wish you luck!

      Delete
    3. Hello Joe, i have start to compile the version of kernel you suggested but i got already an error:
      at the point 3: it can't find the zlib1g package..
      i tryed to go on but in the next steps i got another error: it can't find the patch for real time..
      however i was able to unzip the kernel in the right directory..

      is it the case to restart from scratch ? if it so, what i have to delete , to reset and so on?

      Please let me know
      thanks
      Dimitri

      Delete
    4. Hello Joe! Problems solved. i failed to download patch package and i did an error in typing zlib1g.... but now i copy and paste your command lines to avoid typing errors...
      all right the first 6 steps , i'm going to step 7!

      Dimitri

      Delete
    5. Hello Joe,
      i have completed the step 8: custom kernel restarts correctly. by the way i posted 2 other messagges before this for questions in the steps 6 to 8 but i can't see them anymore ... i saw them in precedent session..
      i go to next phase..

      Dimitri

      Delete
  43. Hello Joe,
    i'm at the step 8: after to have give the 2 command line, i got a behaviour a little different.. before to start the automatic process of building the terminal waited (i guess) for Enter key and there was tens of questions or options but i have just press enter except for a couple of option where there was a list of choice.. for example the kind of processor i have and the amount of RAM memory ... but there was already suggested the right number of selection with the ">" before..
    then, after several "enter" the building process started... and it is still running.
    why that different behavior? could it be because a wrong selection on menu config of kernel?
    thanks
    Dimitri

    ReplyDelete
  44. Hello Joe,
    i completed configuration of fast track pro but i can't start qjack.. i got an error.. here it is the message:

    JACK server starting in realtime mode with priority 10
    Cannot lock down memory area (Cannot allocate memory)
    control open "hw:1" (No such file or directory)
    control open "hw:1" (No such file or directory)
    audio_reservation_init
    Acquire audio card Audio-1
    creating alsa driver ... hw:1,0|hw:1|64|2|44100|0|0|nomon|swmeter|-|32bit
    control open "hw:1" (No such file or directory)
    Cannot initialize driver
    JackServer::Open() failed with -1
    Failed to start server
    19:46:50.986 JACK was stopped with exit status=255.
    19:46:50.987 Post-shutdown script...
    19:46:50.987 killall jackd
    jackd: nessun processo trovato (no process found)
    19:46:51.392 Post-shutdown script terminated with exit status=256.
    19:46:52.953 Could not connect to JACK server as client. - Overall operation failed. - Unable to connect to server. Please check the messages window for more info.
    Cannot connect to server socket err = No such file or directory
    Cannot connect to server socket
    jack server is not running or cannot be started
    19:47:03.873 Could not connect to JACK server as client. - Overall operation failed. - Unable to connect to server. Please check the messages window for more info.


    Please let me know
    thanks
    Dimitri

    ReplyDelete
    Replies
    1. Hello Dimitri:

      If you went through the configurations after compiling the kernel, your Fast Track Pro should be device number 5, in your jack error messages it says device 1,0 so you have to set up qjackctl to use 5,1 for input and 5,0 for output, make sure to follow all the step to configure all after the kernel compilation.

      I am almost finished remodeling my studio, so in a few days I will be online as usual. I did read the error messages you got during kernel compile, I will see in a few days exactly what could be wrong or different.

      Cheers!

      Delete
    2. Hello Joe!
      yes, using the 5,1 and 5 devices i'm able to play with Guitarrix and Rackarak (far way better) .. now i think it is just a question of fine tuning of the system... there is yet in qjackctl the error message "can't lock down memory area"...
      then there are sometimes problems after activating some effects or parameters in Guitarrix and in rackarack.. i get a kind of crash with high distortion and feedback unwanted and of digital nature (for example with clean preset ) but is not necessary to restart the software ... i can return to normal behavior restoring to default that parameter (Guitarrix) or changing preset and selecting again the precedent preset.

      I suppose it could depend on some bugs because they're not the latest version and also Ardour 2 is an old version ... for the moment i have download and installed just a few audio softwares..
      Is in Debian the same that in Ubuntu Studio for what concern finding and installation of pro audio package or other kind of software?
      i'm a little disoriented because i used a custom italian Ubuntu and it was builded with several softwares and it was more simple to find and get softwares.. i know that also Ubuntu standard have a very few software istalled by default though..

      Even before to install a complete set of pro audio softwares (soft synths, sequencers, effects..) i have to find the right audio drivers for fast track pro... at the moment i can play and record audio from inputs and outputs but i'm not able to play audio from internet, common audio/video players... and so on..

      there is a documentation about D.A.W. and pro audio, in italian that explains how to set qjackctl parameters , how to download by terminal all audio packages available and of high rated , audio drivers and so on... but i couldn't take advantage of that because i couldn't use fast track pro on Ubuntu... and that audio guide was made by a musician that uses Ubuntu and another kind of soundcard (Creative...).

      Now with your guide, at last i can use f.t.p. with linux Debian and i would like to do the right choice of audio drivers to avoid problems with the custom kernel configuration for pro audio.

      thanks
      Dimitri

      Delete
  45. Hello Joe,
    i'm struggling with the operations of installation on linux... for example i'm trying to install the latest version of Rakarrack but i get several problems.. i have download the compressed file tar.gz2 but when i go to do the "configure" i get the error of a library missing (fltk)... i have dowload also that file compressed and "unzipped" but eventually i was not able to install it on the system because when i try to install rakarrack again ,that library is indicated missing again..
    i can't understand what is the problem...

    Please could you indicate me a simple guide to learn to install linux packages ?

    it seems that Debian needs more skills than Ubuntu , because Debian refers to installation DVD but those file are usually obsolete!

    thanks a lot
    Dimitri

    ReplyDelete
    Replies
    1. usually to install a library to compile you have to look for it with a prefix such as "lib" so if you are missing fltk look for it under synaptic as "libfltk", remember that you have to install the "-dev" in order to compile something that requires it.

      Delete
    2. In other words the libfltk will not suffice, you will also need the libfltk-dev package....

      Cheers!

      Delete
  46. Hello Joe,
    it is an endless work ! as soon as i satisfy a dependency , i need to satisfy another and another probably for a ten of libraries.. and that just to install a single software!

    but that is not the only problem: i can't go on because the "libasound2" can't be uninstalled from Synaptics and when i try to install rakarrack_0.6.1-4_i386.deb with GDebi Package Installer (right click on deb package) , appears an error that says "dependency is not safisfiable: libasound2 (> 1.0.24.1) ..
    so i have uninstall some libasound2 voices or libraries from synaptics and this operation has caused the uninstalling of several tens of softwares because the dependencies..

    but i can't remove totally the voice libasound2 1.0.23 from synaptics because it involves other packages and it indicates : to remove: libsdl1.2debian-alsa ; to install: libsdl1.2debian-all...
    and i did this,
    but , libasound2 remains installed the same even though i choose "remove completely"

    is there a simplier way to set Debian Squeeze so it can dowload automatically recent packages and libraries?

    i can't see the end.

    Are you able to find and install recent versions of pro audio packages or other kind of software in Debian easily, without going crazy with literally hundreds of dependencies and file to install manually?

    I'm starting to feel really disappointed and discouraged by this operating system ..

    thanks
    Dimitri


    ReplyDelete
  47. Hello,
    even Software Center is not able to uninstall some softwares for example old version of Open Office (i want to replace it with the latest v. of Libre Office ) ...

    but it seems to me that also Synaptics is not working so well ... as you can see in the precedent message.

    does it depends on Debian bugs and so i would find that kind of problems also in Ubuntu releases? with all my good will to use debian to do music but I will not be able to hold on much longer if it continues in this way ..

    could you help me, please?
    thanks
    Dimitri

    ReplyDelete
  48. Hello Dimitri, unfortunately I don't use Rakarrack, so I have not had this type of dependency problems myself. I do understand what you mean by satisfying libraries to compile, it becomes tyring, at the start of a new fresh installation there is always a lot of dependency problems that must be satisfied to compile software, the advantage is that the more development libraries are installed the better your machine becomes to compile software, and the libraries don't even take up so much space.

    It would be good if you edit your sources.list for Debian Squeeze, you can google up very easily different repositories, but here I give you two links that might help you,

    http://debgen.simplylinux.ch/
    http://deb-multimedia.org/

    ReplyDelete
  49. Hello Joe,
    other problem: i'm trying to restore the graphical interface on Debian because when i launch from Grub either Debian 6.06 with standard kernel or Debian with custom kernel , the system start just in terminal mode .. i can't reach the desktop anymore.

    before the completition of the startup processes i can see an error : Alert: exim paniclog/var/log/exim4/paniclog has non-zero size, mail system possibly broken, FAILED!

    i can't understand why it is telling about email server .. i didn't install any server service (email, web ...)

    i suppose that all this problems originates from i tryed to satisfying the dependences of packages and libraries but i obtained the effect to a massive uninstallation of tens and tens of packages included i suppose ,possible system packages ...

    a friend suggested me to give from command line an update/upgrade command such sudo apt-get update && apt-get upgrade
    but my user "dimitri" seems not to belong to the superusers group (so it says..).

    Is there a way to restore the system packages using the installation dvd or another system? have i to install again Debian and re-compile the kernel to unblock this situation?

    Thanks
    Dimitri

    ReplyDelete
  50. Hey, Joe!

    Thanks for this guide on how to setup the FTP it's Pretty neat! However, all was well until I got this message after launching qjackctl:

    GConf-WARNING **: Client failed to connect to the D-BUS daemon:
    Did not receive a reply. Possible causes include: the remote application did not send a reply, the message bus security policy blocked the reply, the reply timeout expired, or the network connection was broken.

    Apologies on such a n00b stump but your help would go a long way.

    Thanks!

    Adam

    ReplyDelete
    Replies
    1. Hello Adam, I have never had this issue myself but google is your friend, try these two links about the same error you are pointing out:

      http://askubuntu.com/questions/135573/gconf-error-no-d-bus-daemon-running-how-to-reinstall-or-fix

      https://bbs.archlinux.org/viewtopic.php?id=152160

      In google search you will find more info:

      https://www.google.com/#hl=en&tbo=d&sclient=psy-ab&q=GConf-WARNING+**:+Client+failed+to+connect+to+the+D-BUS+daemon%3A&oq=GConf-WARNING+**:+Client+failed+to+connect+to+the+D-BUS+daemon%3A&gs_l=hp.12..0i30.6946.6946.1.8159.1.1.0.0.0.0.96.96.1.1.0.les%3B..0.0...1c.2.P-AyE--jiuA&pbx=1&bav=on.2,or.r_gc.r_pw.r_cp.r_qf.&bvm=bv.1355325884,d.b2I&fp=d1dab86060ea24d&bpcl=39967673&biw=1600&bih=762

      If you can't solve it maybe the developer of qjackctl can assist you:

      http://www.rncbc.org/drupal/

      Hope you can manage through this strange error....

      Delete
  51. Joe - Great information here. I've managed to get much more out the FTP with this tweaked kernel.

    Just one issue - I'm struggling with the monitors (NVidia card) - I can't get dual monitors enabled. In trying, I have changed something and my system is currently not giving me a GUI at all -- signal out of range for my monitor(s).

    /etc/X11/xorg.conf doesn't exist (generates it on the fly apparently, this was news to me!). I searched around and "Xorg -configure" seems to be the way to generate one. But this fails with a fatal error (number of devices doesn't match number of screens -- tried various combinations of monitors plugged in or not)

    Do you have any advice on building an Xorg.conf to work with this kernel and my card (I'd be happy with NV or Nouveau if it supports dual monitors)? Any advice/direction appreciated.

    ReplyDelete
    Replies
    1. Hello Jonathan, the Real Time Kernel is not officially supported by NVIDIA, you will have to use nouveau modules compiled in the kernel and remove (or better move) your /etc/X11/xorg.conf and remember to un-blacklist the nouveau modules if they were originally blacklisted by the NVIDIA driver when you installed it. This is another reason why I use two different partitions (and systems) for pro-audio and normal daily use, because I also have an NVIDIA card and I do a lot of 3D and GPU computing.

      Nouveau supports dual heads (monitors) but I don't know how, you can surely find how to do it in the internet easily.

      You just have to make sure that the kernel is compiled with Nouveau modules, they should be somewhere in the Device section probably in display or multimedia, of the kernel configuration, you just have to look for it and you will find it, it says clearly "nouveau"...

      Cheers!

      Delete
    2. Instead of moving your xorg.conf you can also just change in the "Device" section of that same file the following:

      Driver "nvidia"

      to


      Driver "nouveau"

      and it should work, you can try this to see if the kernel is already compiled with nouveau modules, if copied from you original kernel config., the thing is that you must make sure to unblacklist nouveau and then reboot.

      Delete
  52. I have read all this.
    I changed from windows to linux because of this.
    It's being my linux initiation program.

    Thanks Joe, you are cool!

    ReplyDelete
    Replies
    1. Francisco, my best wishes and welcome to the great world of linux and open source.

      Cheers!

      Delete
  53. Ok.

    Good news.
    After a week or so I am finally able to arm and record with FTP and my Studio Projects B1.

    I will try and report some of the problems I ran into.

    I started with Linux Mint. Ubuntu based i guess. I guess, of course, i could not compile the kernell.Then I tried to install debian 6.07 it didn't runon boot so i tried Linux Mint Debian edition. That's where I am at. In LMDE i could compile the kernell. Clean.

    I had a small problem installing the packages:

    linux-headers-3.2.16-custom-rt27_3.2.16-custom-rt27-10.00.Custom_i386.deb
    linux-image-3.2.16-custom-rt27_3.2.16-custom-rt27-10.00.Custom_i386.deb

    I couldn't do it from the terminal. Or in synaptic it was blocked...
    Finally i tried to install them from a folder window. And that did it.

    I followed the rest of the instructions till the end. And it all went smoothly.

    I would say. Don't forget to turn the FTP Off while updating the irq settings.

    The Jack part:

    being used to windows I was expecting to find a file to choose from in the drop down menu on jack main screen.
    You have to wright the M-Audio-FTP-TrackingDuplex-44100KHz-24bit, change the settings and save.

    Input and Output devices have to be put. Input device hw:5.1 Output device hw:5.0
    I was expecting to see these options in the dropdown menu but it was in the arrow right next to it. "Doh!"

    Only then FTP will appear in the connection menu from jack.

    In ardour to arm a track

    go to window>preferences>midi and choose ftp.

    add a new track.

    go to window>show mixer

    in the mixer highlight the track and then choose the input source.

    You can arm the track there or in the main windows.

    Conclusion
    It's very confusing at times.
    You just have to keep going at it and take breaks so you dont despair.

    the part where you build the kernell. Joe says "Go get a healthy snack, watch TV or take a nap"
    I would advise to take a long nap. lol. But that's my machine.
    And i heard maybe the cores option was not effective, some user said.
    And my machine is a asus p5q-e intel core2duo 3.3 4gb ddr2.

    If i may. I have some questions.

    You talk about jack 2. It's different software than qjackctl?

    Could you show me some of your music that you are making and are willing to share?

    Well i thought i had a lot of questions but i don't.

    I will have to be patient and learn as time passes and keep going at it.

    Thanks again Joe really apreciated this.

    ReplyDelete
    Replies
    1. JACK (1 or 2) is the sound server. Without it you can't run Ardour and other linux Pro-Audio applications. Qjackctl is only a GUI (Graphic User Interface) for the JACK sound server, it's optional, but it's the most popular program to configure and run JACK, because JACK in terminal mode can be quite confusing.

      I can't still show you any of my music, it is a very hard work in progress I am still working on, I don't know when I will have something "finished", and I don't really have a date yet for when I will start releasing something. If you really want to hear something done entirely with linux you can go to Ardour website in the "forums" section and you can see a lot of stuff released by other users there. I would recommend the website of the same developer of DreamStudio, his name is Dave MacInnis, his website is:

      http://www.dickmacinnis.com/

      Somewhere I think you can still download his full album for free, but he uses Ardour for all his work.

      Patience is a virtue, but enjoying yourself is what counts the most....


      Joe

      Delete
    2. Hey Joe.

      I'm trying av linux out but have a problem with video. After i load your kernel the screen goes to low resolution. Could you give me a hand? I'm trying to install the nv drivers.

      Delete
    3. Hello Francisco, I believe you will have better results with the nouveau driver instead of nv

      Also make sure your xorg.conf in /etc/X11 is set correctly to use the nouveau driver in the section "Device"

      You should have a line that says:

      Driver "nouveau"

      Delete
    4. That's one the barriers. I have no xorg.conf there. the only one i find is in /usr/share/xresprobe/xorg.conf . but thanks for the nouveau advice. That shortens the possibilities for a solution.

      Delete
  54. I'm starting to think it's a conflict because i have two monitors. Shouldnt i be running the lxde x server? I think slim is the one i have on right now.

    ReplyDelete
    Replies
    1. AH I see, hmmm, well I really don't know how to set up two monitors with nv or nouveau, Nvidia does it pretty much automatically, but Nvidia is really not supported with RT kernels...

      I'm afraid I can't really help you in your case, have you already tried asking in the AV linux forums?

      As I understand, the main developer of AV linux has made all the preparations, and his kernel should probably be sufficient in your case if trying to run the Fast Track Pro.

      You can ask there how to set up two monitors.

      Delete
    2. I'm just trying to install one monitor for now. They are both connected but the other one is connected to another pc that is running lubuntu. The thing is that I don't see too well and this resolution is killing me. On a good note. Yesterday found out that almost every command has a manual and i just found out the xorg.conf one. Wohoo! More reading for tomorrow because right now im spent. Thanks for the av linux forum tip. I already registered a while ago but most of the times i dont even know what to ask. ok. One thing i think you have an idea about. I have a 1gb ram pc. pentium 4 2.4ghz. and this is 4gb ram core2duo 3.2ghz . the smaller one works pretty well up to 480p video playing. lol... my thought was putting the weaker to go to the internet and make a music studio out of the big one. you think it's a good setup?

      Delete
    3. You mean use the small one as some type of web server?

      If this is the case I'm sure it should be more than enough. I have run home web servers with even 512 MB RAM with not too much hassles...

      Your bigger computer will be great for audio!

      Delete
    4. Hey, hello again. I am compiling the kernel again. with just one monitor connected. is there a way to set the nouveau driver as default or make some pointer to it in the menu config (the one with config before compiling the kernel)?

      Can I install linux-headers-3.2.16-custom-rt27_3.2.16-custom-rt27-10.00.Custom_i386.deb
      linux-image-3.2.16-custom-rt27_3.2.16-custom-rt27-10.00.Custom_i386.deb to make a new clean customkernel if i damage the current?


      Delete
  55. hi...Im student from Informatics engineering nice article,
    thanks for sharing :)

    ReplyDelete
  56. Dude. Thank you so much. Works like a charm in Ubuntu-Studio 12.04 32 bit. I am able to get a latency of 11.6 msec with no XRUNS.

    ReplyDelete
    Replies
    1. Hey! I'm glad it worked for you, do still expect an xrun here and there once in a while, especially when launching "heavy processing" programs, but as long as there is none during playback/recording you will be fine.

      Cheers!

      Delete
  57. Joe,

    Thank you for this wonderful contribution. I own a Fast Track Pro
    and have long been interested in using it for recording audio under Linux.

    My demands aren't that big: I don't care much about using high sample rates or bit depths; 16bit, 44.1 khz is fine for my purposes. What I do really care is reliability, and in this regard I'm having some trouble.

    I have been able to record audio using this device under Linux. I've been using arecord primarily to test audio capture. Initially, recording will work and arecord captures audio which, to my ears, sounds good. However, I have found that it is only a matter of time before the device falls into an state where further invocations of arecord capture audio which sounds extremely distorted audio. So far, my only known way to correct the problem that is to power off the device and power it back on. Recording will then work for a little while, before eventually becoming unusable again.

    To be clear, when audio capture works, it works for the duration of a take. It doesn't suddenly become distorted in the middle of a capture. It is as though arecord sometimes seems to improperly initialize the device and it can no longer initialize the device properly from that point on. I'm not sure if this is in fact what is going on here, but that's my impression.

    This is puzzling as I haven't heard of this problem mentioned of this anywhere else, though information on the Fast Track Pro as it pertains to Linux seems scattered and sparse, particularly when it comes to audio capture.

    I don't think my particular Fast Track Pro is defective as it seems to work flawlessly under Windows, so I am suspecting this has something to do with the ALSA drivers.

    Have you experienced a similar problem or heard of such an issue with other Fast Track Pro users? I'm eager to find a solution to my problem but I haven't had much luck so far.

    ReplyDelete
  58. This comment has been removed by a blog administrator.

    ReplyDelete
  59. Hey man great tutorial! I just used the kernel compilation part for a 2nd time on a different set up. First time was on a laptop worked flawless, this time on a desktop with dual monitor setup. For some reason i've lost the 2nd monitor with the realtime kernel wondering is there some perameter in the kernel settings. Dual monitors works out the box with the generic kernel. I'm gonna try compile a much newer kernel and patchset and have a good dig through the settings next time.

    ReplyDelete
  60. Hey,

    thanks a lot for your great tutorial. I've a question regarding the output, because you mention the FTP as an 2x4 device, but in my setup and yours, too (as visible in the screenshot of jack), there appear only two outputs, or am I wrong or do I have a knot in my brain?

    ReplyDelete
    Replies
    1. The FTP is actually a 2 device in one. In qjackctl (if that's what you use to set up JACK) you will only have one or the other internal devices, so what you will have to do then is select one output there and then run in a terminal "alsa_out" and assign the other there.

      Something like:

      alsa_out hw:5

      or

      alsa_out hw:5,0

      or alsa_out hw:5,1

      It all depends on the setup of the script file (mode) for the FTP and the devices you are using in qjackctl.

      Same goes for inputs, and in that case you will invoke "alsa_in"

      You might want to check:

      http://jackaudio.org/faq/multiple_devices.html

      Cheers!

      Delete
  61. Hi, thanks for publishing this guide. I have just found this page after trying for a full day to get the FTP working on Linux Mint 17.3 (kernel 3.19.0). I now know it was a bad idea to try exotic linux flavors for this. ! ;-)

    I was wondering if things have changed in newer linux versions since this guide was written. From what I read, patches have been integrated in the alsa driver,
    and the only thing needed is the fast-track-pro.conf settings.

    ReplyDelete
    Replies
    1. Hello Maxime. Sorry for my delay. Actually yes, for newer kernels just the fast-track-pro.conf file should be enough. Although some of the preparations will be needed to as rtirq settings. I truly have not tried any newer kernels since I really stick to the last working version.

      Good luck!

      Delete

  62. I just got a product key from cheaproduct. it worked perfectly. I'm so excited to share my experience here.their customer service is 1st class and I will definitely be recommending the site and I will be using the site again.

    ReplyDelete
  63. Hi Joe. Just found this guide. Being wrote for Debian, I don't know if I can get any help from it, maybe from some parts.
    I have the Fast Track Pro and I'm running Ubuntu 12.04. My laptop has a Intel Core 2 Duo CPU P8400 @ 2.26GHz × 2, 3,9GB Ram, Kernel Linux 3.13.0-100-generic.
    My Ardour version is 5.1.0.
    I'm getting insane: I cannot get a single sound from my sound card in Ardour. The card works, I hear a connected instrument through the headphones. Having a partition on my computer, I also have Cubase on windows and the card works perfectly with it. So it's a problem between the card and Ubuntu.
    The card is connected via USB and appears in Ardour device when I open it up, but it doesn't sound. It's like there's no card at all.
    Yesterday I made a nth attempt. The card wasn't working. So, while having Ardour started, I started QJackCtl and I've tried to change the device, from hw:1 Fast Track Pro to hw:1,0 USB Audio then hw:1,1 USB Audio #1.
    Miraculously it started working. I could record. So I closed Ardour and opened it again to charge a drum track I've made with Hydrogen. From that moment, the card didn't work anymore. I've tried to change all I could, but there wasn't any chance to obtain a sound from it.
    Actually I'm thinking about change it and get one of the cards suggested by Ardour. It's really a pain in the ass trying to do all this mess just to play.
    So I've got here and I downloaded the Fast Track Pro config file.
    I'm not expert so I don't know if I have a low latency kernel. In QJackCtl window the RT is blinking, so I have realtime... audio? Or low latency kernel?
    Anyways, if I add the Fast Track config file modified as per your instructions, do you think it works? It's really became an odissey. I wouldn't go back to windows for any reason in the world, so I would like to be able to record with Ardour and Linux. I don't have KStudio or whatever, I only have Ardour and QJackCtl installed on the computer.
    Thanks alot for any help coming.

    ReplyDelete
  64. This comment has been removed by the author.

    ReplyDelete
  65. According to the manual it is possible to use 2x4 or 4x2. You say it is possible to enable digital and tested it, I don't actually have digital input yet but it seems to patch digital through when I enable it and connect capture to playback (I can no longer hear analog capture channel). Turning 24-bit off does not make any change, JACK is not able to make 4 or even 3 input channels when I force it.

    Is the driver ready to do this or is there something missing?

    ReplyDelete
    Replies
    1. Hm, my reply did not get added? Anyway... I have a device with S/PDIF out and I figured out that I have to set internal clock 48 kHz (it can get glitchy and noisy but after some switching off and switching clocks it can clean up). Now I seem to have stereo S/PDIF input signal on those capture channels.

      Still, there doesn't seem to be a way to have all 4 inputs on and it was really surprising to see how this works. I kind of expected that digital signal will be passed as-is (any frequency, any number of bits). Again, is this a limitation of driver, JACK, hardware?

      Delete
    2. Hello Adam.

      This device is actually a two in one device. The ONLY way to have 4 inputs (2 digital and 2 analog) is by running it in 16 bit mode. To be able to simultaneously use all 4 channels is by running the "alsa_in" command as explained in the links I am providing you, because it's as I said, a two in one audio device. One chip for the digital and another for the analog. Because of qjackctl's limitation, you can only select one of the inputs, once you start jack, then in a terminal you have to connect the other inputs with "alsa_in"

      I have succesfully make it work at 44.1, truth is, I don't use the digital at all, it gets glitchy and noisy for me with very precise and predictable xruns.

      Here are some links for "How to alsa_in", hope this helps and good luck.

      http://www.jackaudio.org/faq/multiple_devices.html
      http://manpages.ubuntu.com/manpages/trusty/man1/alsa_in.1.html
      http://www.penguinproducer.com/Blog/2011/11/using-multiple-devices-with-jack/

      Delete
    3. Thanks. So input hw:Pro is digital and hw:Pro,1 is analog?

      Do you know where this limitation comes from, manual explicitly says it is possible to have 24-bit. But even if it does it is not worth it if it isn't possible to use 16-bit digital and 24-bit analog at the same time (looking at Win/Mac control panels this seems to be the case).

      Delete
    4. I think it's hw:Pro,0 , you will have to experiment until you see you get a signal on both devices. I'm traveling at the moment so I don't have the FTP with me to check it out for you.

      The limitation is hardware from the FTP itself, because it's a USB class device, USB can't transfer so much data, so 24 bits and 4 inputs is not possible, only in 16 bit mode just as it is in the Win/Mac panel, I have used it under windows myself and that's the way it works, either in 16 bit or 24 bit, just as stated above this guide, 4 in or 2 in with those corresponding bit-rates. It can be a very confusing device with the limitations and options it has.

      Delete
    5. I don't have hw:Pro,0 input device, only for output. That could mean that it's impossible to turn on both on Linux and there's always only one (analog or digital).

      I went ahead and booted Windows and installed drivers, control panel shows 24 bit for any combination of 4 inputs and 2 outputs or 4 outputs and 2 inputs, just like manual says. Math adds up, 6 * 3 bytes * 48kHz = 864000 Bps which seem to have safe margin even if USB does not provide full 1.5 MBps for data. You would always be able to turn off all outputs as when you enable 96kHz which requires the same bandwidth but that's does not seem to be necessary or documented to be necessary.

      This version of control panel does not have selector for 16/24-bit mode, I can see capture devices Line1/2 for analog and S/PDIF for digital, both separately configurable for 16 or 24-bits but the frequency is shared (via control panel).

      I should be able to have 16-bit S/PDIF and 24-bit analog but I would have to record analog at 48 kHz. Still a bummer for me but pretty impressive capabilities albeit not available on Linux.

      Delete
    6. Hmmmm, OK, I'll tell you what, when I get back home I'll do some experimenting and see what comes up. I believe that with alsa_in you can also assign a different bit-rate, because they are two independent cards after all. You don't have to do it at 48 KHz. I have tried both 44.1 and 48. Let me see what I can do. Just give me a few days til I'm back home in my studio, OK?

      Delete
  66. The platforms carry out the trading instructions together with variables like price, timing and so forth. Binary Trading Options An order can also be initiated from the robot without human involvement. This sort of algorithmic or robot trading is employed by investment bankers, mutual fund houses or perhaps any institutional traders although dividing their large investments into smaller ones to control market risk. This auto trading is known as way superior and correct than that done simply by you or me.

    ReplyDelete
  67. Detailed and descriptive articles written in this blog is really very helpful for me as well as for other who seeking such kind of knowledge. It is definitely going to become useful in coming future. สายชีลด์

    ReplyDelete