siggen.conf(5)


NAME

   siggen.conf - the siggen configuration files

SYNOPSIS

   siggen.conf

DESCRIPTION

   As  from  siggen  version  2.3  onwards  a versatile configuration file
   scheme has  been  introduced.  It  allows  parameters  for  the  siggen
   programs  to  be specified either across the board, or specifically for
   particular programs.

   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 programs are compiled with the names of the config files  built
   in.   The  filenames  are  set  in  the config.h header file and can be
   changed. The LOCAL  and  GLOBAL  config  files  are  specified  by  the
   settings of:

   LOCAL  #define DEF_CONF_FILENAME ".siggen.conf"

   GLOBAL #define DEF_GLOBAL_CONF_FILE "/etc/siggen.conf"

   And  can  be  set  to any file name or to NULL to disable the file. The
   HOME config filename is created using the  $HOME  environment  variable
   and  the  DEF_CONF_FILENAME  together,  i.e.  using the above, the HOME
   config file for a user whose home directory is at /home/jj, would be

   HOME   /home/jj/.siggen.conf

   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  programs  themselves provide
   builtin default values (see config.h etc), and most of these values can
   be set by appropriate command line switches and flags.

CONFIGURATION VALUES

   A  configuration  value  has  a  name  and  a value, and values for all
   programs are set by simply entering a line in  the  appropriate  config
   file   where  the  first  word  is  the  name,  followed  by  arbitrary
   spaces/tabs, followed by the value. The value is all the rest  of  that
   line.  e.g.  to  set the global default samplerate of 44100 samples per
   sec, the following line would be entered in the GLOBAL config file:

   SAMPLERATE     44100

   Config value names are case insensitive.

   A config value can be set for a  specific  program,  by  prefixing  the
   config  value  name  with the program name and a ':'. e.g. to specify a
   samplerate of only 8000 samples per sec for the tones program enter

   TONES:SAMPLERATE    8000

   in the relevant config file. If both lines above  were  in  the  config
   file,  all  programs  except tones would use a samplerate of 44100, and
   tones would use 8000.

   You do not have to specify  all  configuration  values  in  the  config
   files.   If a particular value is missing, the programs will simply use
   their builtin defaults (see config.h etc).

   Configuration values  set  by  command  line  switches  or  flags  take
   precedence over values in any of the config files.

   Beware the programs do not have their 'name' built-in, but use the name
          they were invoked by. So if you change the name  of  a  program,
          remember  to  change  the config file entries. However this does
          means that by using links to a program, it can be made  to  pick
          up  a  different  set  of configuration values, depending on the
          name it is invoked by.

EXAMPLE CONFIGURATION FILE

   A sample config file is provided in ".siggen.conf" in the distribution.
   This  may  also  be  at  /etc/siggen.conf  .  Any line whose first non-
   whitespace character is a '#', is a comment line and is ignored.

WHAT CONFIGURATION VALUES ARE THERE?

   Not all of the siggen programs use all the values described here.   See
   the relevant man page for which values are used by which programs.

   CHANNELS
          In  all programs except tones and fsynth, channels specifies the
          number of output channels to use, i.e. 1  for  Mono  and  2  for
          Stereo.

          For  tones,  channels  specifies the number of 'voices' on which
          tones can generate different waveforms before mixing  them  into
          the one output channel.

          For   fsynth,  channels  specifies  the  numbers  of  separately
          configurable oscillators used to mix the single output channel.

   DACFILE
          The Digital to Analogue Converter (or  PCM  or  DSP)  device  on
          which  to  output the generated samples. This must be a real OSS
          PCM device, otherwise the ioctls used will fail.

   FRAGMENTS
          The number of Audio Buffer fragments to configure in the driver.
          The  interactive  programs respond to changes made to parameters
          from the keyboard immediately, but data will be buffered in  the
          driver  in  the buffer fragments. If the amount of data buffered
          is too much then there will very noticeable  delays  before  the
          output  sound  is  altered. Against that, insufficient buffering
          may mean that there is not enough data buffered  for  output  to
          cover  the  time  when  other  processes  are  being  run by the
          scheduler. The programs set the buffer size to the nearest power
          of 2 to give aprox. 100millisecs of sound. Hence if FRAGMENTS is
          set to 3, there will be aprox. 0.3 secs worth of sound  buffered
          for  output. On a lightly loaded fast machine this, or 2, should
          be sufficient. To cover periods of  heavy  load  or  on  a  less
          powerful  machine  use  4  or  5.   But remember the interactive
          programs will appear sluggish in  responding  to  the  keyboard.

   SAMPLERATE
          The number of samples per second to use. If output is to the DAC
          then the DAC device is set to output samples at this rate.
          BEWARE: not all cards can support all samplerates. SoundBlasters
          are  fairly  flexible  in  this respect. Other cheaper cards are
          not. Indeed some cards can only handle a very restricted set  of
          related  samplerates  e.g.  11025,  22050,  44100 & 8000, 16000,
          32000, 48000. When writing to DACFILE all programs will  attempt
          to  set  the samplerate given, but use the actual samplerate the
          device used. Use the verbose command line flag to  check  actual
          samplerates used.

   Some common samplerates used are:

       8000
          is  the  samplerate used in the phone system with 8 bit samples,
          and is adequate for voice range frequencies.

       44100
          is the samplerate used in audio CDs

       48000
          is the samplerate used in DAT systems, I  think,  and  for  much
          professional kit.

       32000
          is also used, but I forget where, minidisc?.

          In  general, the higher the samplerate the larger the memory and
          processing requirement, but the higher the frequency  range  and
          the more accurate the signals generated.

   SAMPLESIZE
          Number   of  bits  per  sample.  Only  two  values  are  allowed
          currently, 8 or 16.

       8  bit samples are unsigned,  with  decimal  value  128  being  the
          zero level.

       16 bit  samples  are  signed  little  endian values, i.e. the least
          significant byte comes before the most significant  byte  either
          in a file, or in the byte stream to an output device.

          If  samplesize if left completely unspecified, then all programs
          will attempt to do 16 bit samples to DACFILE, and if that  isn't
          possible  will do 8 bit samples. Or if writing to a file, 16 bit
          samples will be written.

   VERBOSE
          sets verbosity level.

       0  is quiet

       1  is be a bit verbose  (equiv. to -v  switch)

       2  is be very verbose   (equiv. to -vv switch)

   VI_KEYS
          if set to a non-zero value,  then  the  VI  cursor  moving  keys
          "HJKL" are enabled.

SEE ALSO

   sgen(1), swgen(1)

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





Opportunity


Personal Opportunity - Free software gives you access to billions of dollars of software at no cost. Use this software for your business, personal use or to develop a profitable skill. Access to source code provides access to a level of capabilities/information that companies protect though copyrights. Open source is a core component of the Internet and it is available to you. Leverage the billions of dollars in resources and capabilities to build a career, establish a business or change the world. The potential is endless for those who understand the opportunity.

Business Opportunity - Goldman Sachs, IBM and countless large corporations are leveraging open source to reduce costs, develop products and increase their bottom lines. Learn what these companies know about open source and how open source can give you the advantage.





Free Software


Free Software provides computer programs and capabilities at no cost but more importantly, it provides the freedom to run, edit, contribute to, and share the software. The importance of free software is a matter of access, not price. Software at no cost is a benefit but ownership rights to the software and source code is far more significant.


Free Office Software - The Libre Office suite provides top desktop productivity tools for free. This includes, a word processor, spreadsheet, presentation engine, drawing and flowcharting, database and math applications. Libre Office is available for Linux or Windows.





Free Books


The Free Books Library is a collection of thousands of the most popular public domain books in an online readable format. The collection includes great classical literature and more recent works where the U.S. copyright has expired. These books are yours to read and use without restrictions.


Source Code - Want to change a program or know how it works? Open Source provides the source code for its programs so that anyone can use, modify or learn how to write those programs themselves. Visit the GNU source code repositories to download the source.





Education


Study at Harvard, Stanford or MIT - Open edX provides free online courses from Harvard, MIT, Columbia, UC Berkeley and other top Universities. Hundreds of courses for almost all major subjects and course levels. Open edx also offers some paid courses and selected certifications.


Linux Manual Pages - A man or manual page is a form of software documentation found on Linux/Unix operating systems. Topics covered include computer programs (including library and system calls), formal standards and conventions, and even abstract concepts.