M-Audio Quattro

Talk about your MIDI interfaces, microphones, keyboards...

Moderators: MattKingUSA, khz

Post Reply
Frank Carvalho
Established Member
Posts: 363
Joined: Sat Nov 17, 2012 3:36 pm

M-Audio Quattro

Post by Frank Carvalho »

Hi

Instead of bumping an old thread, I thought I better start a new one.
So I bought an M-Audio Quattro, but this card gives me headaches. :(
I have a situation similar to the one described in an older thread. What I want to do, is to use the card as a 2 in/4 out 48kHz, 24 bit card - or alternatively as a 4 in/2 out 48kHz, 24 bit card. 24 bit and 48kHz is the important parameters for me. This has proven to be quite difficult.
After a lot of experimentation, I found out that the jackd option -S is the only way to bring the card alive, and enables me to do 2in/2out, as well as 4in/4out, 48kHz with a pimped .asoundrc file - but only in 16 bit. -S will make jackd accept 16 bit.
I assumed that the Quattro was in the wrong mode, and went through a lot of pain to install the correct drivers and control panels on a Win 7 machine, to be able to change it. This enables me to change mode to 2in/4out (or 4in/2out) 48kHz, 24bit, and it works - under Windows.
But back on my Linux machine the card still only accepts 16 bit. I discovered, that the Quattro does not persist the mode. If it is unplugged from Windows, it will return to 16 bit mode again, so no wonder jackd can only start in 16 bit mode!
As I understand, this card uses the snd_usb_audio module. Now my question is; how do I change a Quattro to the 2in/4out, 48kHz, 24 bit mode from jackd/ALSA/modprobe ???
The web has very very little information about the Quattro on Linux.

/Frank
Vox, Selmer, Yamaha and Leslie amplifiers. Rickenbacker, Epiphone, Ibanez, Washburn, Segovia, Yamaha and Fender guitars. Hammond, Moog, Roland, Korg, Yamaha, Crumar, Ensoniq and Mellotron keyboards. Xubuntu+KXStudio recording setup.
Frank Carvalho
Established Member
Posts: 363
Joined: Sat Nov 17, 2012 3:36 pm

Re: M-Audio Quattro

Post by Frank Carvalho »

So now answering my own thread:

It seems I've found out how to make the Quattro initialize correctly. Basically what I did, was to follow the same instructions as used for the M-Audio FastTrack. I figured that the Quattro and the FastTrack are somewhat related products, and that probably the inti parameters may be the same. And that assumption seems to be correct. At least for the desired 24bit, 48kHz mode. This is what I did:

Make a new file: /etc/modprobe.d/quattro.conf, with the following contents:

Code: Select all

options snd-usb-audio vid=0x0763 pid=0x2001 device_setup=0x09 index=1 enable=1


Index is there to load the usb audio module, and thus the Quattro, as card #1. The vid and pid are the card id, taken from

Code: Select all

$ lsusb
...
Bus 003 Device 002: ID 0763:2001 Midiman M Audio Quattro
...
Comment out the corresponding default load line in /etc/modprobe.d/alsa-base.conf:

Code: Select all

# Keep snd-usb-audio from beeing loaded as first soundcard
#options snd-usb-audio index=-2
I also installed the following ~/.asoundrc:

Code: Select all

 # The Quattro seems to only have two pcms, not 3.
 # quattro1 is pcm0 

       pcm.quattro1 {
                 type hw
                card 1
        device 0
         }

          ctl.quattro1 {
                 type hw
                 card 1
         }

 # quattro2 is pcm1 

         pcm.quattro2 {
                 type hw
                card 1
        device 1
         }

          ctl.quattro2 {
                 type hw
                 card 1 
         }
 #----    

 #
 # compose 4 channels from two channel x two devices, hw:1,0 and hw:1,1
 #

 pcm.quattro {
        type multi;

        slaves.a.pcm "hw:1,0";
        slaves.a.channels 2;
        slaves.b.pcm "hw:1,1";
        slaves.b.channels 2;

        bindings.0.slave a;
        bindings.0.channel 0;
        bindings.1.slave a;
        bindings.1.channel 1;
        bindings.2.slave b;
        bindings.2.channel 0;
        bindings.3.slave b;
        bindings.3.channel 1;
 }

 ctl.quattro {
        type hw;
        card 1;
 }


 #
 # remap 4 channels as interleaved using plug.
 # 

 pcm.q4 {
        type plug;
        slave.pcm "quattro";
        ttable.0.0 1;
        ttable.1.1 1;
        ttable.2.2 1;
       ttable.3.3 1;
 }



 ctl.q4 {
        type hw;
        card 1;
 }

 #
 # Use route plugin 
 #



 pcm.q41 {
        type route;
        slave.pcm "quattro";
        ttable.0.0 1;
        ttable.1.1 1;
        ttable.2.2 1;
        ttable.3.3 1;

 }

 ctl.q41 {
        type hw;
        card 1;
 }

Reboot, and bingo. The standard startup line now works:

Code: Select all

~$ jackd -d alsa -d quattro1 -r 48000 -n 3
jackdmp 1.9.10
Copyright 2001-2005 Paul Davis and others.
Copyright 2004-2014 Grame.
jackdmp comes with ABSOLUTELY NO WARRANTY
This is free software, and you are welcome to redistribute it
under certain conditions; see the file COPYING for details
no message buffer overruns
no message buffer overruns
no message buffer overruns
JACK server starting in realtime mode with priority 10
self-connect-mode is "Don't restrict self connect requests"
audio_reservation_init
Acquire audio card Audio1
creating alsa driver ... quattro1|quattro1|1024|3|48000|0|0|nomon|swmeter|-|32bit
Using ALSA driver USB-Audio running on card 1 - M Audio USB Audio Quattro at usb-0000:00:12.0-1, full speed
configuring for 48000Hz, period = 1024 frames (21.3 ms), buffer = 3 periods
ALSA: final selected sample format for capture: 24bit big-endian
ALSA: use 3 periods for capture
ALSA: final selected sample format for playback: 24bit big-endian
ALSA: use 3 periods for playback


That is 2in and 2out. I suppose it should be possible to configure 4in/2out or 2in/4out, but I haven't tried that yet. But 2in/2out is enough for my needs right now.

/Frank
Vox, Selmer, Yamaha and Leslie amplifiers. Rickenbacker, Epiphone, Ibanez, Washburn, Segovia, Yamaha and Fender guitars. Hammond, Moog, Roland, Korg, Yamaha, Crumar, Ensoniq and Mellotron keyboards. Xubuntu+KXStudio recording setup.
K3nn3th
Established Member
Posts: 19
Joined: Mon Nov 25, 2013 10:33 pm

Re: M-Audio Quattro

Post by K3nn3th »

Hey Frank!

Have I understood correctly, you managed to run the Quattro in 4in/4out mode under linux?

Ive tried to get this config working for a while now. so much hassle!

Could you post your configs/setups in order to achieve this?
you'd totally save the day !! :) (mine at least)

thanks a lot,

Kenneth
Frank Carvalho
Established Member
Posts: 363
Joined: Sat Nov 17, 2012 3:36 pm

Re: M-Audio Quattro

Post by Frank Carvalho »

Hi Kenneth

I also replied to your other post. Came to think about it, and the answer is both yes and no. Yes, I got it to run 4in, 4out in 16-bit-mode under Linux. But no, because I don't want 16-bit mode. I want 24 bit mode (and 48kHz), and that I have only managed to do in 2in, 2out mode. I think the card is incapable of running 4in, 4out in 24 bit, 48kHz mode, no matter the OS. That seems to be a limitation of the card itself. But it should be possible to configure it for either 2/4 or 4/2 operation.

If you want to run 4in, 4out in 16-bit mode, then look at my findings above. Start jackd with the -S option and use the .asoundrc file I listed. That should provide 4in, 4out in 16-bit mode. The -S allows jackd to use a 16-bit fallback mode, which the card will accept. I can't remember but I think the config file gives you one device called hw:quattro.

/Frank
Vox, Selmer, Yamaha and Leslie amplifiers. Rickenbacker, Epiphone, Ibanez, Washburn, Segovia, Yamaha and Fender guitars. Hammond, Moog, Roland, Korg, Yamaha, Crumar, Ensoniq and Mellotron keyboards. Xubuntu+KXStudio recording setup.
K3nn3th
Established Member
Posts: 19
Joined: Mon Nov 25, 2013 10:33 pm

Re: M-Audio Quattro

Post by K3nn3th »

I got 4in/4out to work, using the .asoundrc file you posted.
as you said, the -S parameter does the trick.

so im using:

jackd -d alsa -d quattro -S &
qjackctl

in qjackctl ive set up a batchbay to connect the quattro to xwax, as well as some server options (RT, buffer, etc)
its working fine as far as the song control goes (inputs seem to be okay)

but the output on the first stereo channel (1 & 2) seem to be at a far lower rate (worse quality) than the second (3 & 4)
it sounds terrible when i play the track at slow speed. the second one sounds great though.

what could i tweak around to fix this?

maybe using the jack (alsa_in/out) method?
Frank Carvalho
Established Member
Posts: 363
Joined: Sat Nov 17, 2012 3:36 pm

Re: M-Audio Quattro

Post by Frank Carvalho »

I never got that particular problem. You could try to follow my suggestions to get the usb-card initialized properly. That might help.
I don't think alsa_in/out will make much difference. A bad sound reproduction sounds more to me like a card that is initialized for another sample frequency.

/Frank
Vox, Selmer, Yamaha and Leslie amplifiers. Rickenbacker, Epiphone, Ibanez, Washburn, Segovia, Yamaha and Fender guitars. Hammond, Moog, Roland, Korg, Yamaha, Crumar, Ensoniq and Mellotron keyboards. Xubuntu+KXStudio recording setup.
Frank Carvalho
Established Member
Posts: 363
Joined: Sat Nov 17, 2012 3:36 pm

Re: M-Audio Quattro

Post by Frank Carvalho »

Just a small update. I figured how to run the Quattro in 4in/2out mode at 48kHz, 24bit. It was pretty simple. Just select "quattro" as the input device and hw:Quattro,0 (or hw:1,0, or whatever the first side of the module is named) as the output device in Jack.This would be my preferred mode of operation, as 4 in is OK for recording, while 2 out is sufficient for monitoring.
I tested this on a Raspberry Pi 2 which now uses up a breathtaking 1-2% CPU serving Jack audio! I am sure this will also work the other way around with 2in/4out.

/Frank
Vox, Selmer, Yamaha and Leslie amplifiers. Rickenbacker, Epiphone, Ibanez, Washburn, Segovia, Yamaha and Fender guitars. Hammond, Moog, Roland, Korg, Yamaha, Crumar, Ensoniq and Mellotron keyboards. Xubuntu+KXStudio recording setup.
K3nn3th
Established Member
Posts: 19
Joined: Mon Nov 25, 2013 10:33 pm

Re: M-Audio Quattro

Post by K3nn3th »

@Frank: Thanks a lot, man you made my day with this!

adding the quattro.conf file fixed my problem.
this single line got the quattro back on board for me ;)
it's running absolutely great in 4in/4out mode! (using the -S switch)
for two years now i have been in need for this..

all the wikis containing quattro-instructions for linux should include this...!
K3nn3th
Established Member
Posts: 19
Joined: Mon Nov 25, 2013 10:33 pm

Re: M-Audio Quattro

Post by K3nn3th »

Hey Frank,

I'm having trouble with my quattro again..

i switched my laptop's hdd with a new ssd.
created the same partitions as on my old one and copied the os'ses.

now the quattro wont initialise properly anymore.. even though i have the quattro.conf at the same location as before (i copied the entire fs)

any ideas on this?

thanks!

Kenny
Frank Carvalho
Established Member
Posts: 363
Joined: Sat Nov 17, 2012 3:36 pm

Re: M-Audio Quattro

Post by Frank Carvalho »

I don't know what is wrong, but I would redo all steps involved.
I have a laptop that doesn't load the Quattro initially. It is related to the timing when it loads modules I think. A remedy to that problem has been to simply force reload alsa modules.

Code: Select all

sudo alsa force_reload
I am not sure what a more permanent solution is. Something with disabling other modules, and perhaps some delay in a udev rule or something. But I don't mind the extra reload.
Make sure to look at the device number your Quattro gets. I usually load alsamixer, and look at the device numbers with F6. On the laptop the built in audio device often gets device number 0, so the Quattro gets 1 or 2 if there is an HDMI out too. That might confuse your configuration.

/Frank
Vox, Selmer, Yamaha and Leslie amplifiers. Rickenbacker, Epiphone, Ibanez, Washburn, Segovia, Yamaha and Fender guitars. Hammond, Moog, Roland, Korg, Yamaha, Crumar, Ensoniq and Mellotron keyboards. Xubuntu+KXStudio recording setup.
Post Reply