Hi,
I have been experimenting a bit, some things seem to work, e.g. I can use
either the left or the right pair of channels.., but --
when I want to start jackd with 4-channel enabled, I get the following errors:
-----------------------------
JACK compiled with POSIX SHM support
7936 waiting for signals
loading driver ..
new client: alsa_pcm, id = 1 type 1 @ 0x805b2f0 fd = -1
creating alsa driver ... q4b|q4b|1024|2|44100|nomon|swmeter|rt
open
ALSA lib pcm.c:1148:(snd_pcm_link) SNDRV_PCM_IOCTL_LINK failed: Operation
already in progress
registered port alsa_pcm:capture_1, offset = 4096
registered port alsa_pcm:capture_2, offset = 8192
registered port alsa_pcm:capture_3, offset = 12288
registered port alsa_pcm:capture_4, offset = 16384
registered port alsa_pcm:playback_1, offset = 0
registered port alsa_pcm:playback_2, offset = 0
registered port alsa_pcm:playback_3, offset = 0
registered port alsa_pcm:playback_4, offset = 0
++ jack_rechain_graph():
client alsa_pcm: internal client, execution_order=0.
-- jack_rechain_graph()
starting engine
ALSA lib pcm_hw.c:494:(snd_pcm_hw_start) SNDRV_PCM_IOCTL_START failed: Broken
pipe
could not start playback (Broken pipe)
jackd: signal 2 received
jack main caught signal 2
received signal 15 during shutdown (ignored)
------------------------------------------------------------------------
I have no idea, why there should be a broken pipe... The definitions in
.asoundrc have been reported to work.
Does anyone have an idea where this error might come from?
Thanks,
Falko
PS: some of the definitions from my .asoundrc:
----------------------------------
pcm.quattro {
type multi;
slaves.a.pcm "hw:0,0";
slaves.a.channels 2;
slaves.b.pcm "hw:0,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 0;
}
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 0;
}
--- Begin Message ---
Frank Barknecht <[EMAIL PROTECTED]> schrieb:
> You don't have a mixer device, because the Quattro doesn't have one. A
> lot of USB audio cards don't have a mixer.
Aha, but how can I control input/output levels then? Are sequencer
applications able to do that software-wise? Would Ardour, for example, be able
to control them?
> > 2. only two ports show in qjackctl: alsa_pcm 1/2 capture and playback.
> What is the command line you use to start jack?
I use the proposed command line of qjackctl, which is:
jackd -a -t 500 -d alsa -d hw:0 -r 48000 -p 1024 -n 2
I have the suspicion that it is mainly my /etc/modules.conf that needs some
more tuning. When USB gets loades I get these kernel messages:
usb-ohci.c: usb-00:02.2, Silicon Integrated Systems [SiS] 7001
usb.c: new USB bus registered, assigned bus number 2
hub.c: USB hub found
hub.c: 3 ports detected
hub.c: new USB device 00:02.3-2, assigned address 2
usb.c: USB device 2 (vend/prod 0x763/0x2001) is not claimed by any active
driver.
usb_control/bulk_msg: timeout
.
.
.
ALSA usbaudio.c:1061: current rate 30464 is different from the runtime rate
96000
[ dmesg also returns heaps of: usbdevfs: USBDEVFS_CONTROL failed dev 2 rqt 128
rq 6 len 974 ret -110 ]
This beahviour is strange because I have specified vendor and product id in my
/etc/modules.conf, so the USB Device 2 should be claimed by the usb-audio
driver... I'm puzzled-- Here are my settings:
/etc/modules.conf
-----------------
########################################################################
# SOUND / ALSA
########################################################################
# ALSA portion
alias char-major-116 snd
alias snd-card-0 snd-usb-audio
# --- Options
options snd snd_major=116 snd_cards_limit=1 snd_device_mode=0666
snd_device_gid=1 snd_device_uid=1
options snd-usb-audio snd_vid="0x763" snd_pid="0x2001" snd_index=0
snd_enable=1
# --- Keep modules from being autocleaned
add options -k snd-card-0
# OSS/Free portion
alias char-major-14 soundcore
alias sound-slot-0 snd-card-0
# card #0
alias sound-service-0-0 snd-mixer-oss
alias sound-service-0-1 snd-seq-oss
alias sound-service-0-3 snd-pcm-oss
alias sound-service-0-8 snd-seq-oss
alias sound-service-0-12 snd-pcm-oss
############################################################################
Here is my .asoundrc (copied from the alsa-project homepage, though not sure
if that information only refers to the m-audio midi-devices or also to their
usb-audio devices like my quattro):
.asoundrc
---------
# quattro1 is pcm0 which has a maximum sample rate of 44100 and 16
# bit stereo
pcm.quattro1 {
type hw
card 0
device 0
}
ctl.quattro1 {
type hw
card 0
}
# quattro2 is pcm1 which has a maximum sample rate of 96000 and 24
# bit stereo
pcm.quattro2 {
type hw
card 0
device 1
}
ctl.quattro2 {
type hw
card 0
}
#----
#
# 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:0,0";
slaves.a.channels 2;
slaves.b.pcm "hw:0,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 0;
}
#
# 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;
}
#
# 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 0;
}
--- End Message ---