Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 18 Apr 2023 23:42:49 +0200
From:      Hans Petter Selasky <hps@selasky.org>
To:        Trevor Arjeski <tmarjeski@gmail.com>, freebsd-multimedia@freebsd.org
Subject:   Re: Possibility of remapping USB PCM device
Message-ID:  <0b5091eb-342f-5e0f-2b6e-01c1b6a8af70@selasky.org>
In-Reply-To: <CACPvkDz4NT4RFfUxzd87P%2B2iL8to9owtzVH8bCZV-To8C7fn1w@mail.gmail.com>
References:  <CACPvkDz4NT4RFfUxzd87P%2B2iL8to9owtzVH8bCZV-To8C7fn1w@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On 4/18/23 20:56, Trevor Arjeski wrote:
> Hi all,
> I am new to FreeBSD and I am in the midst of setting up things the way I
> like them on my desktop. I have a strange USB headset that requires a
> special configuration on linux - pulseaudio includes this configuration,
> and I was wondering if there is a possibility it can be done in FreeBSD.
> 
> Below is a description of the device from the pulseaudio source code from
> this commit
> https://github.com/pulseaudio/pulseaudio/commit/814419cc3d788acb9113a3d62c373deb1a911e75
> 
> | Steelseries Arctis 7 USB headset mono output path. The headset has two
> | output devices. The first one is mono, meant for voice audio, and the
> | second one is stereo, meant for everything else. The purpose of this
> | unusual design is to provide separate volume controls for voice and
> | other audio, which can be useful in gaming.
> | This path doesn't provide hardware volume control, because the stereo
> | output is controlled by the PCM element with index 1, and currently
> | PulseAudio only supports elements with index 0.
> 
> The last sentence is what I am trying to achieve, somehow, so that I can
> control the volume.
> 
> I have already gone through all the sysctl's on the two pcm devices, and
> messed with all the available mixer settings. My assumption is that FreeBSD
> is doing what Linux was doing before the pulseaudio patch - not allowing
> "index 1" - whatever that means.
> 
> Any information is welcome. I would even be interested in patching some of
> the driver code for my own learning (doesn't need to go upstream). I am
> running CURRENT and can rebuild the system and kernel.
> 
> Thanks.
> 

Hi,

Maybe virtual_oss (my own invention) can solve your problem.

It allows you to create a virtual /dev/dsp device.

During usage you can run:

virtual_oss_cmd /dev/vdsp.ctl -P /dev/dspX

To change the playback device only, or -f to change both.

Then all applications using /dev/dsp follow this change, with no need to 
restart anything!

--HPS



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?0b5091eb-342f-5e0f-2b6e-01c1b6a8af70>