Man Linux: Main Page and Category List


       gnusound - Multitrack sound editor


       gnusound [file...]


       GNUsound is a multitrack sound editor.


   About GNUsound
       Oi. GNUsound is a powerful sound editor for GNOME. GNUsound wants to be
       reliable, fast, and uncomplicated and it’s using me as a tool to get it
       there.  GNUsound  is  always  looking to expand it’s toolset, so if you
       want to slave the night away for no pay under  an  unforgiving  master,
       drop me a note and I’ll hook you up.

       I won’t claim that GNUsound will change the way you work because I am a
       reactionary bastard who thinks most change is bunk[1]. As far as  I  am
       concerned  software  should bend over backwards to accomodate the way I
       work,  so  in  general,  I  don’t  like  software  that   promises   to
       revolutionize  the way I work. Especially if that software then doesn’t
       even compile or is so clumsy as to be practically useless.

       With GNUsound I wanted to create a very practical  program  to  address
       some  very  immediate  needs  and  wants.  So  rather  than following a
       strictly hierarchical software development approach  where  development
       starts  with  a  lot  of  plumbing  and  then proceeds upward until the
       program  is  finished,  GNUsound  development  has  followed   a   more
       vertically  aligned,  goal-oriented strategy. In this way I’ve tried to
       avoid the danger -- especially present  with  volunteer-based  projects
       such as GNUsound -- that the project never leaves the plumbing stage or
       that when it does, there is not enough energy left to tackle the  upper
       layers  and  to work on actual usability (let’s call it the Sourceforge
       syndrome). I think that strategy has played out well.

       GNUsound is not for everyone. It needs lots of memory to perform  well.
       In  some  cases, it may trade audio quality for speed (although it will
       usually warn you when that is the case). And it’s not finished.

   About this documentation
       I don’t want to spend a lot of time  writing  documentation  because  I
       have  other  things  to  do  and  nobody  reads  documentation anyways.
       Besides, I am of the opinion that a program should not need  a  lot  of
       documentation.  It  should  allow  the user to explore and discover the
       functionality without exploding whenever the user makes a  mistake.  So
       there  you  go.  But  I’ll try and use this space to explain how things
       work and why.


       GNUsound can be installed with little pain on most GNOME 1 or  GNOME  2

       It  is  recommended/required  that  you  install the following software
       before compiling/installing GNUsound:

       ·  Linux >= 2.4

       ·  GNOME >= 1.4

       ·  libglade >= 0.14

       ·  libaudiofile >= 0.2.3

       ·  libsamplerate >= 0.13

       ·  OSS compatible sound driver

       In addition, it is recommended that you use  reasonably  fast  hardware
       (say, a 500 MHz PIII) and install lots of RAM (really).

   Installing from source
       To install GNUsound from source try:

              $ ./configure --enable-optimization
              $ make
              $ make install

       Don’t forget that

              $ ./configure --help

       shows  further  configuration  options.  If  you  decide  to  uninstall
       GNUsound, you can issue the command:

              $ make uninstall

       Considerable effort has been expended trying to make  GNUsound  compile
       and  install  flawlessly  on  many  different  systems, but it is still
       possible that something doesn’t work for  you.  In  that  case,  please
       report it.

   Installing from binary packages
       Several  people  provide  binary  packages  of GNUsound for a number of
       distributions.   These   are   available   from    :    the    GNUsound

       If installation has been successful, there should be a GNUsound icon in
       your GNOME menus. Alternatively you can start GNUsound from the command

              $ gnusound

       This  latter  method  is  actually  recommended  (at least for the time
       being), because GNUsound spews copious output to the screen,  including
       some  error messages that haven’t found a place in the GUI yet (such as
       when GNUsound cannot open the audio device).

       If you run into problems, e.g. GNUsound  won’t  start,  or  it  crashes
       immediately  after  startup,  see the installation section and read the
       output from

              $ ./configure --help


       GNUsound uses libaudiofile, which  is  a  part  of  GNOME,  to  provide
       support  for  a  number of popular audio file formats such as .AIFF and


       You can create a selection on a track by  dragging  the  mouse  pointer
       over  the  region  that you wish to select, or by holding the SHIFT key
       and giving one of the movement commands in the  Select  menu.  You  can
       select multiple tracks by holding the CONTROL key while clicking on the
       tracks that you want to select. If a track is  already  selected,  then
       this  action  deselects  the given track. It is also possible to select
       multiple tracks by issuing the Track Up and Track  Down  commands  from
       the Select menu.

       Changes  to  the  selection  are  undoable, thus, if you make a mistake
       which causes you to lose an important selection, you can issue the Undo
       command to get your selection back.

       A  handy  trick  to temporarily save a selection that you don’t want to
       lose while you do  some  editing  elsewhere  is  to  turn  the  current
       selection  into a loop, then do your stuff, and then to select the loop
       when you’re done. Alternatively, you can set cuepoints to demarcate the
       selection  that  you  want  to save, then use Snap to Cuepoints and the
       Move Left and Move Right commands to get your selection back.


       Cuepoints are markers that you can attach to the soundfile. By  double-
       clicking  on  the  little  red  triangle you can change the label for a

       You  can  create  cuepoints  by  pressing  M  or   by   selecting   the
       corresponding  option  from  the Marker menu. If there is no selection,
       this command creates a single marker at the cursor position.  If  there
       is  a  selection,  then this command creates 2 markers, at the left and
       right positions of the selection.

       GNUsound is either in selection editing mode  or  in  envelope  editing
       mode.  You can switch between these modes by toggling the Envelope Edit
       setting under the Edit menu.

       Once in envelope mode, you can click on  a  track  to  create  envelope
       handles. Clicking on the envelope handles themselves allows you to move
       them around. GNUsound provides two different envelopes for  controlling
       two  different  parameters:  the  primary  and  the auxiliary envelope.
       Holding CONTROL while clicking on  a  track  allows  you  to  edit  the
       auxiliary envelope.

       Envelopes  modify  the  behavior  of  the  tools  that you apply to the
       selection. For example if you create a selection, then draw an envelope
       across  the  selection  that  slopes downward from the center, and then
       apply the Amplify tool (from the Tools menu), it will  make  the  sound
       softer.  Thus,  the envelope controls the gain parameter of the Amplify

       The exact effect of an envelope depends  on  the  selected  tool;  some
       tools  don’t have any parameters to change, and the envelopes will have
       no effect. For other tools, the primary envelope usually  controls  the
       first  parameter,  and  the  auxiliary  envelope  controls  the  second
       parameter. For yet other tools, it may be possible to explicitly assign
       a parameter to one of the two envelopes.

       It  is  possible  to  temporarily disable envelopes by issuing the Show
       Envelopes command. The envelopes will then become  invisible  and  they
       will no longer affect any tools that you use.


       GNUsound can playback as many tracks as your hardware can handle. Every
       track can be mixed onto as many output channels as desired,  using  the
       mixer level controls (the rainbow colored things).

       GNUsound  does  not  perform  any implicit transformations of the audio
       file on playback[2]it just tries to open the audio device with the same
       parameters  as  the audio file (number of bits, sample rate) and starts
       playback. You should check GNUsound’s output  for  any  warnings  (e.g.
       when  the  device  could not be openend, or when the audio device can’t
       support the requested sample rate -- these warnings do  not  appear  in
       the GUI yet).

       GNUsound  does  not perform any checking on output clipping: it is your
       responsibility to make sure you don’t mix two channels too loudly.


       GNUsound can record as many tracks simultaneously as your hardware will
       bear.  You  do  this  by selecting the tracks you wish to record on and
       issuing the Record command.

       There is no relation between which tracks are selected and which  input
       channels  are actually recorded except for the number of channels: that
       is, if you select tracks 1 and 3 and then start to record, track 1 will
       receive  the  first  input channel, and track 3 will receive the second
       input channel.

       There is currently no way to explicitly control  which  input  channels
       GNUsound  records  from.  GNUsound will always incrementally assign the
       available input channels to  the  selected  tracks.  If  there  is  one
       selected  track,  GNUsound  records  from  the  first  available  input
       channel, if there are two selected tracks, GNUsound  records  from  the
       first two input channels, etcetera.


       You  can  issue the Save command at almost any time. Files are saved in
       the background and it is  possible  to  perform  almost  any  operation
       during  a  file save, including playback (although playback may stutter
       depending on your system configuration). Files are always saved in  the
       .WAV  format.  Envelopes,  cuepoints  and  other  data  are  saved in a
       filename.usx file, in a fairly self-explanatory text format.


       GNUsound currently stores all its data, including  clipboard  and  undo
       buffers,  in  memory.  Ultimately  some  logic  will  be implemented to
       offload portions of that to disk, but for the time being you have to be
       a  little considerate to prevent GNUsound from swallowing all available
       memory. One tool to help with that is under the Debug menu,  where  you
       can  find  the  option  Destroy  Undo.  This  destroys all undo’s, thus
       releasing all memory in use by the undo buffers. Of course  you  should
       only use this option when you don’t need those undo’s.


       If  GNUsound  crashes it will attempt to save data in open and modified
       buffers. It tries to save that data  to  the  file  filename.crash.  No
       guarantees  though  --  if  GNUsound crashes, it’s because something is
       seriously broken, and basically all bets are off.


       This section briefly describes  the  various  modules  that  come  with
       GNUsound. These modules are available via the Tools menu. They all need
       an active selection to operate on.

       This module amplifies or attenuates the signal.  The  primary  envelope
       determines by how much the signal is attenuates.

   Amplitude Treshold
       This  module  zeroes those parts of the signal that are below a certain
       treshold for a given duration. The Delete option  toggles  whether  the
       relevant  section  in  the signal should be zeroed or deleted. The Gang
       tracks  option  toggles  whether  each  track   should   be   processed
       separately, or whether the intersection from all selected tracks should
       be  used.  Finally  the  Invert  option  inverts  the  meaning  of  the
       operation, selecting noise rather than silence.

   Auto Zero
       This  module  shrinks the selection to the nearest zero points. This is
       mostly useful to prevent clicks in a looped sample.

       This module implements a very simple bandpass  filter.  It  was  lifted
       from the sox audio tool distribution mostly as a curiosity. Much better
       and more versatile filters are available  through  the  LADSPA  plugins

       This  module removes some digital clipping artifacts from material that
       was recorded too loud. It is very stupid and does not have  any  tricks
       up  its  sleeve whatsoever (not even interpolation) but still I find it
       works rather well.

       This module implements a simple digital delay. The  Duration  parameter
       controls  the  duration of each delay in the time units as given by the
       time control bar. This parameter is controlled by the primary envelope.
       The Times parameter controls the number of delays. The Decay parameters
       controls the rate  of  decay.  This  parameter  is  controlled  by  the
       auxiliary envelope.

   Fade In
       This  module  fades  in  the  signal. The primary envelope controls the
       attenuation factor.

   Fade Out
       This module fades out the signal. The  primary  envelope  controls  the
       attenuation factor.

   LADSPA Plugins
       This  module  implements  support for the Linux Audio Developers Simple
       Plugin Architecture. You must install some LADSPA plugins to  use  this
       module,       these       can       be       obtained       from      :
       http://www.ladspa.org  Before  starting  GNUsound
       make  sure  the LADSPA_PATH environment variable points to the location
       where your plugins are installed. If the  LADSPA_PATH  is  not  defined
       then GNUsound will search /usr/local/lib/ladspa for plugins.

       The interface for this module consists of a window that is split in two
       halves: the left half contains the available  plugins,  and  the  right
       half contains the parameters for the selected plugin.

       When  the list of plugins is active, you can press a key to jump to the
       first plugin whose name starts with that letter.

       The right half of the window has sliders to set the parameters for  the
       plugin.  You can use the Env1 and Env2 buttons to assign a parameter to
       the corresponding envelope. The envelope modifies the  parameter  value
       in  the  following  way: if the envelope value is 0, then the parameter
       value is the parameter value set by the user. If the envelope value  is
       between  0 and 1, then the parameter value is between the user selected
       parameter value  and  the  maximum  parameter  value.  Finally  if  the
       envelope value is between 0 and -1, then the parameter value is between
       the user selected parameter value and the minimum parameter value.

       An envelope assigned  to  a  LADSPA  parameter  does  not  change  that
       parameter  every  sample;  rather the signal is processed in blocks and
       the envelope value applies to an entire block. The size of these blocks
       can  be  changed  in  the  configuration  file (the ladspa_segment_time
       parameter). The default value for this parameter is 0.1 seconds.

       This module implements a very simple lowpass filter. It was lifted from
       the  web  and  is  included mostly as a curiosity. Much better and more
       versatile filters are available through the LADSPA plugins module.

       This module mixes the signal from the second selected  track  into  the
       first.  The  primary  envelopes  on  the  selected  tracks  specify the
       contribution of each track to the final signal.

       This module determines the peak amplitude of the selected track(s)  and
       proceeds to amplify the tracks so that the signal amplitude is maximal.
       If you select a multiple tracks, then the global peak for the  selected
       tracks is used as a reference point.

       This  module changes the sampling rate of the selected audio. Depending
       on  whether  you  have   :   libsamplerate
       installed  it  offers  one  or  more  methods of doing so, with varying
       quality/speed tradeoffs. The primary envelope controls the rate.

       This module reverses the selected data.

   Tone Generator
       This module implements a simple tone generator which can also  be  used
       to  generate silence. The primary envelope controls the amplitude while
       the auxiliary envelope controls the frequency.


   Configuration file
       GNUsound stores its configuration information in a  text  file  in  the
       location   ~/.gnome/gnusound.  Although  some  of  the  most  important
       properties that are stored in this  file  can  be  edited  from  within
       GNUsound itself, this file also contains other options that might be of
       interest. For example, it contains the colors  that  GNUsound  uses  to
       draw  various parts of the interface. You can change these here if your
       aesthetic sensibilities differ from those of the author.  Some  of  the
       more obscure options there may be documented in the pref.c file.

       It  should  be  understood  that editing the configuration file in this
       fashion may yield unexpected results. Also there  is  always  a  chance
       that  the  format of the file will change in the future, as well as the
       meaning of the properties and their values.

   .USX document settings file
       GNUsound saves all it’s files as standard .WAV files. However  not  all
       of  GNUsound’s  document  settings  can  be  preserved in the .WAV file
       format. Rather than inventing yet another sound file  format,  GNUsound
       saves  the  extra data alongside the sound file in a text file with the
       extension .USX. This  file  keeps  track  of  the  selection  settings,
       markers,  envelopes  and  mixer  settings.  This  file  is fairly self-
       explanatory and it doesn’t hurt to edit it by hand.


       Please address questions, bug reports, and suggestions to the  GNUsound
       mailing list: <>

       For  inquiries related to donations or other forms of sponsoring please
       contact: <>


       Pascal Haakmat.