Nama - digital audio workstation
nama [options] [project_name]
Nama is an application for multitrack recording, non-destructive editing, mixing and mastering using the Ecasound audio engine developed by Kai Vehmanen. Primarily text-based, it also has a simple Tk based GUI.
Features include tracks with multiple versions (AKA takes) buses, effects, presets, sends, inserts, marks, regions, edits, templates and user-defined commands. Nama runs under JACK and ALSA audio frameworks, automatically detects LADSPA plugins, and supports Ladish Level 1 session handling.
Nama's audio processing is non-destructive by default: effects are applied in realtime; edits are accomplished through crossfades. These modifications to a track can be frozen as a new version for that track.
The command prompt accepts Nama commands, Ecasound interactive-mode commands, shell commands and perl code, with command history and autocompletion. The help system provides documentation and keyword search covering Nama commands and effects.
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.
Start Nama in GUI mode
Start Nama in text mode
Specify configuration file (default: ~/.namarc)
Specify project root directory
Create project if it doesn't exist
Use Ecasound's Net-ECI interface
Use Ecasound's libecasoundc interface
Save/restore alsa state with project data
This help display
Debugging options:
Don't load effects data
Don't load project state
Bypass effects data cache
Regenerate the effects data cache
Don't automatically configure engine
Emit debugging information
Simulate JACK environment
Simulate ALSA environment
Don't spawn Ecasound process
Supply a command to execute
The Ecasound audio engine is configured through use of chain setups that specify the signal processing network.
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 an external (usually 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. See 'man ::ChainSetup' for details on how the chain setup created.
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.
start
stop
forward
rewind
setpos
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:
The top section has buttons for creating, loading and saving projects, adding tracks, adding effects to tracks. In short, for setup.
Below are buttons for controlling the transport (start, stop and friends) and for setting marks.
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 parameter of each track. 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 are used to access Nama's more advanced functions.
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 !.
eval
!
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.
help
help command
command
help foo
foo
help_effect foo bar
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.
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.
Nama provides MON and OFF settings for buses. OFF (set by bus_off) removes all member tracks from the chain setup, MON (set by bus_mon restores them. (The bus REC setting is obsolete, now equivalent to MON.)
bus_off
bus_mon
The mixplay command sets the Mixdown track to MON and the Main bus to OFF.
Multiple WAV files ("takes") 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.
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.
region
shift
Each track can have one region definition. For multiple regions, the new_region command takes a pair of marks to create a read-only copy of the current track with region definition.
new_region
You can control this region as you would any other other track, applying effects, adjusting volume, etc.
Currently, regions are not clipped out of their host track. This feature may be implemented in future.
The link_track clones a read-only track from another track, which may belong to a different project.
link_track
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.
add_effect
insert_effect
Nama allows you to place fades on any track. Fades are logarithmic, defined by a mark position and a duration. An additional volume operator, -eadb, is applied to each track to host the envelope controller that implements fades.
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.
send
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.
add_insert
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 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, several system defined bunches are available:
for
new_bunch
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
While Nama can address tracks by either name and track 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.
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.
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.
rec_disable
sax_1.wav ------(3)----> Master_in
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
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.
master_on
master_off
+- Low -+ | | Master_in --- Eq --+- Mid -+--- Boost -> soundcard/wav_out | | +- High +
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
Mixdown rec
Main off
Mixdown proceeds after you start the transport.
As a convenience, Mixdown_nn.wav will be symlinked to <branch_name_nn.wav> in the project directory. (If git is disabled or not available <project_name_nn.wav> is used instead.) Corresponding encoded files are created if the "mixdown_encodings" option is set. Acceptable values are a space-separated list. The default is "mixdown_encodings: ogg mp3".
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.
preview
doodle
arm
The save command is the usual way to save your work. Settings related to the state of the current mix are saved in the file State.json in the current project directory. State.json is tracked by git.
save
save updates several other data files as well:
Aux.json, in the current project directory, contains data that is part of the project (such as command history and track comments) with no direct effect on the project audio.
global_effect_chains.json, in the project root directory, contains system and user defined effect chains.
save somename.json save to a file of that name. Similarly get somename.json will load the corresponding file. The .json suffix may be omitted if git is disabled in .namarc.
save somename.json
get somename.json
To use git for version control, you must have git installed and, "use_git: 1" must be set in .namarc.
You can issue git commands in the normal way, and Nama will stay out of your way. Note that merging of branches is untested.
Use the save command periodically. On each save command, changes to State.json will be committed to the repository. The commit message will include a list of commands executed since the previous commit.
The save and get commands for branches behave in a similar way to save/restore of named files.
get
You can say save initial-mix and get initial-mix and have them behave as expected, without being familiar with Git.
save initial-mix
get initial-mix
What actually happens: save initial-mix will save project state to State.json, commit changes to that file to the git repository, and tag current branch's HEAD commit as "initial-mix". The current branch does not change, remains in the default branch, "master".
Later on, on typing get initial-mix, Nama automatically promotes the tagged commit "initial-mix" to a branch named "initial-mix-branch" which becomes the current branch.
If you want to start a new branch at tag "initial-mix" you can say this:
new_branch compressed-mix initial-mix
When you type quit Nama will automatically save your work to State.json. This will overwrite previous settings in State.json. If you don't want this behavior, use Ctrl-C to exit Nama.
quit
Use source ports or source filename.ports to ask Nama to connect multiple JACK ports listed in a file (trackname.ports or filename.ports) to the input ports for that track, which will be set to ecasound:trackname_in_1 for mono. A stereo track will use ecasound:trackname_in_2 as well.
If the track is stereo, ports from the list are alternately connected to left and right channels. Larger numbers of channels are handled similarly.
An edit is an audio clip associated with a particular track and version. The edit replaces part of the original WAV file, allowing you to fix wrong notes, or substitute one phrase for another.
Each track can host multiple edits. Edits are non-destructive; they are achieved by using Ecasound's ability to crossfade and sequence.
Select the track to be edited and the correct version.
Before creating the edit, you will now need to create three marks:
play start point =item * rec start point =item * rec end point
The edit will replace the audio between the rec start and rec end points.
There are two ways to set these points.
Position the playback head a few seconds before the edit. Enter the set_edit_points command. This will start the engine. Hit the P key three times to designate the playback start, punch-in and punch-out positions.
Position the playback head at the position you want playback for the edit to start. Enter the set_play_start_mark command.
Use the same procedure to set the rec start and rec end positions using the set_rec_start_mark and set_rec_end_mark commands.
Type new_edit play_start_mark rec_start_mark rec_end_mark.)
Enter the new_edit command to create the necessary tracks and data structures.
Use preview_edit to confirm the edit positions. The engine will run and you will hear the host track with the target region removed. Playback will be restricted to the edit region. You may use preview_out to hear the clip to be removed.
Use list_marks to see the edit marks and modify_mark to nudge them into perfect position.
Once you are satisfied with the mark positions, you are ready to record your edit.
Enter start_edit. Playback will begin at first mark. The replacement clip will be recorded from the source specified in the original track.
Each start_edit command will record an additional version on the edit track. redo_edit will delete (destructively) the most recent audio clip and begin recording anew.
You may specify another range for editing and use the editing procedure again as many times as you like. Edits may not overlap.
merge_edits will recursively merge all edits applied to the current track and version, creating a new version.
I recommend that you merge edits when you are satisfied, with the results to protect your edits against an accidental change in mark, region or version settings.
restore_edits acts on a merged version of the current track, selecting the prior unmerged version with all edits and region definitions in "live" form. You may continue to create new edits. TO BE IMPLEMENTED
list_edits will label the edits by index and time.
end_edit_mode will restore normal playback mode
destroy_edit Behind the scenes, the host track becomes the mix track to a sub-bus. Sources for the bus are the original audio track, and zero or more edits, each represented by one track object.
help [ <i_help_topic_index> | <s_help_topic_name> | <s_command_name> ]
help marks help 6 help mfx
help_effect <s_label> | <i_unique_id>
help_effect
help_effect 1970 he etd hfx lv2-vocProc
find_effect <s_keyword1> [ <s_keyword2>... ]
find_effect
find_effect compressor fe feedback
exit
memoize
unmemoize
rec start stop
doodle start stop
getpos
start gp
setpos <f_position_seconds>
setpos 65.0
forward <f_increment_seconds>
fw 23.7
rewind <f_decrement_seconds>
rewind 6.5
to_start
to_end
ecasound_start
ecasound_stop
restart_ecasound
rec preview start stop arm
doodle start stop arm
mxd t mxo
mixplay
mixplay start stop mxo
mixoff
automix
mr start stop
add_track <s_name>
add_track
add_track clarinet
add_tracks <s_name1> [ <s_name2>... ]
add_tracks
add_tracks violin viola contra_bass
link_track <s_dest_name> <s_source_name> [ <s_project> ]
link part_1 Mixdown my_long_song_1 link_track piano_conp piano
import_audio <s_full_path_to_file> [ <i_frequency> ]
import_audio
import /home/samples/bells.flac import /home/music/song.mp3 44100
set_track <s_track_field> <value>
set_track
record
mon
off
rec_defeat
rec_enable
source <i_soundcard_channel> | 'null' | <s_jack_client_name> | <s_jack_port_name> | 'jack'
source
source 3 source null src LinuxSampler r synth:output_3 src jack
send <i_soundcard_channel> | <s_jack_client_name> | <s_loop_id>
send 3 send jconvolver
remove_send
stereo
mono
set_version <i_version_number>
set_version
piano version 2 sh
destroy_current_wav
list_versions
vol [ [ + | - | / | * ] <f_volume> ]
vol
vol * 1.5 vol 75 vol - 5.7 vol
mute
unmute
unity
vol 55 unity vol
solo [ <strack_name_1> | <s_bunch_name_1> ] [ <s_track_name_2 | <s_bunch_name_2> ] ...
solo
solo nosolo solo piano bass Drums
nosolo
all
piano mute sax solo all
pan [ <f_pan_position_in_percent> ]
pan
pan 75 p 50 pan
pan_right
pan_left
pan_center
pan_back
show_tracks
show_tracks_all
show_bus_tracks
show_track
show_mode
show_track_latency
show_latency_all
set_region <s_start_mark_name> <s_end_mark_name>
set_region
sax setpos 2.5 mark sax_start sp 120.5 mark sax_end set_region sax_start sax_end
add_region <s_start_mark_name> | <f_start_time> <s_end_mark_name> | <f_end_time> [ <s_region_name> ]
add_region
sax new_region sax_start 66.7 trimmed_sax
remove_region
shift_track <s_start_mark_name> | <i_start_mark_index | <f_start_seconds>
shift_track
piano shift 6.7
unshift_track
modifiers [ Audio file sequencing parameters ]
modifiers
modifiers select 5 15.2
nomodifiers
normalize
fixdc
autofix_tracks
remove_track
bus_rec
bus_version
add_bunch <s_bunch_name> [ <s_track_name_1> | <i_track_index_1> ] ...
add_bunch
new_bunch woodwind nb strings violin cello basso for strings;mute for strings;vol * 0.8
list_bunches
remove_bunch <s_bunch_name> [ <s_bunch_name> ] ...
remove_bunch
add_to_bunch <s_bunch_name> <s_track1> [ <s_track2> ] ...
add_to_bunch
add_to_bunch woodwind oboe sax_1 flute
commit <s_message>
commit
tag <s_tag_name> [<s_message>]
tag
branch <s_branch_name>
branch
list_branches <s_branch_name>
list_branches
new_branch <s_new_branch_name> [<s_existing_branch_name>]
new_branch
save_state [ <s_settings_target> [ <s_message> ] ]
save_state
get_state <s_settings_target>
get_state
list_projects
new_project <s_new_project_name>
new_project
create my_song
load_project <s_existing_project_name>
load_project
load my_old_song
project_name
new_project_template <s_template_name> [ <s_template_description> ]
new_project_template
new_project_template my_band_setup "tracks and busses for bass, drums and me"
use_project_template <s_template_name>
use_project_template
apt my_band_setup
list_project_templates
destroy_project_template <s_template_name1> [ <s_template_name2> ] ...
destroy_project_template
generate
arm_start
connect
disconnect
show_chain_setup
loop <s_start_mark_name> | <i_start_mark_index> | <f_start_time_in_secs> <s_end_mark_name> | <i_end_mark_index> | <f_end_time_in_secs>
loop
loop 1.5 10.0 loop 1 5 loop sax_start 12.6
noloop
add_controller [ <s_operator_id> ] <s_effect_code> [ <f_param1> <f_param2> ] ...
add_controller
add_effect etd 100 2 2 50 50 acl E klg 1 100 200 2 0 100 15 200
add_effect <s_effect_code> [ <f_param1> <f_param2>... ]
help_effect decimator afx decimator 12 22050
append_effect <s_effect_code> [ <f_param1> <f_param2> ] ...
append_effect
apfx var_dali
insert_effect <s_insert_point_id> <s_effect_code> [ <f_param1> <f_param2> ] ...
lfx ifx AF etd 125 2 2 40 60
modify_effect [ <s_effect_id> ] <i_parameter> [ + | - | * | / ] <f_value>
modify_effect
lfx mfx AF 1 62 mfx AF,BG 1 75 mfx CE 6,10 -3 mfx D 4 + 10 mfx A,B,C 3,6 * 5
remove_effect <s_effect_id1> [ <s_effect_id2> ] ...
remove_effect
position_effect <s_id_to_move> <s_position_id>
position_effect
position_effect G F
show_effect [ <s_effect_id1> ] [ <s_effect_id2> ] ...
show_effect
sfx sfx H
list_effects
add_insert ( pre | post ) <s_send_id> [ <s_return_id> ] -or- local (for wet/dry control)
add_insert pre jconvolver ain post jconvolver csound guitar ain local guitar-1-wet afx G2reverb 50 5.0 0.6 0.5 0 -16 -20 afx etc 6 100 45 2.5 guitar wet 25
set_insert_wetness [ pre | post ] <n_wetness>
set_insert_wetness
wet pre 50 set_insert_wetness 100
remove_insert [ pre | post ]
remove_insert
rin remove_insert post
ctrl_register
preset_register
ladspa_register
list_marks
to_mark <s_mark_name> | <i_mark_index>
to_mark
to_mark sax_start tmk 2
add_mark [ <s_mark_id> ]
add_mark
k important
remove_mark [ <s_mark_name> | <i_mark_index> ]
remove_mark
remove_mark important rmk 16
next_mark
previous_mark
name_mark <s_mark_name>
name_mark
modify_mark [ + | - ] <f_seconds>
modify_mark
move_mark + 2.3 mmk 16.8
engine_status
dump_track
dump_group
dump_all
dump_io
list_history
add_send_bus_cooked <s_name> <destination>
add_send_bus_cooked
asbc Reverb jconv
add_send_bus_raw <s_name> <destination>
add_send_bus_raw
asbr Reverb jconv
add_sub_bus <s_name> [ <s_track_name> | <s_jack_client> | <i_soundcard_channel> ]
add_sub_bus
asub Brass asub special csound
update_send_bus <s_name>
update_send_bus
update_send_bus Reverb
remove_bus <s_bus_name>
remove_bus
list_buses
set_bus <s_busname> <key> <value>
set_bus
new_effect_chain <s_name> [ <effect_id_1>, <effect_id_2> ] ...
new_effect_chain
new_effect_chain my_piano nec my_guitar A C F G H
add_effect_chain <s_effect_chain_name>
add_effect_chain
aec my_piano
overwrite_effect_chain <s_effect_chain_name>
overwrite_effect_chain
delete_effect_chain <s_effect_chain_name>
delete_effect_chain
find_effect_chains [ <s_key_1> <s_value_1> ] ...
find_effect_chains
fec
find_user_effect_chains [ <s_key_1> <s_value_1> ] ...
find_user_effect_chains
bypass_effects [ <s_effect_id_1> <s_effect_id_2>... | 'all' ]
bypass_effects
bypass all bypass AF
bring_back_effects [ <s_effect_id_1> <s_effect_id_2> ... | 'all' ]
bring_back_effects
bbfx restore_effect AF bring_back_effects all
new_effect_profile <s_bunch_name> [ <s_effect_profile_name> ]
new_effect_profile
new_bunch Drums snare toms kick nep Drums my_drum_effects
apply_effect_profile <s_effect_profile_name>
apply_effect_profile
destroy_effect_profile <s_effect_profile_name>
destroy_effect_profile
list_effect_profiles
show_effect_profiles
full_effect_profiles
cache_track [ <f_additional_processing_time> ]
cache_track
cache 10
uncache_track
do_script <s_filename>
do_script
do prepare_my_drums
scan
add_fade ( in | out ) marks/times (see examples)
add_fade
fade in mark1 fade out mark2 2 fade out 2 mark2 fade in mark1 mark2
remove_fade <i_fade_index_1> [ <i_fade_index_2> ] ...
remove_fade
list_fade rfd 2
list_fade
add_comment <s_comment>
add_comment
ac "Guitar, treble on 50%"
remove_comment
show_comment
show_comments
add_version_comment <s_comment>
add_version_comment
avc "The good take with the clear 6/8"
remove_version_comment
show_version_comment
show_version_comments_all
set_system_version_comment <s_comment>
set_system_version_comment
midish_command <s_command_text>
midish_command
m tracknew my_midi_track
midish_mode_on
midish_mode_off
midish_mode_off_ready_to_play
midish_mode_off_ready_to_record
new_edit
set_edit_points
list_edits
select_edit <i_edit_index>
select_edit
end_edit_mode
destroy_edit [ <i_edit_index> ]
destroy_edit
preview_edit_in
preview_edit_out
play_edit
record_edit
edit_track
host_track_alias
host_track
version_mix_track
play_start_mark
rec_start_mark
rec_end_mark
set_play_start_mark
set_rec_start_mark
set_rec_end_mark
disable_edits
merge_edits
explode_track
move_to_bus <s_bus_name>
move_to_bus
asub Drums snare mtb Drums
promote_version_to_track <i_version_number>
promote_version_to_track
read_user_customizations
limit_run_time [ <f_additional_seconds> ]
limit_run_time
limit_run_time_off
offset_run <s_mark_name>
offset_run
offset_run_off
view_waveform
edit_waveform
rerecord
for piano guitar;rec rerec
eager off | doodle | preview
eager
eager doodle eager off
analyze_level
for <s_track_name_1> [ <s_track_name_2>} ... ; <s_commands>
for piano guitar;vol / 2;pan 75 for snare kick toms cymbals;mtb Drums
git <s_command_name> [argument,...]
git
edit_rec_setup_hook
edit_rec_cleanup_hook
remove_fader_effect vol | pan | fader
remove_fader_effect
Nama selects realtime or nonrealtime parameters based on the realtime_profile, ecasound_buffersize and ecasound_globals fields in .namarc. You can optionally specify the buffersizes as a multiple of the JACK period size. Note that for best realtime operation under JACK you will have to configure jackd appropriately as well.
The realtime and auto profiles are useful when using Nama/Ecasound for live fx processing or live monitoring.
The realtime profile sets a small buffersize and other low latency settings whenever a soundcard or JACK client is connected.
The nonrealtime profile uses a bigger buffer, providing extended margins for stable operation. It is suitable for post-processing, or for recording without live monitoring responsibilities.
The auto profile defaults to nonrealtime settings. It switches to realtime, low-latency settings when a track has a live input.
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.)
chains
cs-save-as mysetup.ecs
The dump command displays data for the current track. The dumpall command shows all state that would be saved.
dump
dumpall
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 commands, available on Unixlike systems with Perl installed, will pull in Nama and other Perl libraries required for text mode operation:
cpanm Audio::Nama -or- PERL_MM_USE_DEFAULT=1 cpan Audio::Nama
cpanm Audio::Nama
PERL_MM_USE_DEFAULT=1 cpan Audio::Nama
To use the GUI, you will need to install Tk:
cpanm Tk
You may want to install Audio::Ecasound if you prefer not to run Ecasound in server mode:
cpanm Audio::Ecasound
You can pull the source code as follows:
git clone git://github.com/bolangi/nama.git
Consult the BUILD file for build instructions.
The Nama mailing list is a suitable forum for questions regarding Nama installation, usage, bugs, feature requests, etc.
http://www.freelists.org/list/nama
For questions and discussion related to Ecasound
https://lists.sourceforge.net/lists/listinfo/ecasound-list
The modules that make up this application are the preprocessed output from several source files. Patches against these source files are preferred.
Joel Roth, <joelz@pobox.com>
Copyright (c) 2009-2013 by Joel Roth.
This is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License, Version 3.
1 POD Error
The following errors were encountered while parsing the POD:
Unterminated C<...> sequence
To install Audio::Nama, copy and paste the appropriate command in to your terminal.
cpanm
CPAN shell
perl -MCPAN -e shell install Audio::Nama
For more information on module installation, please visit the detailed CPAN module installation guide.