Skip site navigation (1)Skip section navigation (2)

  
 
  

home | help
VIRTUAL_EQUALIZER(8)	     System Manager's Manual	    VIRTUAL_EQUALIZER(8)

NAME
     virtual_equalizer -- audio equalizer

SYNOPSIS
     virtual_equalizer [-h] [-o] [-q] [-d devname] [-w what] [-p part]
		       [-c channels] [-f file]

DESCRIPTION
     virtual_equalizer	sets  the  given  frequency  response for the given vir-
     tual_oss(8) instance via the control character device given by the  -d  op-
     tion.  The design goal of this equalizer is to provide precise equalization
     for  arbitrary  requested	frequency  response at the expense of higher la-
     tency, utilizing a so-called finite impulse response, FIR, filter.

     The requested frequency response is configured via standard  input  or  the
     file  specified  by the -f option.  There is one control point in per line.
     Each line consists of two numbers, frequency in Hz and requested amplifica-
     tion.  Amplification between two consecutive control points is a linear in-
     terpolation of the given control point values.

     To make the filter finite, it is windowed in time domain using a Hann  win-
     dow.   The  windowing actually modifies the frequency response - the actual
     response is a convolution of the requested response  and  spectrum  of  the
     window.  This is, however, very close to the requested response.

     The following options are available:

     -q      Be quiet and don't print anything to standard output.

     -d device
	     The virtual_oss(8) control character device.

     -w what
	     Select what part the FIR filter should apply to.  Valid values are:
	     rx_dev, tx_dev, rx_loop and tx_loop.  The default value is tx_dev.

     -p part
	     Select  the  index  of the part given by the -w option to apply the
	     filter to.  Default is zero.

     -c channels
	     Select number of channels to apply filter to, starting  at  channel
	     zero.  By default all channels of the given part are updated.

     -f file
	     Read  filter  coefficients  from the given file instead of standard
	     input.

     -o      Turn equalizer off.

     -h      Show usage.

EXAMPLES
     To pass only frequencies between 200Hz and 400Hz:

	   # Note that the -F and -G options enable FIR filtering.
	   virtual_oss -B -C 2 -c 2 -S -Q 0 -b 32 -r 48000 -s 8ms -F 80ms -G 80ms \
	       -f /dev/dsp -d dsp.virtual -t vdsp.ctl

	   # For simplex operation use this:
	   virtual_oss -B -C 2 -c 2 -S -Q 0 -b 32 -r 48000 -s 8ms -F 80ms -G 80ms \
	       -R /dev/null -O /dev/dsp -d dsp.virtual -t vdsp.ctl

	   # Load normalized filter points to avoid sample value overflow
	   cat << EOF | virtual_equalizer -d /dev/vdsp.ctl -w tx_dev -p 0 -c 2
	   NORMALIZE
	   199 0.0
	   200 1.0
	   400 1.0
	   401 0.0
	   EOF

	   # Load FIR filter based on sine frequency points
	   cat << EOF | virtual_equalizer -d /dev/vdsp.ctl -w tx_dev -p 0 -c 2
	   199 0.0
	   200 1.0
	   400 1.0
	   401 0.0
	   EOF

SEE ALSO
     virtual_oss(8)

AUTHORS
     virtual_equalizer was written by Richard Kralovic riso@google.com.

FreeBSD ports 15.quarterly	February 12, 2025	    VIRTUAL_EQUALIZER(8)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=virtual_equalizer&sektion=8&manpath=FreeBSD+Ports+15.1.quarterly>

home | help