Nama(3) Ecasound-based recorder, mixer and mastering system


nama [options] [project_name]


Nama is a text-based application for multitrack recording, mixing and mastering using the Ecasound audio engine developed by Kai Vehmanen.

Features include tracks, buses, effects, presets, sends, inserts, marks and regions. Nama runs under JACK and ALSA audio frameworks, automatically detects LADSPA plugins, and supports Ladish Level 1 session handling.

All editing under Nama is non-destructive. Effects are generally applied in realtime. A track caching (track freezing) function is also available.

The command prompt accepts Nama commands, Ecasound interactive-mode commands, shell commands and perl code, providing command history and autocompletion. The help system covers internal commands and LADSPA effects and includes keyword search.

By default, Nama displays a simple graphic interface while the command processor runs in a terminal window. The -t option provides a text-only interface for console users.


--gui, -g
Start Nama in GUI mode
--text, -t
Start Nama in text mode
--config, -f
Specify configuration file (default: ~/.namarc)
--project-root, -d
Specify project root directory
--create-project, -c
Create project if it doesn't exist
--net-eci, -n
Use Ecasound's Net-ECI interface
--libecasoundc, -l
Use Ecasound's libecasoundc interface
--save-alsa, -a
Save/restore alsa state with project data
--help, -h
This help display

Debugging options:

--no-static-effects-data, -s
Don't load effects data
--no-state, -m
Don't load project state
--no-static-effects-cache, -e
Bypass effects data cache
--regenerate-effects-cache, -r
Regenerate the effects data cache
--no-reconfigure-engine, -R
Don't automatically configure engine
--debugging-output, -D
Emit debugging information
--fake-jack, -J
Simulate JACK environment
--fake-alsa, -A
Simulate ALSA environment
--no-ecasound, -E
Don't spawn Ecasound process
--execute-command, -X
Supply a command to execute


The Ecasound audio engine is configured through use of chain setups that specify the signal processing network. After lauching the engine, realtime control capabilities are available, for example to adjust signal volume and to set playback position.

Nama serves as an intermediary, taking high-level commands from the user, generating appropriate chain setups for recording, playback, mixing, etc. and running the audio engine.


Static commands affect future runs of the audio engine. For example, rec, mon and off determine whether the current track will get its audio stream from a live source or whether an existing WAV file will be played back. Nama responds to static commands by automatically reconfiguring the engine and displaying the updated track status.


Once a chain setup is loaded and the engine is launched, another set of commands controls the realtime behavior of the audio processing engine. Commonly used dynamic commands include transport "start" and "stop", playback repositioning commands such "forward", "rewind" and "setpos". Effects may be added, modified or removed while the engine is running.


General configuration of sound devices and program options is performed by editing the .namarc file. On Nama's first run, a default version of .namarc is usually placed in the user's home directory.


Invoked by default if Tk is installed, this interface provides a subset of Nama's functionality on two windows, one for general control, the second for effects.

The main window has buttons for project create, load and save, for adding tracks and effects, and for setting the vol, pan and record status of each track.

The GUI project name bar and time display change color to indicate whether the upcoming operation will include live recording (red), mixdown only (yellow) or playback only (green). Live recording and mixdown can take place simultaneously.

The effects window provides sliders for each effect parameters. Parameter range, defaults, and log/linear scaling hints are automatically detected. Text-entry widgets are used to enter parameters values for plugins without hinted ranges.

The command prompt appears in the terminal window during GUI operation. Text commands may be issued at any time.


Press the Enter key if necessary to get the command prompt, which will look something like this:

"nama [sax] ('h' for help)>"

In this instance, 'sax' is the current track.

When using sub-buses, the bus is indicated before the track:

"nama [Strings/violin] ('h' for help)>"

At the prompt, you can enter Nama and Ecasound commands, Perl code preceded by "eval" or shell code preceded by "!".

Multiple commands on a single line are allowed if delimited by semicolons. Usually the lines are split on semicolons and the parts are executed sequentially, however if the line begins with "eval" or "!" the entire line (up to double semicolons ';;' if present) will be given to the corresponding interpreter.

You can access command history using up-arrow/down-arrow.

Type "help" for general help, "help command" for help with "command", "help foo" for help with commands containing the string "foo". "help_effect foo bar" lists all plugins/presets/controller containing both foo and bar. Tab-completion is provided for Nama commands, Ecasound-iam commands, plugin/preset/controller names, and project names.

Many effects have abbreviations, such as 'afx' for 'add_effect'.


Each track has a descriptive name (i.e. vocal) and an integer track-number assigned when the track is created. New user tracks initially belong to the Main bus.

Track output signals are usually mixed and pass through the Master track on the way to soundcard for monitoring.

The following sections describes track attributes and their effects.


Specifying 'mono' means the track has one input channel, which will be recorded as a mono WAV file. Mono track signals are automatically duplicated to stereo and a pan effect is provided.

Specifying 'stereo' for a track means that two channels of audio input will be recorded as an interleaved stereo WAV file.

Specifying N channels for a track ('set width N') means N successive input channels will be recorded as an N-channel interleaved WAV file.


Track REC/MON/OFF status guides audio processing.

Each track, including Master and Mixdown, has its own REC/MON/OFF setting and displays its own REC/MON/OFF status. Each bus also has REC, MON and OFF settings that influence the behavior of user tracks.

Track status

As the name suggests, REC status indicates that a track is ready to record a WAV file.

MON status indicates an audio stream is available from disk. This status requires the presence of a file matching the bus or track version number, if specified. A track set to REC with no live input will default to MON status.

OFF status means that no audio is available for the track from any source. A track with no recorded WAV files will show OFF status, even if set to MON.

Bus setting

We describe the effect of Main bus REC/MON/OFF settings on member tracks. (Sub-bus settings have similar effects on their tracks.)

The Main bus REC setting does not limit user track status in any way.

The Main bus MON setting disables recording for member tracks. Track REC status is forced to MON if a WAV file is available, or OFF if no WAV file is available.

The Main bus OFF setting forces all user tracks to OFF status, causing them to be excluded from the chain setup. Note: This setting is distinct from the action of the "mute" command, which sets the volume of the track to zero.

The Main bus MON mode triggers automatically after a successful recording run.

The mixplay command sets the Mixdown track to MON and the Main bus to OFF.


Multiple WAV files can be recorded for each track. These are distinguished by a version number that increments with each recording run, i.e. sax_1.wav, sax_2.wav, etc. All WAV files recorded in the same run have the same version numbers.

The version numbers of files for playback can be selected at the bus or track level. By setting the bus version to 5, you can play back version 5 of several tracks at once. Version 5 could signify the fifth take of a song, or the fifth song of a live recording session.

The track version setting, if present, overrides the bus setting. Setting the track version to zero restores control of the version number to the bus setting.

The Main bus version setting does not currently propagate to sub-buses. If you have sub-buses you must set bus version numbers for each separately if desired.


Marks in Nama are similar to those in other audio editing software, with one small caveat: Mark positions are relative to the beginning of an Ecasound chain setup. If your project involves a single track, and you will be shortening the stream by setting a region to play, set any marks you need after defining the region.


The "region" command allows you to define endpoints for a portion of an audio file. Use the "shift" command to specify a delay for starting playback.

Only one region may be specified per track. To work around this limitation, use the "new_region" command to clone a track, specifying a new region definition. You can then independently control volume and pan of this new region, apply effects, etc.

The "link_track" command can clone tracks from other Nama projects.


Each track gets volume and pan effects by default. New effects added using "add_effect" are applied after pan volume controls. You can position effects anywhere you choose using "insert_effect".


Nama allows you to place fades on any track. Fades are logarithmic, defined by a mark position and a duration. An initial volume operator, -eadb, is additionally applied to tracks as necessary to enable this function.


The "send" command can route a track's post-fader output to a soundcard channel or JACK client in addition to the normal mixer input. Nama currently allows one aux send per track.

The "add_insert" command configures a pre- or post-fader send-and-return to soundcard channels or JACK clients. Wet and dry signal paths are provided, with a default setting of 100% wet.

Each track can have one pre-fader and one post-fader insert.


A bunch is just a list of track names. Bunch names are used with the keyword "for" to apply one or more commands to to several tracks at once. A bunch can be created with the "new_bunch" command. Any bus name can also be treated as a bunch. Finally, a number of special bunch keywords are available.
rec, mon, off
All tracks with the corresponding setting in the current bus
All tracks with the corresponding status in the current bus



Sub buses enable multiple tracks to be routed through a single mix track before feeding the main mixer bus (or possibly another sub bus.)

The following commands create a sub bus and assign three tracks to it. The mix track takes the name of the bus and is stereo by default.

        # create a bus named Strings feeding a mix track named Strings
        add_sub_bus Strings 
        # create tracks for the sub-bus
        add_tracks violin cello bass
        # move the tracks from the Main bus (default) to the Strings bus
        for violin cello bass; set bus Strings
        # use the mix track to control bus output volume
        Strings vol - 10


Send buses can be used as instrument monitors, or to send pre- or post-fader signals from multiple user tracks to an external program such as jconverter


General notes

While Nama can address tracks by either a name and a number, the chain setups use the track number exclusively.

The Master track (mixer output control) is always chain 1, the Mixdown track is always chain 2.

Nama uses Ecasound loop devices where necessary to connect two tracks, or to allow one track to have multiple inputs or outputs. Each loop device adds one buffer, which increases latency.

Flow diagrams

Let's examine the signal flow from track 3, the first available user track. Assume track 3 is named ``sax''.

We will divide the signal flow into track and mixer sections. Parentheses show the track number/name.

The stereo outputs of each user track terminate at Master_in, a loop device at the mixer input.

Track, REC status

    Sound device   --+---(3)----> Master_in
      /JACK client   |
                     +---(R3)---> sax_1.wav

REC status indicates that the source of the signal is the soundcard or JACK client. The input signal will be written directly to a file except in the special preview and doodle modes, or if "rec_disable" is issued.

Track, MON status

    sax_1.wav ------(3)----> Master_in

Mixer, with mixdown enabled

In the second part of the flow graph, the mixed signal is delivered to an output device through the Master chain, which can host effects. Usually the Master track provides final control before audio output or mixdown.

    Master_in --(1)--> Master_out --+--------> Sound device
                                    +-->(2)--> Mixdown_1.wav

Mastering Mode

In mastering mode (invoked by "master_on" and released "master_off") the following network, receives the Master track signal as input and provides an output to the soundcard or WAV file.

                          |       |
    Eq-in -(Eq)-> Eq_out -+-(Mid)-+- Boost_in -(Boost)-> soundcard/wav_out
                          |       |

The Eq track hosts an equalizer.

The Low, Mid and High tracks each apply a bandpass filter, a compressor and a spatialiser.

The Boost track applies gain and a limiter.

These effects and their default parameters are defined in the configuration file .namarc.


The "mixdown" command configures Nama for mixdown. The Mixdown track is set to REC (equivalent to "Mixdown rec") and the audio monitoring output is turned off (equivalent to "main_off").

Mixdown proceeds after you start the transport.

Preview and Doodle Modes

These non-recording modes, invoked by "preview" and "doodle" commands tweak the routing rules for special purposes. Preview mode disables recording of WAV files to disk. Doodle mode disables MON inputs while enabling only one REC track per signal source. The "arm" command releases both preview and doodle modes.


Help commands

help (h) - Display help

"help" [ <i_help_topic_index> | <s_help_topic_name> | <s_command_name> ]

help_effect (hfx he) - Display analyseplugin output if available or one-line help

"help_effect" <s_label> | <i_unique_id>

find_effect (ffx fe) - Display one-line help for effects matching search strings

"find_effect" <s_keyword1> [ <s_keyword2>... ]

General commands

exit (quit q) - Exit program, saving settings


memoize - Enable WAV dir cache


unmemoize - Disable WAV dir cache


Transport commands

stop (s) - Stop transport


start (t) - Start transport


getpos (gp) - Get current playhead position (seconds)


setpos (sp) - Set current playhead position

"setpos" <f_position_seconds>

"setpos 65 (set play position to 65 seconds from start)"

forward (fw) - Move playback position forward

"forward" <f_increment_seconds>

rewind (rw) - Move transport position backward

"rewind" <f_increment_seconds>

to_start (beg) - Set playback head to start


to_end (end) - Set playback head to end minus 10 seconds


ecasound_start (T) - Ecasound-only start


ecasound_stop (S) - Ecasound-only stop


preview - Start engine with rec_file disabled (for mic test, etc.)


doodle - Start engine while monitoring REC-enabled inputs


Mix commands

mixdown (mxd) - Enable mixdown for subsequent engine runs


mixplay (mxp) - Enable mixdown file playback, setting user tracks to OFF


mixoff (mxo) - Set Mixdown track to OFF, user tracks to MON


automix - Normalize track vol levels, then mixdown


master_on (mr) - Enter mastering mode. Add tracks Eq, Low, Mid, High and Boost if necessary


master_off (mro) - Leave mastering mode


General commands

main_off - Turn off main output


main_on - Turn on main output


Track commands

add_track (add new) - Create a new track

"add_track" <s_name> [ <s_key1> <s_val1> <s_key2> <s_val2>... ]

"add_track clarinet group woodwinds"

add_tracks (add new) - Create one or more new tracks

"add_tracks" <s_name1> [ <s_name2>... ]

"add_track sax violin tuba"

link_track (link) - Create a read-only track that uses .WAV files from another track.

"link_track" <s_name> <s_target> [ <s_project> ]

"link_track intro Mixdown song_intro creates a track 'intro' using all .WAV versions from the Mixdown track of 'song_intro' project"

import_audio (import) - Import a sound file (wav, ogg, mp3, etc.) to the current track, resampling if necessary.

"import_audio" <s_wav_file_path> [i_frequency]

set_track (set) - Directly set current track parameters (use with care!)

"set_track" <s_track_field> value

rec - REC-enable current track


mon (on) - Set current track to MON


off (z) - Set current track to OFF (exclude from chain setup)


rec_defeat (rd) - Prevent writing a WAV file for current track


rec_enable (re) - Allow writing a WAV file for current track


source (src r) - Set track source

"source" <i_soundcard_channel> | 'null' (for metronome) | <s_jack_client_name> | 'jack' (opens ports ecasound:trackname_in_N, connects ports listed in trackname.ports if present in project_root dir)

send (out aux m) - Set aux send

"send" <i_soundcard_channel> (3 or above) | <s_jack_client_name>

remove_send (nosend rms) - Remove aux send


stereo - Record two channels for current track


mono - Record one channel for current track


set_version (version n ver) - Set track version number for monitoring (overrides group version setting)

"set_version" <i_version_number>

"sax; version 5; sh"

destroy_current_wav - Unlink current track's selected WAV version (use with care!)


list_versions (lver lv) - List version numbers of current track


vol (v) - Set, modify or show current track volume

"vol" [ [ + | - | * | / ] <f_value> ]

"vol * 1.5 (multiply current volume setting by 1.5)"

mute (c cut) - Mute current track volume


unmute (C uncut) - Restore previous volume level


unity - Set current track volume to unity


solo - Mute all but current track


all (nosolo) - Unmute tracks after solo


pan (p) - Get/set current track pan position

"pan" [ <f_value> ]

pan_right (pr) - Pan current track fully right


pan_left (pl) - Pan current track fully left


pan_center (pc) - Set pan center


pan_back (pb) - Restore current track pan setting prior to pan_left, pan_right or pan_center


show_tracks (show tracks list_tracks lt) - Show status of all tracks


show_track (sh) - Show current track status


Setup commands

show_mode (shm) - Show current record/playback modes


Track commands

set_region (srg) - Specify a playback region for the current track using marks. Use 'new_region' for multiple regions.

"set_region" <s_start_mark_name> <s_end_mark_name>

new_region (nrg) - Create a region for the current track using an auxiliary track

"new_region" <s_start_mark_name> <s_end_mark_name> [<s_region_name>]

remove_region (rrg) - Remove region (including associated auxiliary track)


shift_track (shift) - Set playback delay for track or region

"shift_track" <s_start_mark_name> | <i_start_mark_index | <f_start_seconds>

unshift_track (unshift) - Remove playback delay for track or region


modifiers (mods mod) - Set/show modifiers for current track (man ecasound for details)

"modifiers" [ Audio file sequencing parameters ]

"modifiers select 5 15.2"

nomodifiers (nomods nomod) - Remove modifiers from current track


normalize (norm ecanormalize) - Apply ecanormalize to current track version


fixdc (ecafixdc) - Apply ecafixdc to current track version


autofix_tracks (autofix) - Fixdc and normalize selected versions of all MON tracks


remove_track - Remove effects, parameters and GUI for current track


Bus commands

bus_rec (brec grec) - Rec-enable bus tracks


bus_mon (bmon gmon) - Set group-mon mode for bus tracks


bus_off (boff goff) - Set group-off mode for bus tracks


Group commands

bus_version (bn bver bv gver gn gv) - Set default monitoring version for tracks in current bus


new_bunch (nb) - Define a bunch of tracks

"new_bunch" <s_group_name> [<s_track1> <s_track2>...]

list_bunches (lb) - List track bunches


remove_bunches (rb) - Remove the definition of a track bunch

"remove_bunches" <s_bunch_name> [<s_bunch_name>...]

add_to_bunch (ab) - Add track(s) to a bunch

"add_to_bunch" <s_bunch_name> <s_track1> [<s_track2>...]

Project commands

save_state (keep save) - Save project settings to disk

"save_state" [ <s_settings_file> ]

get_state (recall retrieve) - Retrieve project settings

"get_state" [ <s_settings_file> ]

list_projects (lp) - List projects


create_project (create) - Create a new project

"create_project" <s_new_project_name>

load_project (load) - Load an existing project using last saved state

"load_project" <s_project_name>

project_name (project name) - Show current project name


Setup commands

generate (gen) - Generate chain setup for audio processing


arm - Generate and connect chain setup


connect (con) - Connect chain setup


disconnect (dcon) - Disconnect chain setup


show_chain_setup (chains) - Show current Ecasound chain setup


loop_enable (loop) - Loop playback between two points

"loop_enable" <start> <end> (start, end: mark names, mark indices, decimal seconds)

"loop_enable 1.5 10.0 (loop between 1.5 and 10.0 seconds) "

"loop_enable 1 5 (loop between mark indices 1 and 5) "

"loop_enable start end (loop between mark ids 'start' and 'end')"

loop_disable (noloop nl) - Disable automatic looping


Effect commands

add_controller (acl) - Add a controller to an operator (use mfx to modify, rfx to remove)

"add_controller" <s_parent_id> <s_effect_code> [ <f_param1> <f_param2>...]

add_effect (afx) - Add effect to the end of current track

"add_effect" <s_effect_code> [ <f_param1> <f_param2>... ]

"add_effect amp 6 (LADSPA Simple amp 6dB gain)"

"add_effect var_dali (preset var_dali) Note: no el: or pn: prefix is required"

insert_effect (ifx) - Place effect before specified effect (engine stopped, prior to arm only)

"insert_effect" <s_insert_point_id> <s_effect_code> [ <f_param1> <f_param2>... ]

modify_effect (mfx modify_controller mcl) - Modify an effect parameter

"modify_effect" <s_effect_id> <i_parameter> [ + | - | * | / ] <f_value>

"modify_effect V 1 -1 (set effect_id V, parameter 1 to -1)"

"modify_effect V 1 - 10 (reduce effect_id V, parameter 1 by 10)"

"set multiple effects/parameters: mfx V 1,2,3 + 0.5 ; mfx V,AC,AD 1,2 3.14"

remove_effect (rfx remove_controller rcl) - Remove effects from selected track

"remove_effect" <s_effect_id1> [ <s_effect_id2>...]

add_insert (ain) - Add an external send/return to current track

"add_insert" ( pre | post ) <s_send_id> [<s_return_id>]

set_insert_wetness (wet) - Set wet/dry balance for current track insert: 100 = all wet, 0 = all dry

"set_insert_wetness" [ pre | post ] <n_wetness>

remove_insert (rin) - Remove an insert from the current track

"remove_insert" [ pre | post ]

ctrl_register (crg) - List Ecasound controllers


preset_register (prg) - List Ecasound presets


ladspa_register (lrg) - List LADSPA plugins


Mark commands

list_marks (lmk lm) - List all marks


to_mark (tmk tom) - Move playhead to named mark or mark index

"to_mark" <s_mark_id> | <i_mark_index>

"to_mark start (go to mark named 'start')"

new_mark (mark k) - Drop mark at current playback position

"new_mark" [ <s_mark_id> ]

remove_mark (rmk rom) - Remove mark, default to current mark

"remove_mark" [ <s_mark_id> | <i_mark_index> ]

"remove_mark start (remove mark named 'start')"

next_mark (nmk nm) - Move playback head to next mark


previous_mark (pmk pm) - Move playback head to previous mark


name_mark (nmk nom) - Give a name to the current mark

"name_mark" <s_mark_id>

"name_mark start"

modify_mark (move_mark mmk mm) - Change the time setting of current mark

"modify_mark" [ + | - ] <f_seconds>

Diagnostics commands

engine_status (egs) - Display Ecasound audio processing engine status


dump_track (dumpt dump) - Dump current track data


dump_group (dumpgroup dumpg) - Dump group settings for user tracks


dump_all (dumpall dumpa) - Dump most internal state


show_io (showio) - Show chain inputs and outputs


Help commands

list_history (lh) - List command history


Bus commands

add_send_bus_cooked (asbc) - Add a send bus that copies all user tracks' processed signals

"add_send_bus_cooked" <s_name> <destination>

"asbc jconv"

add_send_bus_raw (asbr) - Add a send bus that copies all user tracks' raw signals

"add_send_bus_raw" <s_name> <destination>

"asbr The_new_bus jconv"

add_sub_bus (asub) - Add a sub bus (default destination: to mixer via eponymous track)

"add_sub_bus" <s_name> [destination: s_track_name|s_jack_client|n_soundcard channel]

"asub Strings_bus "

"asub Strings_bus some_jack_client"

update_send_bus (usb) - Include tracks added since send bus was created

"update_send_bus" <s_name>

"usb Some_bus"

remove_bus - Remove a bus

"remove_bus" <s_bus_name>

list_buses (lbs) - List buses and their parameters TODO


set_bus (sbs) - Set bus parameters

"set_bus" <s_busname> <key> <val>

change_bus (cbs) - Choose the current bus

"change_bus" <s_busname>

Effect commands

new_effect_chain (nec) - Define a reusable sequence of effects (effect chain) with current parameters

"new_effect_chain" <s_name> [<op1>, <op2>,...]

add_effect_chain (aec) - Add an effect chain to the current track

"add_effect_chain" <s_name>

overwrite_effect_chain (oec) - Add an effect chain overwriting current effects (which are pushed onto stack)

"overwrite_effect_chain" <s_name>

delete_effect_chain (dec) - Delete an effect chain definition from the list

"delete_effect_chain" <s_name>

list_effect_chains (lec) - List effect chains, matching any strings provided

"list_effect_chains" [<s_frag1> <s_frag2>... ]

bypass_effects (bypass bye) - Bypass track effects (pushing them onto stack) except vol/pan


restore_effects (restore ref) - Restore bypassed track effects


new_effect_profile (nep) - Create a named group of effect chains for multiple tracks

"new_effect_profile" <s_bunch_name> [<s_effect_profile_name>]

apply_effect_profile (aep) - Use an effect profile to overwrite effects of multiple tracks

"apply_effect_profile" <s_effect_profile_name>

overlay_effect_profile (oep) - Use an effect profile to add effects to multiple tracks

"overlay_effect_profile" <s_effect_profile_name>

delete_effect_profile (dep) - Remove an effect chain bunch definition

"delete_effect_profile" <s_effect_profile_name>

list_effect_profiles (lep) - List effect chain bunches


Track commands

cache_track (cache ct) - Store an effects-processed track signal as a new version


Effect commands

uncache_track (uncache unc) - Select the uncached track version; restores effects (but not inserts)


General commands

do_script (do) - Execute Nama commands from a file in project_dir or project_root

"do_script" <s_filename>

scan - Re-read project's .wav directory


Effect commands

add_fade (afd fade) - Add a fade-in or fade-out to current track

"add_fade" in|out marks/times (see examples)

"fade in mark1 (fade in default 0.5s starting at mark1)"

"fade out mark2 2 (fade out over 2s starting at mark2)"

"fade out 2 mark2 (fade out over 2s ending at mark2)"

"fade out mark1 mark2 (fade out from mark1 to mark2)"

remove_fade (rfd) - Remove a fade from the current track

"remove_fade" <i_fade_index1> [<i_fade_index2>...]

list_fade (lfd) - List fades



On any change in setup, the GUI display updates and "show_tracks" command is executed automatically showing what to expect the next time the engine is started.

You can use the "chains" command to verify the Ecasound chain setup. (The Ecasound command "cs-save-as mysetup.ecs" will additionally store all engine data, effects as well as routing.)

The "dump" command displays data for the current track. The "dumpall" command shows all state that would be saved.

This is the same output that is written to the State.yml file when you issue the "save" command.


No waveform or signal level displays are provided.

No latency compensation across signal paths is provided at present, although this feature is planned.


If you are using Nama with the NetECI interface (i.e. if Audio::Ecasound is not installed) you should block TCP port 2868 if your computer is exposed to the Internet.


The following command, available on Unixlike systems with Perl installed, will pull in Nama and other Perl libraries required for text mode operation:

PERL_MM_USE_DEFAULT=1 cpan Audio::Nama

To use the GUI, you will need to install Tk:

"cpan Tk"

You may want to install Audio::Ecasound if you prefer not to run Ecasound in server mode:

"cpan Audio::Ecasound"

You can pull the source code as follows:

"git clone git://"

Consult the BUILD file for build instructions.


The Ecasound mailing list is a suitable forum for questions regarding Nama installation, usage, feature requests, etc., as well as questions relating to Ecasound itself.


The main module,, and its sister modules are concatenations of several source files. Patches against these source files are preferred.


Joel Roth, <[email protected]>


Copyright (c) 2009-2010 by Joel Roth.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.