GNUSOUND(1)
NAME
gnusound - Multitrack sound editor
SYNOPSIS
gnusound [file...]
DESCRIPTION
GNUsound is a multitrack sound editor.
ABOUT
- 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.
INSTALLATION
- GNUsound can be installed with little pain on most GNOME 1 or GNOME 2
installations.
- Prerequisites
- It is recommended/required that you install the following software before compiling/installing GNUsound:
- o Linux >= 2.4
- o GNOME >= 1.4
- o libglade >= 0.14
- o libaudiofile >= 0.2.3
- o libsamplerate >= 0.13
- o 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 homepagehttp://awacs.dhs.org/software/gnusound.
- If installation has been successful, there should be a GNUsound icon in
your GNOME menus. Alternatively you can start GNUsound from the command
line:
$ 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
LOADING FILES
GNUsound uses libaudiofile, which is a part of GNOME, to provide support for a number of popular audio file formats such as .AIFF and .WAV.
MAKING SELECTIONS
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.
MARKERS
- Cuepoints
- Cuepoints are markers that you can attach to the soundfile. By doubleclicking on the little red triangle you can change the label for a marker.
- 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.
- Envelopes
- 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 tool.
- 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.
PLAYBACK
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.
RECORDING
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.
SAVING FILES
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.
MEMORY MANAGEMENT
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.
CRASHING
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.
MODULES
- 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.
- Amplify
- 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.
- Bandpass
- 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 module.
- Declip
- 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.
- Delay
- 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.orghttp://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.
- Lowpass
- 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.
- Mix
- 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.
- Normalize
- 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.
- Resample
- This module changes the sampling rate of the selected audio. Depending on whether you have : libsampleratehttp://www.mega-nerd.com/SRC/ installed it offers one or more methods of doing so, with varying quality/speed tradeoffs. The primary envelope controls the rate.
- Reverse
- 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.
REFERENCE
- 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.
CONTACT
Please address questions, bug reports, and suggestions to the GNUsound
mailing list: <gnusound-common@lists.sourceforge.net>
For inquiries related to donations or other forms of sponsoring please
contact: <a.haakmat@chello.nl>
AUTHOR
- Pascal Haakmat.