Audio mixer and mixer control

O'Connor, Daniel darius at dons.net.au
Sat Apr 11 08:21:14 UTC 2020



> On 11 Apr 2020, at 17:28, Harry Schmalzbauer <freebsd at omnilan.de> wrote:
> Hello and thanks for your help.  Main issue is to playback simultaniously on more than one dsp (musicpd(1) is providing that feature out of the box, but I was looking for a more general way, covering mixed line-in (DAB+ radio)).

I am not sure there is a general solution in the kernel.

> Here's my sndstat:
> FreeBSD Audio Driver (64bit 2009061500/amd64)
> Installed devices:
> pcm0: <Realtek ALC892 (Rear Analog 5.1/2.0)> on hdaa0  (1p:2v/1r:2v) default
> pcm1: <Realtek ALC892 (Front Analog)> on hdaa0  (1p:2v/1r:1v)
> pcm2: <Realtek ALC892 (Internal Digital)> on hdaa0  (1p:1v/0r:0v)
> pcm3: <Realtek ALC892 (Rear Digital)> on hdaa0  (1p:1v/0r:0v)
> pcm4: <USB audio> at ? kld snd_uaudio (0p:0v/1r:1v)
> No devices installed from userspace.

OK, looks fairly normal..
BTW you can get more information with..
sudo sysctl hw.snd.verbose=2
cat /dev/sndstat

> To my surprise, today there's dsp0_line-in/mix signal on dsp1_line-out. No idea if it was a layer 8 error yesterday (pretty sure it was not) or if some smart chip on the mainboard decided to interconnect over night (no reboot)?!? In fact, adjusting "mix" on dsp0 controls the output volume on dsp1 (analog line-in on dsp0 get's somehow routed to analog out on dsp1 (killed pulseaudio, nothing else is running, so it must be done in hardware)).

That sounds pretty peculiar, I guess it could be an result of the fact your 4 PCM devices are really 1 piece of hardware..

> I'd like to share what I discovered while browsing freshports.org/audio:
> rawrec(1) might be the leanest way to pipe signals, like you mentioned using sox(1).

Yep, looks like it.

> virtual_oss(8) seems to do exactly what I was looking for regarding "mixing". No idea how cuse(3) comes into play, seems to be not as native as I prefer things.

Yes, it does - I haven't used it but it looks like what you want.

cuse is for allowing device drivers in user land, I don't think it's required for virtual_oss, just that the same author wrote both :)

> Unfortunately, I don't have time to play with at the moment.  But once I come back to it, I'll find it here for reference ;-)

Good find, best of luck!

--
Daniel O'Connor
"The nice thing about standards is that there
are so many of them to choose from."
 -- Andrew Tanenbaum




More information about the freebsd-stable mailing list