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;
}