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

Reply via email to