Nama - digital audio workstation
Nama is a lightweight object-oriented digital audio workstation that uses the Ecasound realtime audio engine.
New projects begin with a mixer, may include common audio objects including track, bus, effect, send, insert, mark, region, fade, edit and sequence.
Nama has its own command language. Commands have full names and shortcuts, and tab completion may be used. A "for" loop allows commands to be iterated over multiple tracks. Tracks may be designated as a list, by the name of their bus, or by the name of a user-defined group. Effect chains provide for adding and removing effects as a group.
Nama has the concept of a currently selected object. At any time, there is usually a current bus, current track and current effect. Track commands will act on the current track, bus commands will act on the currently selected bus.
The help system provides searchable access to documentation for all Nama commands and shortcuts, and for LADSPA, LV2 and Ecasound effects.
In addition to executing its own commands, Nama will pass commands to Ecasound, Midish, the Perl interpreter and the shell.
Nama creates signal processing graphs for the Ecasound engine; applies fades, effects and edits to the audio streams; and manages successive configure-run cycles. If jackd is running, Nama will automatically map soundcard IO via JACK.
When a user command requires it, Nama automatically reconfigures the Ecasound engine. While the engine is running Nama accepts parameter control inputs from GUI sliders, hotkeys, text commands, MIDI devices, OSC packets, and preprogrammed envelopes.
Nama's GUI will display if Tk is available. Nama can spawn Audacity or MHWaveedit to view/edit selected waveforms.
Project state is serialized as JSON files and managed by Git. Projects can be branched, and easily restored to earlier states. Nama uses Git to manage
Three types of templates are available to reuse project components: effect chains, effect profiles, and project templates. An effect chain is a series of effects with parameters. An effect profile includes one or more tracks with their effects and inserts. Nama's mastering network is stored as an effect profile.
The following command will install Nama, automatically pulling in all Perl modules required to run Nama in text mode:
However if you don't have cpanm, this should still work:
PERL_MM_USE_DEFAULT=1 cpan Audio::Nama
To use the GUI, you will need to install Tk:
You may optionally install Audio::Ecasound to run Ecasound via libecasoundc:
You can browse the sources or download a tarball via:
If you want to inspect or modify Nama's internals, or keep up with new developments, you can pull the source code as follows:
git clone git://github.com/bolangi/nama.git
Consult the BUILD file for build instructions.
The Ecasound audio processing libraries should be installed. Ecasound should be compiled with support for LADSPA, libsndfile, libsamplerate and JACK. Ecasound may be obtained from http://ecasound.seul.org/ecasound/ or as precompiled binary package for your Un*x distribution.
The LADSPA SDK is required to autosense LADSPA plugins and scaling hints. It is available at:
In particular the utility program 'analyseplugin' must be installed in a directory in your execution PATH.
Nama's mastering mode uses a number of LADSPA plugins in a reasonably flat starting configuration. provided that the user installs the plugins listed in the default configuration file .namarc.
Git is required to utilize Nama's project management and and undo features.
Unless specified otherwise, this code is 2003 - 2014, copyright Joel Roth
All rights are reserved except as provided by the Gnu Public License, version 3, as detailed in the file COPYING provided with this distribution.