From: GitHub issues - opened <github@alsa-project.org>
To: alsa-devel@alsa-project.org
Subject: ALSA multi plugin error when combining two soundcards
Date: Wed, 5 Oct 2022 16:05:50 +0200 (CEST) [thread overview]
Message-ID: <20221005140550.9596CF801F7@alsa1.perex.cz> (raw)
In-Reply-To: <1664978747337639093-webhooks-bot@alsa-project.org>
alsa-project/alsa-lib issue #273 was opened from anthonio9:
My goal is to mix the output of two sound cards (RAVENNA from [bondagit](https://github.com/bondagit/aes67-linux-daemon.git) and hifiberry), then pass it to a DSP pcm plugin. As it's not possible with `dmix` (dmix only supports output to hw devices) the reasonable next step was `multi` plugin, but my tries always end up in a failure. Below is a quite standard `multi` configuration inspired by alsa docs that I'm using:
```sh
pcm.quad {
type multi
slaves.a.pcm "hw:RAVENNA"
slaves.a.channels 2
slaves.b.pcm "hw:sndrpihifiberry"
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
master 1
}
pcm.quad2 {
type plug
slave.pcm "quad"
}
```
This is run with `alsaloop` to be input into an extplug plugin that easily accepts 4 channels of audio - `alsadsp`:
```sh
$ alsaloop -C quad -P alsadsp -c 4
Rate 48000Hz not available for capture quad: Invalid argument
Unable to set parameters for capture quad stream: Invalid argument
Loopback start failure.
```
This results in a failure, moreover running `quad2` also results in the same type of error.
Next step was to try plug pcm:
```sh
pcm.quad_plug {
type multi
slaves.a.pcm "plughw:RAVENNA"
slaves.a.channels 2
slaves.b.pcm "plughw:sndrpihifiberry"
slaves.b.channels 2
bindings.0.slave a
bindings.0.channel 0
bindings.1.slave a
bindings.1.channel 1
bindings.2.slave a
bindings.2.channel 0
bindings.3.slave a
bindings.3.channel 1
}
pcm.quad_plug2 {
type plug
slave.pcm "quad_plug"
}
```
With `quad_plug` the same error occurs, with `quad_plug2` the error is as below:
```sh
$ alsaloop -C quad_plug2 -P alsadsp -c 4
Broken configuration for capture quad_plug2 PCM: no configurations available: Invalid argument
Unable to set parameters for capture quad_plug2 stream: Invalid argument
Loopback start failure.
```
Then the last thing I tried was to force the 48kHz sampling rate directly on the hardware devices with the help of the following config:
```sh
pcm.quad_48k {
type multi
slaves.a {
pcm {
type plug
slave.pcm "hw:RAVENNA"
slave.rate 48000
}
channels 2
}
slaves.b {
pcm {
type plug
slave.pcm "hw:sndrpihifiberry"
slave.rate 48000
}
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
}
```
and again it ends up with a failure:
```sh
$ alsaloop -C quad_48k -P alsadsp -c 4
Sample format not available for capture quad_48k: Invalid argument
Unable to set parameters for capture quad_48k stream: Invalid argument
Loopback start failure.
```
I know that both these cards are capable of running 48kHz, I'm doing that all the time. So what could be the cause of this error? `alsadsp` wants them to be 48kHz and if run separately it all works well, both cards set themselves according to `alsadsp` requirements. It works even if there's only one card in the multi plugin that occupies all 4 output ports - my conclusion is that it's not a problem of `alsadsp`.
Are there any other steps that could help solving the issue?
Issue URL : https://github.com/alsa-project/alsa-lib/issues/273
Repository URL: https://github.com/alsa-project/alsa-lib
parent reply other threads:[~2022-10-05 14:06 UTC|newest]
Thread overview: expand[flat|nested] mbox.gz Atom feed
[parent not found: <1664978747337639093-webhooks-bot@alsa-project.org>]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20221005140550.9596CF801F7@alsa1.perex.cz \
--to=github@alsa-project.org \
--cc=alsa-devel@alsa-project.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).