Provided by: siggen_2.3.10-11_amd64 bug

NAME

       sweepgen - an Ncurses based sweep generator program

SYNOPSIS

       sweepgen [options]

DESCRIPTION

       sweepgen is a simple sweep signal generator program, with an Ncurses based user interface,
       that can digitally generate waveforms on the LINUX /dev/dsp device.  8 or 16  bit  samples
       can be generated depending on the hardware.

       sweepgen  in  MONO  mode  outputs  the  generated swept waveform. In STEREO mode the swept
       waveform is output on one channel, and the sweeping  waveform  is  output  on  the  second
       channel.

       The  sweeping  frequency is by default specified as an integer number of Hertz. Fractional
       Hertz frequencies, specifiable to 0.1Hz or 0.01Hz resolution, are supported by use of  the
       -res  command  line  option,  or  the  resolution  parameter in the configuration file(s).
       However be warned at 0.1Hz resolution the basic waveform sample buffers generated are each
       10  times  (and  at  0.01Hz  resolution  100 times) as big as the samplerate. It typically
       requires 5.5Mbytes of memory to run at 0.1Hz  resolution,  16bit  32000  samples/sec.  and
       55Mbytes  of  memory  to  run at 0.01Hz resolution. Because of the large buffer sizes, the
       initial waveform calculation time can also be lengthy.  Remember also that  the  waveforms
       are  re-calculated  whenever  the playing parameters, 8/16bit, mono/stereo, samplerate are
       changed.

       The swept waveform frequencies are specified either as a lower and upper frequency, or  as
       a centre frequency with a frequency variation.

       1000 500
              would signify a range of 1000-500 Hz to 1000+500 Hz, i.e. 500 to 1500 Hz

       Of  course,  only frequencies less than half the samplerate (number of samples/sec) can be
       generated. Although this is not checked.

       The waveforms that can be used as either the sweeping or swept signals are:

       sine   A standard sine wave

       square a standard square wave with a 50% mark space ratio

       triangle
              a linear rise from 0 to peak, thru' 0 to negative peak, and back to 0

       sawtooth
              a ramp waveform with 'infinitely' fast flyback (:-) An ideal oscilloscope  timebase
              signal.

       noise  This  is  weak.  All  it  consists  of  is  one second of pseudo-randomly generated
              samples, played repeatedly. I'd love to do proper white/pink  noise,  but  I  don't
              know  enough,  and  I  don't  think  the  structure  of the program is conducive to
              accurate noise generation.

       pulse  A square waveform where the mark/space ratio (as a percentage) is  10%  (mark/space
              ratio of 1:9).

       A lot of thought has gone into the algorithms for generating the waveforms.  I believe the
       sin/cos wave to be very pure (modulo your sound card :-), but I don't have access to a THD
       meter to measure it.

       At  1Hz  resolution, sweepgen generates one seconds worth of 1 Hz samples at the specified
       samplerate, for each waveform, and generates sweeping frequency F by  circularly  sampling
       every  Fth  sample. These samples are scaled to fit the swept frequency range and are used
       to sample the swept waveform to generate  the  swept  signal.   Each  buffer  fragment  is
       generated  for  the parameter(s) set at that moment. By default, buffer fragment sizes are
       set so that aprox. 10 fragments/sec are generated. Changing a generation  parameter,  e.g.
       waveform,  frequency,  will  impact  the next buffer fragment generated, and hence changes
       appear to be almost immediate.

       If your sounds periodically 'breaks' up with clicks or breaks, it is usually a  sign  that
       siggen  is  not  being  scheduled  sufficiently often. Either up the priority (see nice et
       al.), kill off other processes, get a faster processor, or increase the  number  of  audio
       buffer  fragments  that siggen uses. This last will make siggen respond more sluggishly to
       changes in generation parameters.  syslogd and crond are two  processes  that  I've  found
       useful to kill off - YMMV.

       Defaults
              output  to  /dev/dsp,  22050  samples/sec,  stereo if stereo card else mono, 16 bit
              samples if possible, else 8 bit.

CONFIGURATION FILES

       Three possible configuration files can be used: a LOCAL config file  (usually  in  current
       directory), a HOME config file in user's $HOME directory and a GLOBAL config file.

       All the siggen suite of programs are compiled with the names of the config files built in.
       By default the configuration files are:

       ./.siggen.conf
              is the LOCAL config file.

       $HOME/.siggen.conf
              is the HOME config file.

       /etc/siggen.conf
              is the GLOBAL config file.

       siggen -h
              will indicate which config files will be searched for.

       The config files do not have to exist. If they exist and are readable by the program  they
       are used, otherwise they are simply ignored.

       The  config  files  are always searched for configuration values in the order LOCAL, HOME,
       GLOBAL. This allows a scheme where the sysadmin sets  up  default  config  values  in  the
       GLOBAL  config  file,  but  allows a user to set some or all different values in their own
       HOME config file, and to  set  yet  more  specific  values  when  run  from  a  particular
       directory.

       If  no configuration files exist, the program provides builtin default values, and most of
       these values can be set by appropriate command line switches and flags.

       See siggen.conf(5) for details of the configuration files.

       sweepgen looks for  configuration  values  BUFFERSPERSEC,  CHANNELS,  DACFILE,  FRAGMENTS,
       RESOLUTION, SAMPLERATE, SAMPLESIZE, VERBOSE, VI_KEYS.

       BUFFERSPERSEC
              The  aprox. number of sound buffer fragments to play every second (Sound buffersize
              is always a power of 2).

       CHANNELS
              sets the number of channels, mono or stereo.

       DACFILE
              allows the name of the DAC/DSP/PCM device to be changed from /dev/dsp

       FRAGMENTS
              The number of Audio Buffers to configure in the driver.

       RESOLUTION
              The minimum change possible to the frequency setting. Only 3 values allowed: 1Hz  ,
              0.1Hz or 0.01Hz

       SAMPLERATE
              sets the number of samples/sec for the DAC device

       SAMPLESIZE
              sets whether 8 or 16 bit samples to be generated

       VERBOSE
              sets whether or not to run in verbose mode.

       VI_KEYS
              if set then the VI cursor moving keys "HJKL" are enabled

OPTIONS

       -h     display usage and help info

       -v     be verbose

       -s samples
              generate with samplerate of samples/sec

       -8|-16 or -b 8|16
              force 8 bit or 16 bit mode.

       -1|-2  mono or stereo mode

       -res n set resolution of frequency generation. Valid values are: 1Hz, 0.l1Hz or 0.01Hz

EXAMPLES


FILES


SEE ALSO

       swgen, signalgen, siggen, tones

BUGS


COPYING

       Copyright 1995-2008 Jim Jackson

       The  software  described  by  this  manual  is  covered by the GNU General Public License,
       Version 2, June 1991, issued by :

              Free Software Foundation, Inc.,
              675 Mass Ave,
              Cambridge, MA 02139, USA

       Permission is granted to make and distribute verbatim copies of this manual  provided  the
       copyright notice and this permission notice are preserved on all copies.

       Permission  is  granted  to copy and distribute modified versions of this manual under the
       conditions for verbatim copying, provided  that  the  entire  resulting  derived  work  is
       distributed under the terms of a permission notice identical to this one.

       Permission  is  granted  to  copy  and distribute translations of this manual into another
       language, under the above conditions for modified versions, except  that  this  permission
       notice may be included in translation instead of in the original English.

AUTHOR

       Jim Jackson

       Email: jj@franjam.org.uk