xenial (1) siggen.1.gz

Provided by: siggen_2.3.10-6build1_amd64 bug

NAME

       siggen - an Ncurses based signal generator program

SYNOPSIS

       siggen [options] [waveform [freq]]

DESCRIPTION

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

       siggen  allows  two independent waveforms to be generated.  In stereo the two signals appear on different
       channels. In mono the two signals are digitally mixed onto the one mono channel.

       The frequency is specified as an integer number of Hertz. Fractional Hertz frequencies are not supported.
       Of  course,  only  frequencies  less  than  half  the  samplerate  (number of samples/sec) are accurately
       meaningful. Higher frequencies can be specified, but don't expect to hear them!

       On screen values for individual fields can be locked to prevent accidental changes. The  unlock  facility
       unlocks all locked fields.

       Corresponding  values  for  the 2 channels can be set to track, the values are made equal and a change to
       one causes a change to the other.  e.g. making the frequency values track will  make  both  channels  the
       same frequency, and altering one freq. value alters both simultaneously.

       The waveforms that can be generated are:

       sine   A standard sine wave

       cosine a sine wave with a 90 degree phase shift

       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) can be specified. The default value
              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. For
       best signal accuracy leave the gain setting at 100(%). The generator will then make the wave's peak value
       fit  the maximum digital values allowed. Use a mixer program to control the output volume, or an external
       attenuator.

       The gain factor option can be useful for simulating a signal  that  has  been  subject  to  clipping,  by
       specifying  a  gain  of  >  100%. In fact a trapezoid signal can be made by generating a clipped sawtooth
       wave. The greater the gain, the closer the signal approaches a square  wave  (the  rise  and  fall  times
       decrease).

       siggen  ordinarily  generates  one  seconds  worth  of 1 Hz samples at the specified samplerate, for each
       waveform, and generates frequency F by circularly sampling every Fth  sample.  Each  buffer  fragment  is
       generated  for  the  parameter(s)  set  at  that  moment. Buffer fragment sizes are set so that aprox. 10
       fragments/sec are generated. Changing a generation parameter, e.g. waveform, frequency, gain, will impact
       the next buffer fragment generated, and hence changes appear to be almost immediate.

       The  -res option can be used to make siggen generate signals with 0.1Hz resolution, or 0.01Hz resolution.
       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.

       If  your  sounds  periodically 'breaks' up with clicks or breaks, it is usually a sign that siggen is not
       being scheduled sufficiently often. Either increase 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, 3 audio buffer fragments.

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.

       siggen   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, see '-c' option.

       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

       -BPS n configure to play aprox. n audio buffers per second.

       -C configfile
              Use configfile as the LOCAL configuration file.

       -NB n  set number of audio buffers to n

       -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

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

EXAMPLES

FILES

SEE ALSO

       signalgen, swgen, tones, sweepgen, siggen.conf

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