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

FreeBSD Manual Pages

  
 
  

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
       virtual_oss(8)  instance	 via the control character device given	by the
       -d option.  The design goal of this equalizer  is  to  provide  precise
       equalization  for arbitrary requested frequency response	at the expense
       of higher latency, 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
       amplification.  Amplification between two consecutive control points is
       a linear	interpolation of the given control point values.

       To make the filter finite, it is	windowed in time domain	using  a  Hann
       window.	 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 chan-
	       nel zero.  By default all channels of the given	part  are  up-
	       dated.

       -f file
	       Read  filter  coefficients from the given file instead of stan-
	       dard 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 14.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+14.3.quarterly>

home | help