[linux-audio-user] Quattro and JACK

metafor at gmx.net metafor at gmx.net
Wed Feb 9 06:32:18 EST 2005


hi jason

i am sorry to tell you, but the quattro is a nightmare
under linux. that's the bad thing, the good is that it's possible
to get it working with jack and quite low latency, between 5-10ms

i've struggled for a few month until i finally found a solution.
you need to compile a 2.4 low-latency patched kernel, i think
the 2.4.25 is a good choice as it worked for me. and then use
the latest alsa-drivers (not the one from the kernel-source) together
with jack, i took both from cvs, but this was in octobre, so i think
most of the changes are probably already in the official release.

this worked for me, at least i can use jack now together with
pd and other audio-software, duplex mode is still somehow buggy.
but so far i don't need it.

for 2.6 kernel i don't know, i just know that in octobre it was not
working. and there are rumours it's still not. but probably someone
on this list knows more about the quattro and 2.6

low-latency-kernel-howto:
http://www.djcj.org/LAU/guide/Low_latency-Mini-HOWTO.php3

Jason Hanggi wrote:

>I'm new to this whole linux sound thing, and I'd like
>to get my M-Audio Quattro USB working.  sorry if this
>email is a little long, i just want to go ahead and
>put most of my information up now, so you all aren't
>asking for it later.
>
>so far, i can play from XMMS using it's ALSA driver, I
>can send/receive midi data.  i can refer to it as
>quattro1, quattro2, etc, as outlined in the standard
>.asoundrc (which i'll put at the end). i haven't even
>touched recording yet
>
>there's two problems i'm having.
>
>1) when i do a 
>$ aplay --device quattro1 test.wav
>I can hear it, but it's choppy and it get this:
>
>Playing WAVE 'test.wav' : Signed 16 bit Little Endian,
>Rate 44100 Hz, Stereo
>underrun!!! (at least 0.079 ms long)
>underrun!!! (at least 0.038 ms long)
>underrun!!! (at least 0.046 ms long)
>underrun!!! (at least 0.039 ms long)
>...
>
>same if i just use aplay --device hw:1
>
>when I try --device quattro I get
>aplay: set_params:837: Channels count non available
>
>the second problem I'm having, is I can't get the
>Quattro to work under JACK.
>If I try duplex mode, I get this in my message window:
>22:07:32.554 /usr/bin/jackstart -R -dalsa -dhw:1
>-r48000 -p1024 -n2 -i2 -o2
>22:07:32.627 JACK was started with PID=3974 (0xf86).
>back from read, ret = 1 errno == Success
>jackd 0.94.0
>Copyright 2001-2003 Paul Davis and others.
>jackd 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
>loading driver ..
>apparent rate = 48000
>creating alsa driver ...
>hw:1|hw:1|1024|2|48000|2|2|nomon|swmeter|rt|32bit
>control device hw:1
>configuring for 48000Hz, period = 1024 frames, buffer
>= 2 periods
>Couldn't open hw:1 for 32bit samples trying 24bit
>instead
>Couldn't open hw:1 for 32bit samples trying 24bit
>instead
>could not start playback (Broken pipe)
>DRIVER NT: could not start driver
>cannot start driver
>22:07:33.937 JACK was stopped successfully.
>22:07:35.861 Could not connect to JACK server as
>client.
>
>if I only set for playback, then I get a bunch of
>clicking and a bunch of XRUN callbacks.
>
>if anyone could help me out, I'd really appreciate it.
>thanks!
>
>here's some info:
>
>$ more /proc/asound/cards
>0 [AudioPCI       ]: ENS1371 - Ensoniq AudioPCI
>                     Ensoniq AudioPCI ENS1371 at
>0x1080, irq 11
>1 [Quattro        ]: USB-Audio - USB Audio Quattro
>                     M Audio USB Audio Quattro at
>usb-00:07.2-2, full speed
>
>$ more .asoundrc
># quattro1 is pcm0 which has a maximum sample rate of
>44100 and 16
># bit stereo
>
>        pcm.quattro1 {
>                type hw
>                card 1
>                device 0
>        }
> 
>        ctl.quattro1 {
>                type hw
>                card 1 
>        }
>
># quattro2 is pcm1 which has a maximum sample rate of
>96000 and 24
># bit stereo
>
>        pcm.quattro2 {
>                type hw
>                card 1
>                device 1
>        }
> 
>        ctl.quattro2 {
>                type hw
>                card 1 
>        }
>
>
>#----
>
>#
># compose 4 channels from two channel x two devices,
>hw:2,1 and 
># hw:2,2
># assuming that hw:2,1 and hw:2,2 give the same
>condition, 24_3LE/96k
>#
>
>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.
># Use plug instead of route here, since 24_3LE is
>unlikely supported
># by applications.
>#
># arecord -r 44100 -c 4 -f s16_le -D q4 -d 5
>/home/xxx/q4.wav 
>
>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 for applications that do support
>24_3LE
># This lowers latency which the plug plugin introduces
>due to 
># resampling.
>#
>#   arecord -r 44100 -c 4 -f s16_le -D q4b -d 5
>/home/xxx/q41.wav
>
>
>
>pcm.q4b {
>        type route;
>        slave.pcm "quattro";
>        ttable.0.0 1;
>        ttable.1.1 1;
>        ttable.2.2 1;
>        ttable.3.3 1;
>
>}
>
>ctl.q4b {
> type hw;
>        card 1;
>}
>
>
>
>
>  
>



More information about the linux-audio-user mailing list