sweepgen(1)                   Linux System Manual                  sweepgen(1)



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  gener
       ated  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  ini
       tial 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-ran
              domly 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  wave
       forms.   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,  DAC
       FILE, 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, sgen, 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  per
       mission notice identical to this one.

       Permission  is granted to copy and distribute translations of this man
       ual into another language, under the above conditions for modified ver
       sions,  except  that this permission notice may be included in transla
       tion instead of in the original English.

AUTHOR
       Jim Jackson

       Email: jj@franjam.org.uk



Release 2                         20 Feb 1998                      sweepgen(1)
