GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages
VIRTUAL_OSS(8) FreeBSD System Manager's Manual VIRTUAL_OSS(8)

virtual_oss
daemon to multiplex and demultiplex an OSS device

virtual_oss [
-h
]

virtual_oss is an audio mixing application that multiplexes and demultiplexes a single OSS device into multiple customizable OSS compatible devices using character devices from userspace. These devices can be used to record played back audio and mix the individual channels in multiple ways.
virtual_oss requires the cuse4bsd(3) or cuse(3) kernel module. To load the driver as a module at boot time, place onf of the following lines in loader.conf(5):

# FreeBSD < 11
cuse4bsd_load="YES"
# FreeBSD >= 11
cuse_load="YES"
All channel numbers start at zero. Left channel is zero and right channel is one.
The following options are available:
Run program in background.
Enable automatic DSP rate resampling.
quality
Set resampling quality: 0=best, 1=mediam and 2=fastest (default).
bits
Set sample-depth in bits for the proceeding commands.
rate
Set default sample-rate for the proceeding commands.
priority
Set real-time priority.
amp
Set default DSP device amplification as power of two value.
groups
Set default DSP device group. Useful when a channel is limited to identify stereo pairs.
polarity
Set default polarity of DSP device.
mute
Set default mute state of DSP device.
channels
Set default channel mapping of DSP device.
num
Set maximum number of mix channels.
num
Set mix channels for the proceeding commands.
filter
Add a monitoring filter.
devname
Set control device name.
devname
Set playback DSP device only. Specifying /dev/null is magic and means no playback device.
devname
Set recording DSP device only. Specifying /dev/null is magic and means no recording device.
devname
Set both playback and recording DSP device
devname
Install entry in /dev/sndstat.
name
Create a WAV file format compatible companion device by given name. This option should be specified before the -d and -l options.
name
Create an OSS device by given name.
name
Create a loopback OSS device by given name.
Show usage and all available options.

Split a 2-channel OSS compatible sound device into multiple subdevices:
virtual_oss \ 
	-S \ 
	-c 2 -r 48000 -b 16 -s 768 -f /dev/dspX \ 
	-a 0 -b 16 -c 2 -m 0,0,1,1 -d vdsp.zyn \ 
	-a 0 -b 16 -c 2 -m 0,0,1,1 -d vdsp.fld \ 
	-a 0 -b 16 -c 2 -m 0,0,1,1 -d dsp \ 
	-a 0 -b 16 -c 2 -m 0,0,1,1 -w vdsp.jack.wav -d vdsp.jack \ 
	-a 0 -b 16 -c 2 -m 0,0,1,1 -w vdsp.rec.wav -l vdsp.rec \ 
	-M i,0,0,0,1,0 \ 
	-M i,0,0,0,1,0 \ 
	-M i,0,0,0,1,0 \ 
	-M i,0,0,0,1,0 \ 
	-t vdsp.ctl
Split an 8-channel 24-bit OSS compatible sound device into multiple subdevices:
sysctl dev.pcm.X.rec.vchanformat=s24le:7.1 
sysctl dev.pcm.X.rec.vchanrate=48000 
sysctl dev.pcm.X.play.vchanformat=s24le:7.1 
sysctl dev.pcm.X.play.vchanrate=48000 
 
mixer -f /dev/mixerX -s vol 100 
mixer -f /dev/mixerX -s pcm 100 
 
virtual_oss \ 
	-S \ 
	-i 8 \ 
	-g 1,1 \ 
	-C 16 -c 8 -r 48000 -b 32 -s 768 -f /dev/dspX \ 
	-a 12 -b 16 -c 2 -m 0,4,1,5 -d dsp \ 
	-a 12 -b 16 -c 2 -m 8,8,9,9 -d vdsp \ 
	-a 13 -b 16 -c 2 -m 10,10,11,11 -d vdsp.fld \ 
	-a 0 -b 32 -c 4 -m 4,2,5,3,6,4,7,5 -d vdsp.jack \ 
	-a -3 -b 32 -c 2 -m 14,14,15,15 -d vdsp.zyn.base \ 
	-a -3 -b 32 -c 2 -m 14,14,15,15 -d vdsp.zyn.synth \ 
	-e 0,1 \ 
	-a 0 -b 32 -c 8 -m 0,8,1,9,2,8,3,9,4,8,5,9,6,8,7,9 -w vdsp.rec.mic.wav -d vdsp.rec.mic \ 
	-a 0 -b 32 -c 2 -m 0,8,1,9 -w vdsp.rec.master.wav -d vdsp.master.mic \ 
	-a 0 -b 32 -c 2 -m 10,10,11,11 -w vdsp.rec.fld.wav -l vdsp.rec.fld \ 
	-a 0 -b 32 -c 2 -m 12,12,13,13 -w vdsp.rec.jack.wav -l vdsp.rec.jack \ 
	-a 0 -b 32 -c 2 -m 14,14,15,15 -w vdsp.rec.zyn.wav -l vdsp.rec.zyn \ 
	-M o,8,0,0,0,0 \ 
	-M o,9,1,0,0,0 \ 
	-M o,10,0,0,0,0 \ 
	-M o,11,1,0,0,0 \ 
	-M o,12,0,0,0,0 \ 
	-M o,13,1,0,0,0 \ 
	-M o,14,0,0,0,0 \ 
	-M o,15,1,0,0,0 \ 
	-M i,14,14,0,1,0 \ 
	-M i,15,15,0,1,0 \ 
	-t vdsp.ctl 

Connect to a bluetooth audio headset, playback only:
virtual_oss \ 
	-C 2 -c 2 -r 48000 -b 16 -s 1024 \ 
	-R /dev/null -P /dev/bluetooth/xx:xx:xx:xx:xx:xx -d dsp
Connect to a bluetooth audio headset, playback and recording:
virtual_oss \ 
	-C 2 -c 2 -r 48000 -b 16 -s 1024 \ 
	-f /dev/bluetooth/xx:xx:xx:xx:xx:xx -d dsp
Create recording device which outputs a WAV-formatted file:
virtual_oss \ 
	-C 2 -c 2 -r 48000 -b 16 -s 1024 \ 
	-f /dev/dspX -w dsp.wav -d dsp

All character devices are created using the 0666 mode which gives everyone in the system access.

cuse(3) and cuse4bsd(3)

virtual_oss was written by Hans Petter Selasky hselasky@freebsd.org.
November 4, 2017 FreeBSD

Search for    or go to Top of page |  Section 8 |  Main Index

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with ManDoc.