.\" Automatically generated by Pod::Man 4.07 (Pod::Simple 3.32) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is >0, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .if !\nF .nr F 0 .if \nF>0 \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{\ . nr % 0 . nr F 2 . \} .\} .\" ======================================================================== .\" .IX Title "NAMA 1p" .TH NAMA 1p "2017-03-27" "perl v5.24.1" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" Nama \- digital audio workstation .SH "SYNOPSIS" .IX Header "SYNOPSIS" \&\fBnama\fR [\fIoptions\fR] [\fIproject_name\fR] .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fBNama\fR performs multitrack recording, effects processing, editing, mixing, mastering, live performance and general-purpose audio processing, using the Ecasound realtime audio engine. .SS "Audio Functionality" .IX Subsection "Audio Functionality" Audio projects may be developed using tracks, buses, effects, sends, inserts, marks, regions, fades, sequences and edits. Each track may contain one or more \s-1WAV\s0 files, which may be recorded or imported. .PP Effects processing by \s-1LADSPA, LV2\s0 and Ecasound plugins may be performed in realtime, or cached (e.g. frozen) to a file. The user may toggle between cached and dynamic processing for a track. Audio regions may be altered, duplicated, time-shifted or replaced. .PP Nama supports \s-1MIDI\s0 functionality via midish. .SS "Presets and templates" .IX Subsection "Presets and templates" To facilitate reuse, a track's plugins and inserts can be stored as an effect chain. Effect profiles and project templates provide templating for groups of tracks and entire projects, respectively. .SS "Audio framework" .IX Subsection "Audio framework" Audio \s-1IO\s0 is via \s-1JACK\s0 or \s-1ALSA.\s0 Soundcard \s-1IO\s0 is normally routed to \s-1JACK\s0 with transparent fallback to \s-1ALSA.\s0 .SS "Persistence" .IX Subsection "Persistence" Project data parameters related to audio configuration are serialized as \s-1JSON\s0 and tracked using Git when available. The entire project history is retained and may be managed using branches and tags. .PP Nama supports Ladish Level 1 session handling. .SS "User interfaces" .IX Subsection "User interfaces" Nama has fully featured terminal command prompt, a Tk \&\s-1GUI,\s0 and experimental \s-1OSC\s0 and remote-command modes. .PP The command prompt accepts Nama commands, Ecasound interactive-mode commands, shell commands and perl code. .PP It has command history and autocompletion. The help system provides documentation and keyword search covering Nama commands and effects. .PP The hotkey mode provides a convenient way to select, view, and modify effect parameters. .PP By default, Nama displays a graphic user interface while the command processor runs in a terminal window. .SH "OPTIONS" .IX Header "OPTIONS" .IP "\fB\-\-gui, \-g\fR" 12 .IX Item "--gui, -g" Start Nama in \s-1GUI\s0 mode .IP "\fB\-\-text, \-t\fR" 12 .IX Item "--text, -t" Start Nama in text mode .IP "\fB\-\-config, \-f\fR" 12 .IX Item "--config, -f" Specify configuration file (default: ~/.namarc) .IP "\fB\-\-project\-root, \-d\fR" 12 .IX Item "--project-root, -d" Specify project root directory .IP "\fB\-\-create\-project, \-c\fR" 12 .IX Item "--create-project, -c" Create project if it doesn't exist .IP "\fB\-\-net\-eci, \-n\fR" 12 .IX Item "--net-eci, -n" Use Ecasound's Net-ECI interface .IP "\fB\-\-libecasoundc, \-l\fR" 12 .IX Item "--libecasoundc, -l" Use Ecasound's libecasoundc interface .IP "\fB\-\-save\-alsa, \-a\fR" 12 .IX Item "--save-alsa, -a" Save/restore alsa state with project data .IP "\fB\-\-help, \-h\fR" 12 .IX Item "--help, -h" This help display .PP Debugging options: .IP "\fB\-\-no\-static\-effects\-data, \-s\fR" 12 .IX Item "--no-static-effects-data, -s" Don't load effects data .IP "\fB\-\-no\-state, \-m\fR" 12 .IX Item "--no-state, -m" Don't load project state .IP "\fB\-\-no\-static\-effects\-cache, \-e\fR" 12 .IX Item "--no-static-effects-cache, -e" Bypass effects data cache .IP "\fB\-\-regenerate\-effects\-cache, \-r\fR" 12 .IX Item "--regenerate-effects-cache, -r" Regenerate the effects data cache .IP "\fB\-\-no\-reconfigure\-engine, \-R\fR" 12 .IX Item "--no-reconfigure-engine, -R" Don't automatically configure engine .IP "\fB\-\-debugging\-output, \-D\fR" 12 .IX Item "--debugging-output, -D" Emit debugging information .IP "\fB\-\-fake\-jack, \-J\fR" 12 .IX Item "--fake-jack, -J" Simulate \s-1JACK\s0 environment .IP "\fB\-\-fake\-alsa, \-A\fR" 12 .IX Item "--fake-alsa, -A" Simulate \s-1ALSA\s0 environment .IP "\fB\-\-no\-ecasound, \-E\fR" 12 .IX Item "--no-ecasound, -E" Don't spawn Ecasound process .IP "\fB\-\-execute\-command, \-X\fR" 12 .IX Item "--execute-command, -X" Supply a command to execute .SH "CONTROLLING NAMA/ECASOUND" .IX Header "CONTROLLING NAMA/ECASOUND" The Ecasound audio engine is configured through use of \&\fIchain setups\fR that specify the signal processing network. .PP Nama serves as an intermediary, taking high-level commands from the user, generating appropriate chain setups for user tasks such as recording, playback, mixing, etc., and running the audio engine. .SS "Configuration Commands" .IX Subsection "Configuration Commands" Configuration commands affect \fIfuture\fR runs of the audio engine. For example, \fBrec, play, mon\fR and \fBoff\fR determine whether the current track will get its audio stream from an external (e.g. live) source, whether an existing \s-1WAV\s0 file will be played back, and whether a new \s-1WAV\s0 file will be recorded. Nama responds to these commands by reconfiguring the engine and displaying the updated track status. See 'man ::ChainSetup' for details on how the chain setup created. .SS "Realtime Commands" .IX Subsection "Realtime Commands" Once a chain setup is loaded and the engine is launched, commands can be issued to control the realtime behavior of the audio processing engine. These commands include transport \f(CW\*(C`start\*(C'\fR and \f(CW\*(C`stop\*(C'\fR, playback repositioning commands such \f(CW\*(C`forward\*(C'\fR, \f(CW\*(C`rewind\*(C'\fR and \f(CW\*(C`setpos\*(C'\fR. Effects may be added, modified or removed while the engine is running. .SS "Configuration" .IX Subsection "Configuration" General configuration of sound devices and program options is performed by editing the \fI.namarc\fR file. On Nama's first run, a default version of \fI.namarc\fR is usually placed in the user's home directory. .SH "Tk GRAPHICAL UI" .IX Header "Tk GRAPHICAL UI" Invoked by default if Tk is installed, this interface provides a subset of Nama's functionality on two windows: .SS "Main Window" .IX Subsection "Main Window" The top section has buttons for creating, loading and saving projects, adding tracks, adding effects to tracks. In short, for setup. .PP Below are buttons for controlling the transport (start, stop and friends) and for setting marks. .PP The \s-1GUI\s0 project name bar and time display change color to indicate whether the upcoming operation will include live recording (red), mixdown (yellow) or playback (green). .SS "Effects Window" .IX Subsection "Effects Window" The \fBeffects window\fR 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. Any parameter label can be clicked to add a parameter controller. .SS "Terminal Window" .IX Subsection "Terminal Window" The command prompt is available in the terminal window during \s-1GUI\s0 operation. Text commands are used to access Nama's more advanced functions. .SH "TEXT USER INTERFACE" .IX Header "TEXT USER INTERFACE" Press the \fIEnter\fR key if necessary to get the command prompt, which will look something like this: .Sp .RS 12 \&\f(CW\*(C`nama sax (\*(Aqh\*(Aq for help)>\*(C'\fR .RE .PP In this instance, 'sax' is the current track. .PP When using buses, the bus is indicated before the track: .Sp .RS 12 \&\f(CW\*(C`nama Strings/violin (\*(Aqh\*(Aq for help)>\*(C'\fR .RE .PP At the prompt, you can enter Nama and Ecasound commands, Perl code preceded by \f(CW\*(C`eval\*(C'\fR or shell code preceded by \f(CW\*(C`!\*(C'\fR. .PP 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 \f(CW\*(C`eval\*(C'\fR or \f(CW\*(C`!\*(C'\fR the entire line (up to double semicolons ';;' if present) will be given to the corresponding interpreter. .PP You can access command history using up\-arrow/down\-arrow. .PP Type \f(CW\*(C`help\*(C'\fR for general help, \f(CW\*(C`help command\*(C'\fR for help with \&\f(CW\*(C`command\*(C'\fR, \f(CW\*(C`help foo\*(C'\fR for help with commands containing the string \f(CW\*(C`foo\*(C'\fR. \f(CW\*(C`help_effect foo bar\*(C'\fR lists all plugins/presets/controller containing both \fIfoo\fR and \&\fIbar\fR. Tab-completion is provided for Nama commands, Ecasound-iam commands, plugin/preset/controller names, and project names. .PP Many effects have abbreviations, such as 'afx' for \&'add_effect'. .SH "TRACKS" .IX Header "TRACKS" 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. .PP Track output signals are usually mixed and pass through the Master track on the way to soundcard for monitoring. .PP The following sections describes track attributes and their effects. .SS "Width" .IX Subsection "Width" Specifying 'mono' means the track has one input channel, which will be recorded as a mono \s-1WAV\s0 file. Mono track signals are automatically duplicated to stereo and a pan effect is provided. .PP Specifying 'stereo' for a track means that two channels of audio input will be recorded as an interleaved stereo \s-1WAV\s0 file. You can also use a 'stereo' declaration to avoid the automatic channel copy usually applied to single-channel sources. .PP Specifying N channels for a track ('set width N') means N successive input channels will be recorded as an N\-channel interleaved \s-1WAV\s0 file. .SS "\s-1REC/PLAY/MON/OFF\s0" .IX Subsection "REC/PLAY/MON/OFF" Each track, including Master and Mixdown, has its own \&\s-1REC/MON/PLAY/OFF\s0 setting. .PP The \fI\s-1MON\s0\fR setting means that the track source is connected to the track input, and the track output is supplied for monitoring by the Main bus and other submixes if any. .PP The \fI\s-1REC\s0\fR setting prepares the track is ready to record a \&\s-1WAV\s0 file. .PP The \fI\s-1PLAY\s0\fR setting enqueues an audio file for playback from disk as the track source. .PP \&\fI\s-1REC\s0\fR and \fI\s-1PLAY\s0\fR settings also create the monitoring routes associated with \fI\s-1MON\s0\fR status. .PP \&\fI\s-1OFF\s0\fR setting tells Nama to remove the track from the audio network. \fI\s-1OFF\s0\fR status also results when no audio source is available. A track with no recorded \s-1WAV\s0 files will show \s-1OFF\s0 status, even if set to \s-1PLAY.\s0 .PP \fIBus setting\fR .IX Subsection "Bus setting" .PP Buses can force the status of their member tracks to \s-1OFF.\s0 Nama provides \s-1MON\s0 and \s-1OFF\s0 settings for buses. \&\s-1OFF \s0(set by \f(CW\*(C`bus_off\*(C'\fR) removes all member tracks from the chain setup, \s-1MON \s0(set by \f(CW\*(C`bus_mon\*(C'\fR restores them. .PP The \fBmixplay\fR command sets the Mixdown track to \s-1PLAY\s0 and the Main bus to \s-1OFF.\s0 .SS "Version Numbers" .IX Subsection "Version Numbers" Multiple \s-1WAV\s0 files (\*(L"takes\*(R") can be recorded for each track. These are distinguished by a version number that increments with each recording run, i.e. \fIsax_1.wav\fR, \fIsax_2.wav\fR, etc. All \&\s-1WAV\s0 files recorded in the same run have the same version numbers. .PP 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. .PP 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. .PP The Main bus version setting does \fInot\fR currently propagate to other buses. .SS "Marks" .IX Subsection "Marks" Marks in Nama are similar to those in other audio editing software. One limitation is that 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 \&\fIafter\fR defining the region. .SS "Regions" .IX Subsection "Regions" The \f(CW\*(C`region\*(C'\fR command allows you to define endpoints for a portion of an audio file. You can then use the \f(CW\*(C`shift\*(C'\fR command to move the region to the desired time position. .PP Each track can have one region definition. To create multiple regions, the \f(CW\*(C`new_region\*(C'\fR command takes a pair of marks to create a read-only copy of the current track with the specified region definition. .PP You can control this region as you would any other other track, applying effects, adjusting volume, etc. .PP Currently, regions are not clipped out of their host track. This feature may be implemented in future. .PP \fIUsing Tracks from Other Projects\fR .IX Subsection "Using Tracks from Other Projects" .PP The \f(CW\*(C`link_track\*(C'\fR clones a read-only track from another track, which may belong to a different project. .SS "Effects" .IX Subsection "Effects" Each track gets volume and pan effects by default. New effects added using \f(CW\*(C`add_effect\*(C'\fR are applied before pan volume controls. You can position effects anywhere you choose using \f(CW\*(C`insert_effect\*(C'\fR or \f(CW\*(C`position_effect\*(C'\fR. .PP \fIFades\fR .IX Subsection "Fades" .PP Nama allows you to place fades on any track. Fades are defined by mark position and duration. An additional volume operator, \-eadb, is applied to each track to host the envelope controller that implements fades. .PP \fISends and Inserts\fR .IX Subsection "Sends and Inserts" .PP The \f(CW\*(C`send\*(C'\fR command can route a track's post-fader output to a soundcard channel or \s-1JACK\s0 client in addition to the normal mixer input. Nama currently allows one aux send per track. .PP The \f(CW\*(C`add_insert\*(C'\fR command configures a pre\- or post-fader send-and-return to soundcard channels or \s-1JACK\s0 clients. Wet and dry signal paths are provided, with a default setting of 100% wet. .PP Each track can have one pre-fader and one post-fader insert. .SS "Bunches" .IX Subsection "Bunches" A bunch is just a list of track names. Bunch names are used with the keyword \f(CW\*(C`for\*(C'\fR to apply one or more commands to several tracks at once. A bunch can be created with the \f(CW\*(C`new_bunch\*(C'\fR command. Any bus name can also be treated as a bunch. Finally, several system defined bunches are available: .IP "\fBrec\fR, \fBmon\fR, \fBoff\fR" 12 .IX Item "rec, mon, off" All tracks with the corresponding \fIsetting\fR in the current bus .SS "Buses" .IX Subsection "Buses" \fISub Buses\fR .IX Subsection "Sub Buses" .PP \&\fBBuses\fR enable multiple tracks to be routed through a single mix track before feeding the Main mixer bus (or possibly, another bus.) .PP The following commands create a bus and assign three tracks to it. The mix track takes the name of the bus and is stereo by default. .PP .Vb 2 \& # create a bus named Strings with a same\-named mix track \& add_bus Strings \& \& # create tracks for the bus \& add_tracks violin cello bass \& \& # move the tracks from the Main bus (default) to the Strings bus \& for violin cello bass; move_to_bus Strings \& \& # use the mix track to control bus output volume \& Strings vol \- 10 .Ve .PP \fISubmixes\fR .IX Subsection "Submixes" .PP \&\fBSubmixes\fR are a type of bus used to provide instrument monitors, or to send the outputs from multiple user tracks to an external program such as jconverter. .SH "ROUTING" .IX Header "ROUTING" .SS "General Notes" .IX Subsection "General Notes" While Nama can address tracks by either name and track number, the chain setups use the track number exclusively. .PP The Master track (mixer output control) is always chain 1, the Mixdown track is always chain 2. .PP In single-engine mode, 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. In dual-engine mode, \s-1JACK\s0 ports are used for interconnections instead of loop devices. .SS "Flow Diagrams" .IX Subsection "Flow Diagrams" The following diagrams apply to Nama's single-engine, mode. (The same topology is used in dual-engine mode.) .PP Let's examine the signal flow from track 3, the first available user track. Assume track 3 is named \*(L"sax\*(R". .PP We will divide the signal flow into track and mixer sections. Parentheses show the track number/name. .PP The stereo outputs of each user track terminate at Master_in, a loop device at the mixer input. .PP \fITrack, \s-1REC\s0 status\fR .IX Subsection "Track, REC status" .PP .Vb 3 \& Sound device \-\-+\-\-\-(3)\-\-\-\-> Master_in \& /JACK client | \& +\-\-\-(R3)\-\-\-> sax_1.wav .Ve .PP \&\s-1REC\s0 status indicates that the source of the signal is the soundcard or \s-1JACK\s0 client. The input signal will be written directly to a file except in the special preview and doodle modes, or if \f(CW\*(C`rec_disable\*(C'\fR is issued. .PP \fITrack, \s-1MON\s0 status\fR .IX Subsection "Track, MON status" .PP .Vb 1 \& sax_1.wav \-\-\-\-\-\-(3)\-\-\-\-> Master_in .Ve .PP \fIMixer, with mixdown enabled\fR .IX Subsection "Mixer, with mixdown enabled" .PP 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. .PP .Vb 3 \& Master_in \-\-(1)\-\-> Master_out \-\-+\-\-\-\-\-\-\-\-> Sound device \& | \& +\-\->(2)\-\-> Mixdown_1.wav .Ve .PP \fIMastering Mode\fR .IX Subsection "Mastering Mode" .PP In mastering mode (invoked by \f(CW\*(C`master_on\*(C'\fR and released \&\f(CW\*(C`master_off\*(C'\fR) the following network, receives the Master track signal as input and provides an output to the soundcard or \s-1WAV\s0 file. .PP .Vb 5 \& +\- Low \-+ \& | | \& Master_in \-\-\- Eq \-\-+\- Mid \-+\-\-\- Boost \-> soundcard/wav_out \& | | \& +\- High + .Ve .PP The \fBEq\fR track hosts an equalizer. .PP The \fBLow\fR, \fBMid\fR and \fBHigh\fR tracks each apply a bandpass filter, a compressor and a spatialiser. .PP The \fBBoost\fR track applies gain and a limiter. .PP These effects and their default parameters are defined in the configuration file \fI.namarc\fR. .SS "Mixdown" .IX Subsection "Mixdown" The \f(CW\*(C`mixdown\*(C'\fR command configures Nama for mixdown. The Mixdown track is set to \s-1REC \s0(equivalent to \f(CW\*(C`Mixdown rec\*(C'\fR) and the audio monitoring output is turned off (equivalent to \&\f(CW\*(C`Master off\*(C'\fR). .PP Mixdown proceeds after you start the transport. .PP As a convenience, Mixdown_nn.wav will be symlinked to \&\fI in the project directory. (If git is disabled or not available \fI is used instead.) Corresponding encoded files are created if the \&\*(L"mixdown_encodings\*(R" option is set. Acceptable values are a space-separated list. The default is \*(L"mixdown_encodings: ogg mp3\*(R". .SS "The Preview and Doodle Modes, and the Eager Setting" .IX Subsection "The Preview and Doodle Modes, and the Eager Setting" These non-recording modes, invoked by \f(CW\*(C`preview\*(C'\fR and \&\f(CW\*(C`doodle\*(C'\fR commands tweak the routing rules for special purposes. \fBPreview mode\fR disables recording of \s-1WAV\s0 files to disk. \fBDoodle mode\fR disables \s-1PLAY\s0 inputs while excluding any tracks with the same source as a currently routed track. The \f(CW\*(C`arm\*(C'\fR command releases both preview and doodle modes. .PP The eager setting causes the engine to start immediately following a reconfiguration. .PP These modes are unnecessary in Nama's dual-engine mode. .SS "Saving Projects" .IX Subsection "Saving Projects" The \f(CW\*(C`save\*(C'\fR command is the usual way to preserve your work. .PP When you type \f(CW\*(C`save\*(C'\fR, Settings related to the state of the project are saved in the file \fIState.json\fR in the current project directory. \fIState.json\fR is tracked by git. .PP \&\f(CW\*(C`save\*(C'\fR updates several other data files as well: .PP \&\fIAux.json\fR, in the current project directory, contains data that is part of the project (such as command history, track comments, and current operating modes) but with no direct effect on the project audio. .PP \&\fIglobal_effect_chains.json\fR, in the project root directory, contains system and user defined effect chains. .PP \fISave without Git\fR .IX Subsection "Save without Git" .PP \&\f(CW\*(C`save somename.json\*(C'\fR will save project state to a file of that name. Similarly \f(CW\*(C`get somename.json\*(C'\fR will load the corresponding file. The \fI.json\fR suffix may be omitted if \&\*(L"use_git: 0\*(R" is set in \fI.namarc\fR. .PP \fISave with Git\fR .IX Subsection "Save with Git" .PP When git is installed, Nama uses it to store snapshots of every step in the history of your project. .PP While you can continue using the same \f(CW\*(C`save\*(C'\fR and \f(CW\*(C`get\*(C'\fR with snapshots, the underlying version control gives them huge advantages over files: (1) they can sprout branches, (2) they retain their history and (3) they are never overwritten. .PP When you type \f(CW\*(C`save initial\-mix\*(C'\fR, the latest snapshot is tagged with the name \*(L"initial-mix\*(R", which you can recall later with the command \f(CW\*(C`get initial\-mix\*(C'\fR. .PP You can include a comment with the snapshot: .PP \&\f(CW\*(C`save initial\-mix "sounds good enough to send to the front office"\*(C'\fR .PP Nama lets you create new branches, starting at any snapshot. .PP To start a new branch called \fIcompressed-mix\fR starting at a snapshot called \fIinitial-mix\fR you would say: .PP \&\f(CW\*(C`new_branch compressed\-mix initial\-mix\*(C'\fR .PP If you want to go back to working on the master branch, use \&\f(CW\*(C`branch master\*(C'\fR. .PP You can also issue native git commands at the Nama prompt. .PP \fIGit history example\fR .IX Subsection "Git history example" .PP All projects begin on the \*(L"master\*(R" branch. Because this is the default branch, it is not displayed in the prompt. Otherwise \*(L"master\*(R" is not special in any way. .PP In the graphs below, the letters indicate named snapshots. .PP .Vb 7 \& create test\-project \& ... \& save a \& ... \& save b \& ... \& save c \& \& \-\-\-a\-\-\-b\-\-\-c (master) \& \& get a \& ... \& save d \& ... \& save e \& ... \& save f \& \& d\-\-\-e\-\-\-f (a\-branch) \& / \& \-\-\-\-\-a\-\-\-\-b\-\-\-c (master) .Ve .PP Now, you want to go back to try something different at \*(L"c\*(R": .PP .Vb 3 \& get c \& ... \& save g \& \& d\-\-\-e\-\-\-f (a\-branch) \& / \& \-\-\-\-a\-\-\-\-b\-\-\-c (master) \& \e \& g (c\-branch CURRENT HEAD) .Ve .PP You could also go back to master, and restart from there: .PP .Vb 5 \& get master \& ... \& save h \& ... \& save i \& \& d\-\-\-e\-\-\-f (a\-branch) \& / \& \-\-\-\-a\-\-\-\-b\-\-\-c\-\-\-h\-\-\-i (master CURRENT HEAD) \& \e \& g (c\-branch) .Ve .PP While the merging of branches may be possible, the function has not been tested. .SS "Exiting" .IX Subsection "Exiting" When you type \f(CW\*(C`quit\*(C'\fR Nama will automatically save your work to \fIState.json\fR. If you \fIdon't\fR want this behavior, use Ctrl-C to exit Nama. .SS "Jack ports list file" .IX Subsection "Jack ports list file" Use \fIsource filename.ports\fR to ask Nama to connect multiple \s-1JACK\s0 ports listed in a file \&\fIfilename.ports\fR to the input port(s) of that track. .PP If the track is stereo, ports from the list are alternately connected to left and right channels. .SS "Track edits" .IX Subsection "Track edits" An edit consists of audio clips and data structures associated with a particular track and version. The edit replaces part of the original \s-1WAV\s0 file, allowing you to fix wrong notes, or substitute one phrase for another. .PP Each track can host multiple edits. Edits are non-destructive; they are achieved by using Ecasound's ability to crossfade and sequence. .PP Select the track to be edited and the correct version. .PP Before creating the edit, you will now need to create three marks: .IP "\(bu" 4 play start point =item * rec start point =item * rec end point .PP The edit will replace the audio between the rec start and rec end points. .PP There are two ways to set these points. .PP \fIset_edit_points command\fR .IX Subsection "set_edit_points command" .PP Position the playback head a few seconds before the edit. Enter the \fIset_edit_points\fR command. This will start the engine. Hit the \fBP\fR key three times to designate the playback start, punch-in and punch-out positions. .PP \fISpecify points individually\fR .IX Subsection "Specify points individually" .PP Position the playback head at the position you want playback for the edit to start. Enter the \fIset_play_start_mark\fR command. .PP Use the same procedure to set the rec start and rec end positions using the \fIset_rec_start_mark\fR and \fIset_rec_end_mark\fR commands. .PP \fIProvide marks as arguments to \fInew_edit\fI (not implemented)\fR .IX Subsection "Provide marks as arguments to new_edit (not implemented)" .PP Type \fInew_edit play_start_mark rec_start_mark rec_end_mark\fR.) .PP \fICreate the edit\fR .IX Subsection "Create the edit" .PP Enter the \fInew_edit\fR command to create the necessary tracks and data structures. .PP Use \fIpreview_edit\fR 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 \fIpreview_out\fR to hear the clip to be removed. .PP Use \fIlist_marks\fR to see the edit marks and \fImodify_mark\fR to nudge them into perfect position. .PP Once you are satisfied with the mark positions, you are ready to record your edit. .PP Enter \fIstart_edit\fR. Playback will begin at first mark. The replacement clip will be recorded from the source specified in the original track. .PP Each \fIstart_edit\fR command will record an additional version on the edit track. \fIredo_edit\fR will delete (destructively) the most recent audio clip and begin recording anew. .PP You may specify another range for editing and use the editing procedure again as many times as you like. Edits may not overlap. .PP \fIMerging edits\fR .IX Subsection "Merging edits" .PP \&\fImerge_edits\fR will recursively merge all edits applied to the current track and version, creating a new version. .PP 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. .PP \&\fIrestore_edits\fR acts on a merged version of the current track, selecting the prior unmerged version with all edits and region definitions in \*(L"live\*(R" form. You may continue to create new edits. \fB\s-1TO BE IMPLEMENTED\s0\fR .PP \&\fIlist_edits\fR will label the edits by index and time. .PP \&\fIend_edit_mode\fR will restore normal playback mode .PP \&\fIdestroy_edit\fR Behind the scenes, the host track becomes the mix track to a bus. Sources for the bus are the original audio track, and zero or more edits, each represented by one track object. .SH "REMOTE CONTROL" .IX Header "REMOTE CONTROL" You can send now send commands from a remote process, and also get information back. Understand that this code opens a remote execution hole. .PP In \fI.namarc\fR you need something like: .PP .Vb 1 \& remote_control_port: 57000 .Ve .PP Then Nama will set up a listener for remote commands. .PP The usual return value will be a single newline. .PP However, if you send an 'eval' command followed by perl code, the return value will be the result of the perl code executed with a newline appended. If the result is a list, the items will be joined by spaces into a single string. .PP If the result is an object or data structure, it will be returned in a serialized form. .PP For example, if you send this string: .PP .Vb 1 \& eval $this_track\->name .Ve .PP The return value will be the name of the current track. .SH "TEXT COMMANDS" .IX Header "TEXT COMMANDS" .SS "Help commands" .IX Subsection "Help commands" \fBhelp\fR (h) \- Display help on Nama commands. .IX Subsection "help (h) - Display help on Nama commands." .Sp .RS 8 help [ | | ] .Sp help marks # display the help category marks and all commands containing marks help 6 # display help on the effects category help mfx # display help on modify_effect \- shortcut mfx .RE .PP \fBhelp_effect\fR (hfx he) \- Display detailed help on \s-1LADSPA\s0 or \s-1LV2\s0 effects. .IX Subsection "help_effect (hfx he) - Display detailed help on LADSPA or LV2 effects." .Sp .RS 8 help_effect | .Sp help_effect 1970 # display help on Fons Adriaensen's parametric \s-1EQ \s0(\s-1LADSPA\s0) help_effect etd # prints a short message to consult Ecasound manpage, # where the etd chain operator is documented. hfx lv2\-vocProc # display detailed help on the \s-1LV2\s0 VocProc effect .RE .PP \fBfind_effect\fR (ffx fe) \- Display one-line help for effects matching the search string(s). .IX Subsection "find_effect (ffx fe) - Display one-line help for effects matching the search string(s)." .Sp .RS 8 find_effect [ ... ] .Sp find_effect compressor # List all effects containing \*(L"compressor\*(R" in their name or parameters fe feedback # List all effects matching \*(L"feedback\*(R" # (for example a delay with a feedback parameter) .RE .SS "General commands" .IX Subsection "General commands" \fBexit\fR (quit q) \- Exit Nama, saving settings (the current project). .IX Subsection "exit (quit q) - Exit Nama, saving settings (the current project)." .Sp .RS 8 exit .RE .PP \fBmemoize\fR \- Enable \s-1WAV\s0 directory caching, so Nama won't have to scan the entire project folder for new files after every run. (default) .IX Subsection "memoize - Enable WAV directory caching, so Nama won't have to scan the entire project folder for new files after every run. (default)" .Sp .RS 8 memoize .RE .PP \fBunmemoize\fR \- Disable \s-1WAV\s0 directory caching. .IX Subsection "unmemoize - Disable WAV directory caching." .Sp .RS 8 unmemoize .RE .SS "Transport commands" .IX Subsection "Transport commands" \fBstop\fR (s) \- Stop transport. Stop the engine, when recording or playing back. .IX Subsection "stop (s) - Stop transport. Stop the engine, when recording or playing back." .Sp .RS 8 stop .RE .PP \fBstart\fR (t) \- Start the transport rolling .IX Subsection "start (t) - Start the transport rolling" .Sp .RS 8 start .Sp rec # prepare the curent track to be recorded. start # Start the engine/transport rolling (play now!) stop # Stop the engine, cleanup, prepare to review .RE .PP \fBgetpos\fR (gp) \- Get the current playhead position (in seconds). .IX Subsection "getpos (gp) - Get the current playhead position (in seconds)." .Sp .RS 8 getpos .Sp start # Start the engine. gp # Get the current position of the playhead. Where am I? .RE .PP \fBsetpos\fR (sp) \- Set current playhead position (in seconds). .IX Subsection "setpos (sp) - Set current playhead position (in seconds)." .Sp .RS 8 setpos .Sp setpos 65.5 .RE .PP \fBforward\fR (fw) \- Move playback position forwards (in seconds). .IX Subsection "forward (fw) - Move playback position forwards (in seconds)." .Sp .RS 8 forward .Sp fw 23.7 .RE .PP \fBrewind\fR (rw) \- Move playback position backwards (in seconds). .IX Subsection "rewind (rw) - Move playback position backwards (in seconds)." .Sp .RS 8 rewind .Sp rewind 6.5 .RE .PP \fBto_start\fR (beg) \- Set the playback head to the start. A synonym for setpos 0. .IX Subsection "to_start (beg) - Set the playback head to the start. A synonym for setpos 0." .Sp .RS 8 to_start .RE .PP \fBto_end\fR (end) \- Set the playback head to end minus 10 seconds. .IX Subsection "to_end (end) - Set the playback head to end minus 10 seconds." .Sp .RS 8 to_end .RE .PP \fBecasound_start\fR \- Ecasound-only start. Nama will not monitor the transport. For diagnostic use. .IX Subsection "ecasound_start - Ecasound-only start. Nama will not monitor the transport. For diagnostic use." .Sp .RS 8 ecasound_start .RE .PP \fBecasound_stop\fR \- Ecasound-only stop. Nama will not monitor the transport. For diagnostic use. .IX Subsection "ecasound_stop - Ecasound-only stop. Nama will not monitor the transport. For diagnostic use." .Sp .RS 8 ecasound_stop .RE .PP \fBrestart_ecasound\fR \- Restart the Ecasound process. May help if Ecasound has crashed or is behaving oddly. .IX Subsection "restart_ecasound - Restart the Ecasound process. May help if Ecasound has crashed or is behaving oddly." .Sp .RS 8 restart_ecasound .RE .PP \fBpreview\fR (song) \- Enter the preview mode. Configure Nama for playback and passthru of live inputs without recording (for mic test, rehearsal, etc.) .IX Subsection "preview (song) - Enter the preview mode. Configure Nama for playback and passthru of live inputs without recording (for mic test, rehearsal, etc.)" .Sp .RS 8 preview .Sp rec # Set the current track to record from its source. preview # Enter the preview mode. start # Playback begins. You can play live, adjust effects, # forward, rewind, etc. stop # Stop the engine/transport. arm # Restore to normal recording/playback mode. .RE .PP \fBdoodle\fR (live) \- Enter doodle mode. Passthru of live inputs without recording. No playback. Intended for rehearsing and adjusting effects. .IX Subsection "doodle (live) - Enter doodle mode. Passthru of live inputs without recording. No playback. Intended for rehearsing and adjusting effects." .Sp .RS 8 doodle .Sp doodle # Switch into doodle mode. start # start the engine/transport running. (fool around) stop # Stop the engine. arm # Return to normal mode, allowing play and record to disk .RE .SS "Mix commands" .IX Subsection "Mix commands" \fBmixdown\fR (mxd) \- Enter mixdown mode for subsequent engine runs. You will record a new mix each time you use the start command until you leave the mixdown mode using \*(L"mixoff\*(R". .IX Subsection "mixdown (mxd) - Enter mixdown mode for subsequent engine runs. You will record a new mix each time you use the start command until you leave the mixdown mode using mixoff." .Sp .RS 8 mixdown .Sp mixdown # Enter mixdown mode start # Start the transport. The mix will be recorded by the # Mixdown track. The engine will run until the # longest track ends. (After mixdown Nama places # a symlink to the \s-1WAV\s0 file and possibly ogg/mp3 # encoded versions in the project directory.) mixoff # Return to the normal mode. .RE .PP \fBmixplay\fR (mxp) \- Enter Mixdown play mode, setting user tracks to \s-1OFF \s0 and only playing the Mixdown track. Use \*(L"mixoff\*(R" to leave this mode. .IX Subsection "mixplay (mxp) - Enter Mixdown play mode, setting user tracks to OFF and only playing the Mixdown track. Use mixoff to leave this mode." .Sp .RS 8 mixplay .Sp mixplay # Enter the Mixdown play mode. start # Play the Mixdown track. stop # Stop playback. mixoff # Return to normal mode. .RE .PP \fBmixoff\fR (mxo) \- Leave the mixdown or mixplay mode. Sets Mixdown track to \s-1OFF, \s0 user tracks to \s-1MON.\s0 .IX Subsection "mixoff (mxo) - Leave the mixdown or mixplay mode. Sets Mixdown track to OFF, user tracks to MON." .Sp .RS 8 mixoff .RE .PP \fBautomix\fR \- Normalize track volume levels and fix DC-offsets, then mixdown. .IX Subsection "automix - Normalize track volume levels and fix DC-offsets, then mixdown." .Sp .RS 8 automix .RE .PP \fBmaster_on\fR (mr) \- Turn on the mastering mode, adding tracks Eq, Low, Mid, High and Boost, if necessary. The mastering setup allows for one \s-1EQ\s0 and a three-band multiband compression and a final boosting stage. Using \*(L"master_off\*(R" to leave the mastering mode. .IX Subsection "master_on (mr) - Turn on the mastering mode, adding tracks Eq, Low, Mid, High and Boost, if necessary. The mastering setup allows for one EQ and a three-band multiband compression and a final boosting stage. Using master_off to leave the mastering mode." .Sp .RS 8 master_on .Sp mr # Turn on master mode. start # Start the playback. # Now you can adjust the Boost or global \s-1EQ.\s0 stop # Stop the engine. .RE .PP \fBmaster_off\fR (mro) \- Leave mastering mode. The mastering network is disabled. .IX Subsection "master_off (mro) - Leave mastering mode. The mastering network is disabled." .Sp .RS 8 master_off .RE .SS "Track commands" .IX Subsection "Track commands" \fBadd_track\fR (add new) \- Create a new audio track. .IX Subsection "add_track (add new) - Create a new audio track." .Sp .RS 8 add_track .Sp add_track clarinet # create a mono track called clarinet with input # from soundcard channel 1. .RE .PP \fBadd_tracks\fR \- Create one or more new tracks in one go. .IX Subsection "add_tracks - Create one or more new tracks in one go." .Sp .RS 8 add_tracks [ ... ] .Sp add_tracks violin viola contra_bass .RE .PP \fBadd_midi_track\fR (amt) \- Create a new \s-1MIDI\s0 track. .IX Subsection "add_midi_track (amt) - Create a new MIDI track." .Sp .RS 8 add_midi_track .RE .PP \fBlink_track\fR (link) \- Create a read-only track, that uses audio files from another track. .IX Subsection "link_track (link) - Create a read-only track, that uses audio files from another track." .Sp .RS 8 link_track [] .Sp link my_song_part1 Mixdown part_1 # Create a read-only track \*(L"part_1\*(R" in the current project # using files from track \*(L"Mixdown\*(R" in project \*(L"my_song_part_1\*(R". # link_track compressed_piano piano # Create a read-only track \*(L"compressed_piano\*(R" using files from # track \*(L"piano\*(R". This is one way to provide wet and dry # (processed and unprocessed) versions of same source. # Another way would be to use inserts. .RE .PP \fBimport_audio\fR (import) \- Import a sound file (wav, ogg, mp3, etc.) to the current track, resampling it if necessary. The imported file is set as current version. .IX Subsection "import_audio (import) - Import a sound file (wav, ogg, mp3, etc.) to the current track, resampling it if necessary. The imported file is set as current version." .Sp .RS 8 import_audio [ ] .Sp import /home/samples/bells.flac # import the file bells.flac to the current track import /home/music/song.mp3 44100 # import song.mp3, specifying the frequency .RE .PP \fBset_track\fR \- Directly set current track parameters (use with care!). .IX Subsection "set_track - Directly set current track parameters (use with care!)." .Sp .RS 8 set_track .RE .PP \fBrecord\fR (rec) \- Set the current track to record its source. Creates the monitoring route if necessary. Recording to disk will begin on the next engine start. Use the \*(L"mon\*(R" or \*(L"off\*(R" commands to disable recording. .IX Subsection "record (rec) - Set the current track to record its source. Creates the monitoring route if necessary. Recording to disk will begin on the next engine start. Use the mon or off commands to disable recording." .Sp .RS 8 record .Sp rec # Set the current track to record. start # A new version (take) will be written to disk, # creating a file such as sax_1.wav. Other tracks # may be recording or playing back as well. stop # Stop the recording/playback, automatically enter playback mode .RE .PP \fBplay\fR \- Set the current track to playback the currently selected version. Creates the monitoring route if necessary. The selected audio file will play the next time the engine starts. .IX Subsection "play - Set the current track to playback the currently selected version. Creates the monitoring route if necessary. The selected audio file will play the next time the engine starts." .Sp .RS 8 play .RE .PP \fBmon\fR \- Create a monitoring route for the current track at the next opportunity. .IX Subsection "mon - Create a monitoring route for the current track at the next opportunity." .Sp .RS 8 mon .RE .PP \fBoff\fR \- Remove the monitoring route for the current track and all track I/O at the next opportunity. You can re-include it using \*(L"mon\*(R", \*(L"play\*(R" or \*(L"rec\*(R" commands. .IX Subsection "off - Remove the monitoring route for the current track and all track I/O at the next opportunity. You can re-include it using mon, play or rec commands." .Sp .RS 8 off .RE .PP \fBsource\fR (src r) \- Set the current track's input (source), for example to a soundcard channel, or \s-1JACK\s0 client name .IX Subsection "source (src r) - Set the current track's input (source), for example to a soundcard channel, or JACK client name" .Sp .RS 8 source | | | | | | 'jack' | 'null' .Sp source 3 # Take input from soundcard channel 3 (3/4 if track is stereo) # source null # Track's input is silence. This is useful for when an effect such # as a metronome or signal generator provides a source. # source LinuxSampler # Record input from the \s-1JACK\s0 client named LinuxSampler. # source synth:output_3 # record from the \s-1JACK\s0 client synth, using the # port output_3 (see he jackd and jack_lsp manpages # for more information). # source jack # This leaves the track input exposed as \s-1JACK\s0 ports # such as Nama:sax_in_1 for manual connection. # source kit.ports # The \s-1JACK\s0 ports listed in the file kit.ports (if it exists) # will be connected to the track input. # # Ports are listed pairwise in the .ports files for stereo tracks. # This is convenient for use with the Hydrogen drumkit, # whose outputs use one \s-1JACK\s0 port per voice. .RE .PP \fBsend\fR (aux) \- Set an aux send for the current track. Remove sends with remove_send . .IX Subsection "send (aux) - Set an aux send for the current track. Remove sends with remove_send ." .Sp .RS 8 send | | .Sp send 3 # Send the track output to soundcard channel 3. send jconvolver # Send the track output to the jconvolver \s-1JACK\s0 client. .RE .PP \fBremove_send\fR (nosend noaux) \- Remove aux send from the current track. .IX Subsection "remove_send (nosend noaux) - Remove aux send from the current track." .Sp .RS 8 remove_send .RE .PP \fBstereo\fR \- Configure the current track to record two channels of audio .IX Subsection "stereo - Configure the current track to record two channels of audio" .Sp .RS 8 stereo .RE .PP \fBmono\fR \- Configure the current track to record one channel of audio .IX Subsection "mono - Configure the current track to record one channel of audio" .Sp .RS 8 mono .RE .PP \fBset_version\fR (version ver) \- Select a \s-1WAV\s0 file, by version number, for current track playback (Overrides a bus-level version setting) .IX Subsection "set_version (version ver) - Select a WAV file, by version number, for current track playback (Overrides a bus-level version setting)" .Sp .RS 8 set_version .Sp piano # Select the piano track. version 2 # Select the second recorded version sh # Display information about the current track .RE .PP \fBdestroy_current_wav\fR \- Remove the currently selected recording version from the current track after confirming user intent. This \s-1DESTRUCTIVE\s0 command removes the underlying audio file from your disk. Use with caution. .IX Subsection "destroy_current_wav - Remove the currently selected recording version from the current track after confirming user intent. This DESTRUCTIVE command removes the underlying audio file from your disk. Use with caution." .Sp .RS 8 destroy_current_wav .RE .PP \fBlist_versions\fR (lver) \- List \s-1WAV\s0 versions of the current track. This will print the numbers. .IX Subsection "list_versions (lver) - List WAV versions of the current track. This will print the numbers." .Sp .RS 8 list_versions .Sp list_versions # May print something like: 1 2 5 7 9 # The other versions might have been deleted earlier by you. .RE .PP \fBvol\fR (v) \- Change or show the current track's volume. .IX Subsection "vol (v) - Change or show the current track's volume." .Sp .RS 8 vol [ [ + | \- | / | * ] ] .Sp vol * 1.5 # Multiply the current volume by 1.5 vol 75 # Set the current volume to 75 # Depending on your namarc configuration, this means # either 75% of full volume (\-ea) or 75 dB (\-eadb). vol \- 5.7 # Decrease current volume by 5.7 (percent or dB) vol # Display the volume setting of the current track. .RE .PP \fBmute\fR (c cut) \- Mute the current track by reducing the volume parameter. Use \*(L"unmute\*(R" to restore the former volume level. .IX Subsection "mute (c cut) - Mute the current track by reducing the volume parameter. Use unmute to restore the former volume level." .Sp .RS 8 mute .RE .PP \fBunmute\fR (nomute C uncut) \- Restore previous volume level. It can be used after mute or solo. .IX Subsection "unmute (nomute C uncut) - Restore previous volume level. It can be used after mute or solo." .Sp .RS 8 unmute .RE .PP \fBunity\fR \- Set the current track's volume to unity. This will change the volume to the default value (100% or 0 dB). .IX Subsection "unity - Set the current track's volume to unity. This will change the volume to the default value (100% or 0 dB)." .Sp .RS 8 unity .Sp vol 55 # Set volume to 55 unity # Set volume to the unity value. vol # Display the current volume (should be 100 or 0, # depending on your settings in namarc.) .RE .PP \fBsolo\fR (sl) \- Mute all tracks but the current track or the tracks or bunches specified. You can reverse this with nosolo. .IX Subsection "solo (sl) - Mute all tracks but the current track or the tracks or bunches specified. You can reverse this with nosolo." .Sp .RS 8 solo [ | ] [ ] ... .Sp solo # Mute all tracks but the current track. nosolo # Unmute all tracks, restoring prior state. solo piano bass Drums # Mute everything but piano, bass and Drums. .RE .PP \fBnosolo\fR (nsl) \- Unmute all tracks which have been muted by a solo command. Tracks that had been muted before the solo command stay muted. .IX Subsection "nosolo (nsl) - Unmute all tracks which have been muted by a solo command. Tracks that had been muted before the solo command stay muted." .Sp .RS 8 nosolo .RE .PP \fBall\fR \- Unmute all tracks that are currently muted .IX Subsection "all - Unmute all tracks that are currently muted" .Sp .RS 8 all .Sp piano # Select track piano mute # Mute the piano track. sax # Select the track sax. solo # Mute other tracks nosolo # Unmute other tracks (piano is still muted) all # all tracks play .RE .PP \fBpan\fR (p) \- Change or display the current panning position of the current track. Panning is moving the audio in the stereo panorama between right and left. Position is given in percent. 0 is hard left and 100 hard right, 50% is dead centre. .IX Subsection "pan (p) - Change or display the current panning position of the current track. Panning is moving the audio in the stereo panorama between right and left. Position is given in percent. 0 is hard left and 100 hard right, 50% is dead centre." .Sp .RS 8 pan [ ] .Sp pan 75 # Pan the track to a position between centre and hard right p 50 # Move the current track to the centre. pan # Show the current position of the track in the stereo panorama. .RE .PP \fBpan_right\fR (pr) \- Pan the current track hard right. this is a synonym for pan 100. Can be reversed with pan_back. .IX Subsection "pan_right (pr) - Pan the current track hard right. this is a synonym for pan 100. Can be reversed with pan_back." .Sp .RS 8 pan_right .RE .PP \fBpan_left\fR (pl) \- Pan the current track hard left. This is a synonym for pan 0. Can be reversed with pan_back. .IX Subsection "pan_left (pl) - Pan the current track hard left. This is a synonym for pan 0. Can be reversed with pan_back." .Sp .RS 8 pan_left .RE .PP \fBpan_center\fR (pc) \- Pan the current track to the centre. This is a synonym for pan 50. Can be reversed with pan_back. .IX Subsection "pan_center (pc) - Pan the current track to the centre. This is a synonym for pan 50. Can be reversed with pan_back." .Sp .RS 8 pan_center .RE .PP \fBpan_back\fR (pb) \- Restore the current track's pan position prior to pan_left, pan_right or pan_center commands. .IX Subsection "pan_back (pb) - Restore the current track's pan position prior to pan_left, pan_right or pan_center commands." .Sp .RS 8 pan_back .RE .PP \fBshow_tracks\fR (lt show) \- Show a list of tracks, including their index number, volume, pan position, recording status and source. .IX Subsection "show_tracks (lt show) - Show a list of tracks, including their index number, volume, pan position, recording status and source." .Sp .RS 8 show_tracks .RE .PP \fBshow_tracks_all\fR (sha showa) \- Like show_tracks, but includes hidden tracks as well. Useful for debugging. .IX Subsection "show_tracks_all (sha showa) - Like show_tracks, but includes hidden tracks as well. Useful for debugging." .Sp .RS 8 show_tracks_all .RE .PP \fBshow_bus_tracks\fR (ltb showb) \- Show a list of tracks in the current bus. .IX Subsection "show_bus_tracks (ltb showb) - Show a list of tracks in the current bus." .Sp .RS 8 show_bus_tracks .RE .PP \fBshow_track\fR (sh \-fart) \- Display full information about the current track: index, recording status, effects and controllers, inserts, the selected \s-1WAV\s0 version, and signal width (channel count). .IX Subsection "show_track (sh -fart) - Display full information about the current track: index, recording status, effects and controllers, inserts, the selected WAV version, and signal width (channel count)." .Sp .RS 8 show_track .RE .SS "Setup commands" .IX Subsection "Setup commands" \fBshow_mode\fR (shm) \- Display the current record/playback mode. this will indicate the mode (doodle, preview, etc.) and possible record/playback settings. .IX Subsection "show_mode (shm) - Display the current record/playback mode. this will indicate the mode (doodle, preview, etc.) and possible record/playback settings." .Sp .RS 8 show_mode .RE .SS "Track commands" .IX Subsection "Track commands" \fBshow_track_latency\fR (shl) \- Display the latency information for the current track. .IX Subsection "show_track_latency (shl) - Display the latency information for the current track." .Sp .RS 8 show_track_latency .RE .SS "Diagnostics commands" .IX Subsection "Diagnostics commands" \fBshow_latency_all\fR (shla) \- Dump all latency data. .IX Subsection "show_latency_all (shla) - Dump all latency data." .Sp .RS 8 show_latency_all .RE .SS "Track commands" .IX Subsection "Track commands" \fBset_region\fR (srg) \- Specify a playback region for the current track using marks. Can be reversed with remove_region. .IX Subsection "set_region (srg) - Specify a playback region for the current track using marks. Can be reversed with remove_region." .Sp .RS 8 set_region .Sp sax # Select \*(L"sax\*(R" as the current track. setpos 2.5 # Move the playhead to 2.5 seconds. mark sax_start # Create a mark sp 120.5 # Move playhead to 120.5 seconds. mark sax_end # Create another mark set_region sax_start sax_end # Play only the audio from 2.5 to 120.5 seconds. .RE .PP \fBadd_region\fR \- Make a copy of the current track using the supplied a region definition. The original track is untouched. .IX Subsection "add_region - Make a copy of the current track using the supplied a region definition. The original track is untouched." .Sp .RS 8 add_region | | [ ] .Sp sax # Select \*(L"sax\*(R" as the current track. add_region sax_start 66.7 trimmed_sax # Create \*(L"trimmed_sax\*(R", a copy of \*(L"sax\*(R" with a region defined # from mark \*(L"sax_start\*(R" to 66.7 seconds. .RE .PP \fBremove_region\fR (rrg) \- Remove the region definition from the current track. Remove the current track if it is an auxiliary track. .IX Subsection "remove_region (rrg) - Remove the region definition from the current track. Remove the current track if it is an auxiliary track." .Sp .RS 8 remove_region .RE .PP \fBshift_track\fR (shift playat pat) \- Choose an initial delay before playing a track or region. Can be reversed by unshift_track. .IX Subsection "shift_track (shift playat pat) - Choose an initial delay before playing a track or region. Can be reversed by unshift_track." .Sp .RS 8 shift_track | .Sp piano # Select \*(L"piano\*(R" as current track. shift 6.7 # Move the start of track to 6.7 seconds. .RE .PP \fBunshift_track\fR (unshift) \- Restore the playback start time of a track or region to 0. .IX Subsection "unshift_track (unshift) - Restore the playback start time of a track or region to 0." .Sp .RS 8 unshift_track .RE .PP \fBmodifiers\fR (mods mod) \- Add/show modifiers for the current track (man ecasound for details). This provides direct control over Ecasound track modifiers It is not needed for normal work. .IX Subsection "modifiers (mods mod) - Add/show modifiers for the current track (man ecasound for details). This provides direct control over Ecasound track modifiers It is not needed for normal work." .Sp .RS 8 modifiers [ Audio file sequencing parameters ] .Sp modifiers select 5 15.2 # Apply Ecasound's select modifier to the current track. # The usual way to accomplish this is with a region definition. .RE .PP \fBnomodifiers\fR (nomods nomod) \- Remove modifiers from the current track. .IX Subsection "nomodifiers (nomods nomod) - Remove modifiers from the current track." .Sp .RS 8 nomodifiers .RE .PP \fBnormalize\fR (ecanormalize) \- Apply ecanormalize to the current track version. This will raise the gain/volume of the current track as far as possible without clipping and store it that way on disk. Note: this will permanently change the file. .IX Subsection "normalize (ecanormalize) - Apply ecanormalize to the current track version. This will raise the gain/volume of the current track as far as possible without clipping and store it that way on disk. Note: this will permanently change the file." .Sp .RS 8 normalize .RE .PP \fBfixdc\fR (ecafixdc) \- Fix the DC-offset of the current track using ecafixdc. Note: This will permanently change the file. .IX Subsection "fixdc (ecafixdc) - Fix the DC-offset of the current track using ecafixdc. Note: This will permanently change the file." .Sp .RS 8 fixdc .RE .PP \fBautofix_tracks\fR (autofix) \- Apply ecafixdc and ecanormalize to all current versions of all tracks, set to playback (\s-1MON\s0). .IX Subsection "autofix_tracks (autofix) - Apply ecafixdc and ecanormalize to all current versions of all tracks, set to playback (MON)." .Sp .RS 8 autofix_tracks .RE .PP \fBremove_track\fR \- Remove the current track with its effects, inserts, etc. Audio files are unchanged. .IX Subsection "remove_track - Remove the current track with its effects, inserts, etc. Audio files are unchanged." .Sp .RS 8 remove_track .RE .SS "Bus commands" .IX Subsection "Bus commands" \fBbus_mon\fR (bmon) \- Set the current bus mix_track to monitor (the default behaviour). .IX Subsection "bus_mon (bmon) - Set the current bus mix_track to monitor (the default behaviour)." .Sp .RS 8 bus_mon .RE .PP \fBbus_off\fR (boff) \- Set current bus mixtrack to \s-1OFF.\s0 Can be reversed with bus_rec or bus_mon. .IX Subsection "bus_off (boff) - Set current bus mixtrack to OFF. Can be reversed with bus_rec or bus_mon." .Sp .RS 8 bus_off .RE .SS "Group commands" .IX Subsection "Group commands" \fBbus_version\fR (bver gver) \- Set the default monitoring version for tracks in the current bus. .IX Subsection "bus_version (bver gver) - Set the default monitoring version for tracks in the current bus." .Sp .RS 8 bus_version .RE .PP \fBadd_bunch\fR (abn) \- .IX Subsection "add_bunch (abn) -" .Sp .RS 8 add_bunch [ | ] ... .Sp add_bunch strings violin cello bass # Create a bunch \*(L"strings\*(R" with tracks violin, cello and bass. for strings; mute # Mute all tracks in the strings bunch. for strings; vol * 0.8 # Lower the volume of all tracks in bunch \*(L"strings\*(R" by a # a factor of 0.8. .RE .PP \fBlist_bunches\fR (lbn) \- Display a list of all bunches and their tracks. .IX Subsection "list_bunches (lbn) - Display a list of all bunches and their tracks." .Sp .RS 8 list_bunches .RE .PP \fBremove_bunch\fR (rbn) \- Remove the specified bunches. This does not remove the tracks, only the grouping. .IX Subsection "remove_bunch (rbn) - Remove the specified bunches. This does not remove the tracks, only the grouping." .Sp .RS 8 remove_bunch [ ] ... .RE .PP \fBadd_to_bunch\fR (atbn) \- Add track(s) to an existing bunch. .IX Subsection "add_to_bunch (atbn) - Add track(s) to an existing bunch." .Sp .RS 8 add_to_bunch [ ] ... .Sp add_to_bunch woodwind oboe sax flute .RE .SS "Project commands" .IX Subsection "Project commands" \fBcommit\fR (ci) \- Commit Nama's current state .IX Subsection "commit (ci) - Commit Nama's current state" .Sp .RS 8 commit .RE .PP \fBtag\fR \- Git tag the current branch \s-1HEAD\s0 commit .IX Subsection "tag - Git tag the current branch HEAD commit" .Sp .RS 8 tag [] .RE .PP \fBbranch\fR (br) \- Change to named branch .IX Subsection "branch (br) - Change to named branch" .Sp .RS 8 branch .RE .PP \fBlist_branches\fR (lb lbr) \- List branches .IX Subsection "list_branches (lb lbr) - List branches" .Sp .RS 8 list_branches .RE .PP \fBnew_branch\fR (nbr) \- Create a new branch .IX Subsection "new_branch (nbr) - Create a new branch" .Sp .RS 8 new_branch [] .RE .PP \fBsave_state\fR (keep save) \- Save the project settings as file or git snapshot .IX Subsection "save_state (keep save) - Save the project settings as file or git snapshot" .Sp .RS 8 save_state [ [ ] ] .RE .PP \fBget_state\fR (get recall retrieve) \- Retrieve project settings from file or snapshot .IX Subsection "get_state (get recall retrieve) - Retrieve project settings from file or snapshot" .Sp .RS 8 get_state .RE .PP \fBlist_projects\fR (lp) \- List all projects. This will list all Nama projects, which are stored in the Nama project root directory. .IX Subsection "list_projects (lp) - List all projects. This will list all Nama projects, which are stored in the Nama project root directory." .Sp .RS 8 list_projects .RE .PP \fBnew_project\fR (create) \- Create or open a new empty Nama project. .IX Subsection "new_project (create) - Create or open a new empty Nama project." .Sp .RS 8 new_project .Sp create jam .RE .PP \fBload_project\fR (load) \- Load an existing project. This will load the project from the default project state file. If you wish to load a project state saved to a user specific file, load the project and then use get_state. .IX Subsection "load_project (load) - Load an existing project. This will load the project from the default project state file. If you wish to load a project state saved to a user specific file, load the project and then use get_state." .Sp .RS 8 load_project .Sp load my_old_song .RE .PP \fBproject_name\fR (project name) \- Display the name of the current project. .IX Subsection "project_name (project name) - Display the name of the current project." .Sp .RS 8 project_name .RE .PP \fBnew_project_template\fR (npt) \- Make a project template based on the current project. This will include tracks and busses. .IX Subsection "new_project_template (npt) - Make a project template based on the current project. This will include tracks and busses." .Sp .RS 8 new_project_template [ ] .Sp new_project_template my_band_setup \*(L"tracks and busses for bass, drums and me\*(R" .RE .PP \fBuse_project_template\fR (upt apt) \- Use a template to create tracks in a newly created, empty project. .IX Subsection "use_project_template (upt apt) - Use a template to create tracks in a newly created, empty project." .Sp .RS 8 use_project_template .Sp apt my_band_setup # Will add all the tracks for your basic band setup. .RE .PP \fBlist_project_templates\fR (lpt) \- List all project templates. .IX Subsection "list_project_templates (lpt) - List all project templates." .Sp .RS 8 list_project_templates .RE .PP \fBdestroy_project_template\fR \- Remove one or more project templates. .IX Subsection "destroy_project_template - Remove one or more project templates." .Sp .RS 8 destroy_project_template [ ] ... .RE .SS "Setup commands" .IX Subsection "Setup commands" \fBgenerate\fR (gen) \- Generate an Ecasound chain setup for audio processing manually. Mainly useful for diagnostics and debugging. .IX Subsection "generate (gen) - Generate an Ecasound chain setup for audio processing manually. Mainly useful for diagnostics and debugging." .Sp .RS 8 generate .RE .PP \fBarm\fR \- Generate and connect a setup to record or playback. If you are in dodle or preview mode, this will bring you back to normal mode. .IX Subsection "arm - Generate and connect a setup to record or playback. If you are in dodle or preview mode, this will bring you back to normal mode." .Sp .RS 8 arm .RE .PP \fBarm_start\fR (arms) \- Generate and connect the setup and then start. This means, that you can directly record or listen to your tracks. .IX Subsection "arm_start (arms) - Generate and connect the setup and then start. This means, that you can directly record or listen to your tracks." .Sp .RS 8 arm_start .RE .PP \fBconnect\fR (con) \- Connect the setup, so everything is ready to run. Ifusing \s-1JACK,\s0 this means, that Nama will connect to all the necessary \s-1JACK\s0 ports. .IX Subsection "connect (con) - Connect the setup, so everything is ready to run. Ifusing JACK, this means, that Nama will connect to all the necessary JACK ports." .Sp .RS 8 connect .RE .PP \fBdisconnect\fR (dcon) \- Disconnect the setup. If running with \s-1JACK,\s0 this will disconnect from all \s-1JACK\s0 ports. .IX Subsection "disconnect (dcon) - Disconnect the setup. If running with JACK, this will disconnect from all JACK ports." .Sp .RS 8 disconnect .RE .PP \fBshow_chain_setup\fR (chains) \- Show the underlying Ecasound chain setup for the current working condition. Mainly useful for diagnostics and debugging. .IX Subsection "show_chain_setup (chains) - Show the underlying Ecasound chain setup for the current working condition. Mainly useful for diagnostics and debugging." .Sp .RS 8 show_chain_setup .RE .PP \fBloop\fR (l) \- Loop the playback between two points. Can be stopped with loop_disable .IX Subsection "loop (l) - Loop the playback between two points. Can be stopped with loop_disable" .Sp .RS 8 loop | | | | .Sp loop 1.5 10.0 # Loop between 1.5 and 10.0 seconds. loop 1 5 # Loop between marks with indeices 1 and 5, see list_marks. loop sax_start 12.6 # Loop between mark sax_start and 12.6 seconds. .RE .PP \fBnoloop\fR (nl) \- Disable looping. .IX Subsection "noloop (nl) - Disable looping." .Sp .RS 8 noloop .RE .SS "Effect commands" .IX Subsection "Effect commands" \fBadd_controller\fR (acl) \- Add a controller to an effect (current effect, by default). Controllers can be modified by using mfx and removed using rfx. .IX Subsection "add_controller (acl) - Add a controller to an effect (current effect, by default). Controllers can be modified by using mfx and removed using rfx." .Sp .RS 8 add_controller [ ] [ ] ... .Sp add_effect etd 100 2 2 50 50 # Add a stero delay of 100ms. # the delay will get the effect \s-1ID E .\s0 # Now we want to slowly change the delay to 200ms. acl E klg 1 100 200 2 0 100 15 200 # Change the delay time linearly (klg) .RE .PP \fBadd_effect\fR (afx) \- Add an effect .IX Subsection "add_effect (afx) - Add an effect" .Sp .RS 8 add_effect [ (before | first | last ) ] [ ... ] \&\*(L"before\*(R", \*(L"first\*(R" and \*(L"last\*(R" can be abbreviated \*(L"b\*(R", \*(L"f\*(R" and \*(L"l\*(R", respectively. .Sp We want to add the decimator effect (a \s-1LADSPA\s0 plugin). help_effect decimator # Print help about its paramters/controls. # We see two input controls: bitrate and samplerate afx decimator 12 22050 # prints \*(L"Added \s-1GO \s0(Decimator)\*(R" # We have added the decimator with 12bits and a sample rate of 22050Hz. # \s-1GO\s0 is the effect \s-1ID,\s0 which you will need to modify it. .RE .PP \fBadd_effect_last\fR (afxl) \- Same as add-effect last .IX Subsection "add_effect_last (afxl) - Same as add-effect last" .Sp .RS 8 add_effect_last [ ... ] .RE .PP \fBadd_effect_first\fR (afxf) \- Same as add-effect first .IX Subsection "add_effect_first (afxf) - Same as add-effect first" .Sp .RS 8 add_effect_first [ ... ] .RE .PP \fBadd_effect_before\fR (afxb) \- Same as add-effect before .IX Subsection "add_effect_before (afxb) - Same as add-effect before" .Sp .RS 8 add_effect_before [ ... ] .RE .PP \fBmodify_effect\fR (mfx) \- Modify effect parameter(s). .IX Subsection "modify_effect (mfx) - Modify effect parameter(s)." .Sp .RS 8 modify_effect [ ] [ + | \- | * | / ] fx_alias can be: a position, effect \s-1ID,\s0 nickname or effect code .Sp To change the roomsize of our reverb effect to 62 lfx # We see that reverb has unique effect \s-1ID AF\s0 and roomsize is the # first parameter. mfx \s-1AF 1 62 \s0 # mfx \s-1AF,BG 1 75 \s0 # Change the first parameter of both \s-1AF\s0 and \s-1BG\s0 to 75. # mfx \s-1CE 6,10 \-3 \s0 # Change parameters 6 and 10 of effect \s-1CE\s0 to \-3 # mfx D 4 + 10 # Increase the fourth parameter of effect D by 10. # mfx A,B,C 3,6 * 5 # Adjust parameters 3 and 6 of effect A, B and C by a factor of 5. .RE .PP \fBremove_effect\fR (rfx) \- Remove effects. They don't have to be on the current track. .IX Subsection "remove_effect (rfx) - Remove effects. They don't have to be on the current track." .Sp .RS 8 remove_effect [ ] ... .RE .PP \fBposition_effect\fR (pfx) \- Position an effect before another effect (use '\s-1ZZZ\s0' for end). .IX Subsection "position_effect (pfx) - Position an effect before another effect (use 'ZZZ' for end)." .Sp .RS 8 position_effect .Sp position_effect G F # Move effecit with unique \s-1ID G\s0 before F. .RE .PP \fBshow_effect\fR (sfx) \- Show information about an effect. Default is to print information on the current effect. .IX Subsection "show_effect (sfx) - Show information about an effect. Default is to print information on the current effect." .Sp .RS 8 show_effect [ ] [ ] ... .Sp sfx # Print name, unique \s-1ID\s0 and parameters/controls of the current effect. sfx H # Print out all information about effect with unique \s-1ID H.\s0 .RE .PP \fBdump_effect\fR (dfx) \- Dump all data of current effect object .IX Subsection "dump_effect (dfx) - Dump all data of current effect object" .Sp .RS 8 dump_effect .RE .PP \fBlist_effects\fR (lfx) \- Print a short list of all effects on the current track, only including unique \s-1ID\s0 and effect name. .IX Subsection "list_effects (lfx) - Print a short list of all effects on the current track, only including unique ID and effect name." .Sp .RS 8 list_effects .RE .SS "General commands" .IX Subsection "General commands" \fBhotkeys\fR (hk) \- Use this command to set the hotkey mode. (You may also use the hash symbol '#'.) Hit the Escape key to return to command mode. .IX Subsection "hotkeys (hk) - Use this command to set the hotkey mode. (You may also use the hash symbol '#'.) Hit the Escape key to return to command mode." .Sp .RS 8 hotkeys .RE .PP \fBhotkeys_always\fR (hka) \- Activate hotkeys mode after each command. .IX Subsection "hotkeys_always (hka) - Activate hotkeys mode after each command." .Sp .RS 8 hotkeys_always .RE .PP \fBhotkeys_off\fR (hko) \- Disable hotkeys always mode .IX Subsection "hotkeys_off (hko) - Disable hotkeys always mode" .Sp .RS 8 hotkeys_off .RE .PP \fBhotkeys_list\fR (hkl lhk) \- List hotkey bindings .IX Subsection "hotkeys_list (hkl lhk) - List hotkey bindings" .Sp .RS 8 hotkeys_list .RE .SS "Effect commands" .IX Subsection "Effect commands" \fBadd_insert\fR (ain) \- Add an external send/return insert to current track. .IX Subsection "add_insert (ain) - Add an external send/return insert to current track." .Sp .RS 8 add_insert External: ( pre | post ) [ ] Local wet/dry: local .Sp add_insert pre jconvolver # Add a prefader insert. The current track signal is sent # to jconvolver and returned to the vol/pan controls. add_insert post jconvolver csound # Send the current track postfader signal (after vol/pan # controls) to jconvolver, getting the return from csound. guitar # Select the guitar track ain local # Create a local insert guitar\-1\-wet # Select the wet arm afx G2reverb 50 5.0 0.6 0.5 0 \-16 \-20 # add a reverb afx etc 6 100 45 2.5 # add a chorus effect on the reverbed signal guitar # Change back to the main guitar track wet 25 # Set the balance between wet/dry track to 25% wet, 75% dry. .RE .PP \fBset_insert_wetness\fR (wet) \- Set wet/dry balance of the insert for the current track. The balance is given in percent, 0 meaning dry and 100 wet signal only. .IX Subsection "set_insert_wetness (wet) - Set wet/dry balance of the insert for the current track. The balance is given in percent, 0 meaning dry and 100 wet signal only." .Sp .RS 8 set_insert_wetness [ pre | post ] .Sp wet pre 50 # Set the prefader insert to be balanced 50/50 wet/dry. wet 100 # Simpler if there's only one insert .RE .PP \fBremove_insert\fR (rin) \- Remove an insert from the current track. .IX Subsection "remove_insert (rin) - Remove an insert from the current track." .Sp .RS 8 remove_insert [ pre | post ] .Sp rin # If there is only one insert on the current track, remove it. remove_insert post # Remove the postfader insert from the current track. .RE .PP \fBctrl_register\fR (crg) \- List all Ecasound controllers. Controllers include linear controllers and oscillators. .IX Subsection "ctrl_register (crg) - List all Ecasound controllers. Controllers include linear controllers and oscillators." .Sp .RS 8 ctrl_register .RE .PP \fBpreset_register\fR (prg) \- List all Ecasound effect presets. See the Ecasound manpage for more detail on effect_presets. .IX Subsection "preset_register (prg) - List all Ecasound effect presets. See the Ecasound manpage for more detail on effect_presets." .Sp .RS 8 preset_register .RE .PP \fBladspa_register\fR (lrg) \- List all \s-1LADSPA\s0 plugins, that Ecasound/Nama can find. .IX Subsection "ladspa_register (lrg) - List all LADSPA plugins, that Ecasound/Nama can find." .Sp .RS 8 ladspa_register .RE .SS "Mark commands" .IX Subsection "Mark commands" \fBlist_marks\fR (lmk lm) \- List all marks with index, name and their respective positions in time. .IX Subsection "list_marks (lmk lm) - List all marks with index, name and their respective positions in time." .Sp .RS 8 list_marks .RE .PP \fBto_mark\fR (tmk tom) \- Move the playhead to the named mark or mark index. .IX Subsection "to_mark (tmk tom) - Move the playhead to the named mark or mark index." .Sp .RS 8 to_mark | .Sp to_mark sax_start # Jump to the position marked by sax_mark. tmk 2 # Move to the mark with the index 2. .RE .PP \fBadd_mark\fR (mark amk k) \- Drop a new mark at the current playback position. this will fail, if a mark is already placed on that exact position. .IX Subsection "add_mark (mark amk k) - Drop a new mark at the current playback position. this will fail, if a mark is already placed on that exact position." .Sp .RS 8 add_mark [ ] .Sp mark start # Create a mark named \*(L"start\*(R" at the current position. .RE .PP \fBremove_mark\fR (rmk) \- Remove a mark .IX Subsection "remove_mark (rmk) - Remove a mark" .Sp .RS 8 remove_mark [ | ] .Sp remove_mark start # remove the mark named start rmk 16 # Remove the mark with the index 16. rmk # Remove the current mark .RE .PP \fBnext_mark\fR (nmk) \- Move the playhead to the next mark. .IX Subsection "next_mark (nmk) - Move the playhead to the next mark." .Sp .RS 8 next_mark .RE .PP \fBprevious_mark\fR (pmk) \- Move the playhead to the previous mark. .IX Subsection "previous_mark (pmk) - Move the playhead to the previous mark." .Sp .RS 8 previous_mark .RE .PP \fBname_mark\fR \- Give a name to the current mark. .IX Subsection "name_mark - Give a name to the current mark." .Sp .RS 8 name_mark .RE .PP \fBmodify_mark\fR (move_mark mmk) \- Change the position (time) of the current mark. .IX Subsection "modify_mark (move_mark mmk) - Change the position (time) of the current mark." .Sp .RS 8 modify_mark [ + | \- ] .Sp move_mark + 2.3 # Move the current mark 2.3 seconds forward from its mmk 16.8 # Move the current mark to 16.8 seconds, no matter, where it is now. .RE .SS "Diagnostics commands" .IX Subsection "Diagnostics commands" \fBengine_status\fR (egs) \- Display the Ecasound audio processing engine status. .IX Subsection "engine_status (egs) - Display the Ecasound audio processing engine status." .Sp .RS 8 engine_status .RE .PP \fBdump_track\fR (dump) \- Dump current track data. .IX Subsection "dump_track (dump) - Dump current track data." .Sp .RS 8 dump_track .RE .PP \fBdump_group\fR (dumpg) \- Dump group settings for user tracks. .IX Subsection "dump_group (dumpg) - Dump group settings for user tracks." .Sp .RS 8 dump_group .RE .PP \fBdump_all\fR (dumpa) \- Dump most internal state data. .IX Subsection "dump_all (dumpa) - Dump most internal state data." .Sp .RS 8 dump_all .RE .PP \fBdump_io\fR \- Show chain inputs and outputs. .IX Subsection "dump_io - Show chain inputs and outputs." .Sp .RS 8 dump_io .RE .SS "Help commands" .IX Subsection "Help commands" \fBlist_history\fR (lh) \- List the command history. Every project stores its own command history. .IX Subsection "list_history (lh) - List the command history. Every project stores its own command history." .Sp .RS 8 list_history .RE .SS "Bus commands" .IX Subsection "Bus commands" \fBadd_submix_cooked\fR \- Create a submix using all tracks in bus \*(L"Main\*(R" .IX Subsection "add_submix_cooked - Create a submix using all tracks in bus Main" .Sp .RS 8 add_submix_cooked .Sp add_submix_cooked front_of_house 7 # send a custom mix named \*(L"front_of_house\*(R" # to soundcard channels 7/8 .RE .PP \fBadd_submix_raw\fR (asr) \- Add a submix using tracks in Main bus (unprocessed signals, lower latency) .IX Subsection "add_submix_raw (asr) - Add a submix using tracks in Main bus (unprocessed signals, lower latency)" .Sp .RS 8 add_submix_raw .Sp asbr Reverb jconv # Add a raw send bus called Reverb, with its output .RE .PP \fBadd_bus\fR (abs) \- Add a sub bus. This is a bus, as known from other DAWs. The default output goes to a mix track and that is routed to the mixer (the Master track). All busses begin with a capital letter! .IX Subsection "add_bus (abs) - Add a sub bus. This is a bus, as known from other DAWs. The default output goes to a mix track and that is routed to the mixer (the Master track). All busses begin with a capital letter!" .Sp .RS 8 add_bus [ | | ] .Sp abs Brass # Add a bus, \*(L"Brass\*(R", routed to the Main bus (e.g. mixer) abs special csound # Add a bus, \*(L"special\*(R" routed to \s-1JACK\s0 client \*(L"csound\*(R" .RE .PP \fBupdate_submix\fR (usm) \- Include tracks added since the submix was created. .IX Subsection "update_submix (usm) - Include tracks added since the submix was created." .Sp .RS 8 update_submix .Sp update_submix Reverb .RE .PP \fBremove_bus\fR \- Remove a bus or submix .IX Subsection "remove_bus - Remove a bus or submix" .Sp .RS 8 remove_bus .RE .PP \fBlist_buses\fR (lbs) \- List buses and their parameters (\s-1TODO\s0). .IX Subsection "list_buses (lbs) - List buses and their parameters (TODO)." .Sp .RS 8 list_buses .RE .PP \fBset_bus\fR (sbs) \- Set bus parameters. This command is intended for advanced users. .IX Subsection "set_bus (sbs) - Set bus parameters. This command is intended for advanced users." .Sp .RS 8 set_bus .RE .SS "Effect commands" .IX Subsection "Effect commands" \fBoverwrite_effect_chain\fR (oec) \- Create a new effect chain, overwriting an existing one of the same name. .IX Subsection "overwrite_effect_chain (oec) - Create a new effect chain, overwriting an existing one of the same name." .Sp .RS 8 overwrite_effect_chain Same as for new_effect_chain .RE .PP \fBnew_effect_chain\fR (nec) \- Create an effect chain, a named list of effects with all parameter settings. Useful for storing effect setups for particular instruments. .IX Subsection "new_effect_chain (nec) - Create an effect chain, a named list of effects with all parameter settings. Useful for storing effect setups for particular instruments." .Sp .RS 8 new_effect_chain [ ... ] .Sp new_effect_chain my_piano # Create a new effect chain, \*(L"my_piano\*(R", storing all # effects and their settings from the current track # except the fader (vol/pan) settings. nec my_guitar A C F G H # Create a new effect chain, \*(L"my_guitar\*(R", # storing the effects with IDs A, C, F, G, H and # their respective settings. .RE .PP \fBdelete_effect_chain\fR (dec destroy_effect_chain) \- Delete an effect chain definition. Does not affect the project state. This command is not reversible by undo. .IX Subsection "delete_effect_chain (dec destroy_effect_chain) - Delete an effect chain definition. Does not affect the project state. This command is not reversible by undo." .Sp .RS 8 delete_effect_chain .RE .PP \fBfind_effect_chains\fR (fec) \- Dump effect chains, matching key/value pairs if provided .IX Subsection "find_effect_chains (fec) - Dump effect chains, matching key/value pairs if provided" .Sp .RS 8 find_effect_chains [ ] ... .Sp fec # List all effect chains with their effects. .RE .PP \fBfind_user_effect_chains\fR (fuec) \- List all *user* created effect chains, matching key/value pairs, if provided. .IX Subsection "find_user_effect_chains (fuec) - List all *user* created effect chains, matching key/value pairs, if provided." .Sp .RS 8 find_user_effect_chains [ ] ... .RE .PP \fBbypass_effects\fR (bypass bfx) \- Bypass effects on the current track. With no parameters default to bypassing the current effect. .IX Subsection "bypass_effects (bypass bfx) - Bypass effects on the current track. With no parameters default to bypassing the current effect." .Sp .RS 8 bypass_effects [ ... | 'all' ] .Sp bypass all # Bypass all effects on the current track, except vol and pan. bypass \s-1AF \s0 # Only bypass the effect with the unique \s-1ID AF.\s0 .RE .PP \fBbring_back_effects\fR (restore_effects bbfx) \- Restore effects. If no parameter is given, the default is to restore the current effect. .IX Subsection "bring_back_effects (restore_effects bbfx) - Restore effects. If no parameter is given, the default is to restore the current effect." .Sp .RS 8 bring_back_effects [ ... | 'all' ] .Sp bbfx # Restore the current effect. restore_effect \s-1AF \s0 # Restore the effect with the unique \s-1ID AF.\s0 bring_back_effects all # Restore all effects. .RE .PP \fBnew_effect_profile\fR (nep) \- Create a new effect profile. An effect profile is a named group of effect chains for multiple tracks. Useful for storing a basic template of standard effects for a group of instruments, like a drum kit. .IX Subsection "new_effect_profile (nep) - Create a new effect profile. An effect profile is a named group of effect chains for multiple tracks. Useful for storing a basic template of standard effects for a group of instruments, like a drum kit." .Sp .RS 8 new_effect_profile [ ] .Sp add_bunch Drums snare toms kick # Create a buch called Drums. nep Drums my_drum_effects # Create an effect profile, call my_drum_effects .RE .PP \fBapply_effect_profile\fR (aep) \- Apply an effect profile. this will add all the effects in it to the list of tracks stored in the effect profile. Note: You must give the tracks the same names as in the original project, where you created the effect profile. .IX Subsection "apply_effect_profile (aep) - Apply an effect profile. this will add all the effects in it to the list of tracks stored in the effect profile. Note: You must give the tracks the same names as in the original project, where you created the effect profile." .Sp .RS 8 apply_effect_profile .RE .PP \fBdestroy_effect_profile\fR \- Delete an effect profile. This will delete the effect profile definition from your disk. All projects, which use this effect profile will \s-1NOT\s0 be affected. .IX Subsection "destroy_effect_profile - Delete an effect profile. This will delete the effect profile definition from your disk. All projects, which use this effect profile will NOT be affected." .Sp .RS 8 destroy_effect_profile .RE .PP \fBlist_effect_profiles\fR (lep) \- List all effect profiles. .IX Subsection "list_effect_profiles (lep) - List all effect profiles." .Sp .RS 8 list_effect_profiles .RE .PP \fBshow_effect_profiles\fR (sepr) \- List effect profile. .IX Subsection "show_effect_profiles (sepr) - List effect profile." .Sp .RS 8 show_effect_profiles .RE .PP \fBfull_effect_profiles\fR (fep) \- Dump effect profile data structure. .IX Subsection "full_effect_profiles (fep) - Dump effect profile data structure." .Sp .RS 8 full_effect_profiles .RE .SS "Track commands" .IX Subsection "Track commands" \fBcache_track\fR (cache ct bounce freeze) \- Cache the current track. Same as freezing or bouncing. This is useful for larger projects or low-power CPUs, since effects do not have to be recomputed for subsequent engine runs. Cache_track stores the effects-processed output of the current track as a new version (\s-1WAV\s0 file) which becomes the current version. The current effects, inserts and region definition are removed and stored. To go back to the original track state, use the uncache_track command. The show_track display appends a \*(L"c\*(R" to version numbers created by cache_track (and therefore reversible by uncache) .IX Subsection "cache_track (cache ct bounce freeze) - Cache the current track. Same as freezing or bouncing. This is useful for larger projects or low-power CPUs, since effects do not have to be recomputed for subsequent engine runs. Cache_track stores the effects-processed output of the current track as a new version (WAV file) which becomes the current version. The current effects, inserts and region definition are removed and stored. To go back to the original track state, use the uncache_track command. The show_track display appends a c to version numbers created by cache_track (and therefore reversible by uncache)" .Sp .RS 8 cache_track [ ] .Sp cache 10 # Cache the curent track and append 10 seconds extra time, .RE .SS "Effect commands" .IX Subsection "Effect commands" \fBuncache_track\fR (uncache unc) \- Select the uncached track version. This restores effects, but not inserts. .IX Subsection "uncache_track (uncache unc) - Select the uncached track version. This restores effects, but not inserts." .Sp .RS 8 uncache_track .RE .SS "General commands" .IX Subsection "General commands" \fBdo_script\fR (do) \- Execute Nama commands from a file in the main project's directory or in the Nama project root directory. A script is a list of Nama commands, just as you would type them on the Nama prompt. .IX Subsection "do_script (do) - Execute Nama commands from a file in the main project's directory or in the Nama project root directory. A script is a list of Nama commands, just as you would type them on the Nama prompt." .Sp .RS 8 do_script .Sp do prepare_my_drums # Execute the script prepare_my_drums. .RE .PP \fBscan\fR \- Re-read the project's .wav directory. Mainly useful for troubleshooting. .IX Subsection "scan - Re-read the project's .wav directory. Mainly useful for troubleshooting." .Sp .RS 8 scan .RE .SS "Effect commands" .IX Subsection "Effect commands" \fBadd_fade\fR (afd fade) \- Add a fade-in or fade-out to the current track. .IX Subsection "add_fade (afd fade) - Add a fade-in or fade-out to the current track." .Sp .RS 8 add_fade ( in | out ) marks/times (see examples) .Sp fade in mark1 # Fade in,starting at mark1 and using the # default fade time of 0.5 seconds. fade out mark2 2 # Fade out over 2 seconds, starting at mark2 . fade out 2 mark2 # Fade out over 2 seconds, ending at mark2 . fade in mark1 mark2 # Fade in starting at mark1, ending at mark2 . .RE .PP \fBremove_fade\fR (rfd) \- Remove a fade from the current track. .IX Subsection "remove_fade (rfd) - Remove a fade from the current track." .Sp .RS 8 remove_fade [ ] ... .Sp list_fade # Print a list of all fades and their tracks. rfd 2 # Remove the fade with the index (n) 2. .RE .PP \fBlist_fade\fR (lfd) \- List all fades. .IX Subsection "list_fade (lfd) - List all fades." .Sp .RS 8 list_fade .RE .SS "Track commands" .IX Subsection "Track commands" \fBadd_comment\fR (comment ac) \- Add a comment to the current track (replacing any previous comment). A comment maybe a short description, notes on instrument settings, etc. .IX Subsection "add_comment (comment ac) - Add a comment to the current track (replacing any previous comment). A comment maybe a short description, notes on instrument settings, etc." .Sp .RS 8 add_comment .Sp ac \*(L"Guitar, treble on 50%\*(R" .RE .PP \fBremove_comment\fR (rc) \- Remove a comment from the current track. .IX Subsection "remove_comment (rc) - Remove a comment from the current track." .Sp .RS 8 remove_comment .RE .PP \fBshow_comment\fR (sc) \- Show the comment for the current track. .IX Subsection "show_comment (sc) - Show the comment for the current track." .Sp .RS 8 show_comment .RE .PP \fBshow_comments\fR (sca) \- Show all track comments. .IX Subsection "show_comments (sca) - Show all track comments." .Sp .RS 8 show_comments .RE .PP \fBadd_version_comment\fR (avc) \- Add a version comment (replacing any previous user comment). This will add a comment for the current version of the current track. .IX Subsection "add_version_comment (avc) - Add a version comment (replacing any previous user comment). This will add a comment for the current version of the current track." .Sp .RS 8 add_version_comment .Sp avc \*(L"The good take with the clear 6/8\*(R" .RE .PP \fBremove_version_comment\fR (rvc) \- Remove version comment(s) from the current track. .IX Subsection "remove_version_comment (rvc) - Remove version comment(s) from the current track." .Sp .RS 8 remove_version_comment .RE .PP \fBshow_version_comment\fR (svc) \- Show version comment(s) of the curent track. .IX Subsection "show_version_comment (svc) - Show version comment(s) of the curent track." .Sp .RS 8 show_version_comment .RE .PP \fBshow_version_comments_all\fR (svca) \- Show all version comments for the current track. .IX Subsection "show_version_comments_all (svca) - Show all version comments for the current track." .Sp .RS 8 show_version_comments_all .RE .PP \fBset_system_version_comment\fR (ssvc) \- Set a system version comment. Useful for testing and diagnostics. .IX Subsection "set_system_version_comment (ssvc) - Set a system version comment. Useful for testing and diagnostics." .Sp .RS 8 set_system_version_comment .RE .SS "Midi commands" .IX Subsection "Midi commands" \fBmidish_command\fR (m) \- Send the command text to the midish \s-1MIDI\s0 sequencer. Midish must be installed and enabled in namarc. See the midish manpage and fullonline documentation for more. .IX Subsection "midish_command (m) - Send the command text to the midish MIDI sequencer. Midish must be installed and enabled in namarc. See the midish manpage and fullonline documentation for more." .Sp .RS 8 midish_command .Sp m tracknew my_midi_track .RE .PP \fBmidish_mode_on\fR (mmo) \- All users commands sent to midish, until .IX Subsection "midish_mode_on (mmo) - All users commands sent to midish, until" .Sp .RS 8 midish_mode_on .RE .PP \fBmidish_mode_off\fR (mmx) \- Exit midish mode, restore default Nama command mode, no midish sync .IX Subsection "midish_mode_off (mmx) - Exit midish mode, restore default Nama command mode, no midish sync" .Sp .RS 8 midish_mode_off .RE .PP \fBmidish_mode_off_ready_to_play\fR (mmxrp) \- Exit midish mode, sync midish start (p) with Ecasound .IX Subsection "midish_mode_off_ready_to_play (mmxrp) - Exit midish mode, sync midish start (p) with Ecasound" .Sp .RS 8 midish_mode_off_ready_to_play .RE .PP \fBmidish_mode_off_ready_to_record\fR (mmxrr) \- Exit midish mode, sync midish start (r) with Ecasound .IX Subsection "midish_mode_off_ready_to_record (mmxrr) - Exit midish mode, sync midish start (r) with Ecasound" .Sp .RS 8 midish_mode_off_ready_to_record .RE .SS "Edit commands" .IX Subsection "Edit commands" \fBnew_edit\fR (ned) \- Create an edit for the current track and version. .IX Subsection "new_edit (ned) - Create an edit for the current track and version." .Sp .RS 8 new_edit .RE .PP \fBset_edit_points\fR (sep) \- Mark play-start, record-start and record-end positions for the current edit. .IX Subsection "set_edit_points (sep) - Mark play-start, record-start and record-end positions for the current edit." .Sp .RS 8 set_edit_points .RE .PP \fBlist_edits\fR (led) \- List all edits for current track and version. .IX Subsection "list_edits (led) - List all edits for current track and version." .Sp .RS 8 list_edits .RE .PP \fBselect_edit\fR (sed) \- Select an edit to modify or delete. After selection it is the current edit. .IX Subsection "select_edit (sed) - Select an edit to modify or delete. After selection it is the current edit." .Sp .RS 8 select_edit .RE .PP \fBend_edit_mode\fR (eem) \- Switch back to normal playback/record mode. The track will play full length again. Edits are managed via a sub\- bus. .IX Subsection "end_edit_mode (eem) - Switch back to normal playback/record mode. The track will play full length again. Edits are managed via a sub- bus." .Sp .RS 8 end_edit_mode .RE .PP \fBdestroy_edit\fR \- Remove an edit and all associated audio files. If no parameter is given, the default is to destroy the current edit. Note: The data will be lost permanently. Use with care! .IX Subsection "destroy_edit - Remove an edit and all associated audio files. If no parameter is given, the default is to destroy the current edit. Note: The data will be lost permanently. Use with care!" .Sp .RS 8 destroy_edit [ ] .RE .PP \fBpreview_edit_in\fR (pei) \- Play the track region without the edit segment. .IX Subsection "preview_edit_in (pei) - Play the track region without the edit segment." .Sp .RS 8 preview_edit_in .RE .PP \fBpreview_edit_out\fR (peo) \- Play the removed edit segment. .IX Subsection "preview_edit_out (peo) - Play the removed edit segment." .Sp .RS 8 preview_edit_out .RE .PP \fBplay_edit\fR (ped) \- Play a completed edit. .IX Subsection "play_edit (ped) - Play a completed edit." .Sp .RS 8 play_edit .RE .PP \fBrecord_edit\fR (red) \- Record an audio file for the current edit. .IX Subsection "record_edit (red) - Record an audio file for the current edit." .Sp .RS 8 record_edit .RE .PP \fBedit_track\fR (et) \- Set the edit track as the current track. .IX Subsection "edit_track (et) - Set the edit track as the current track." .Sp .RS 8 edit_track .RE .PP \fBhost_track_alias\fR (hta) \- Set the host track alias as the current track. .IX Subsection "host_track_alias (hta) - Set the host track alias as the current track." .Sp .RS 8 host_track_alias .RE .PP \fBhost_track\fR (ht) \- Set the host track (edit sub-bus mix track) as the current track. .IX Subsection "host_track (ht) - Set the host track (edit sub-bus mix track) as the current track." .Sp .RS 8 host_track .RE .PP \fBversion_mix_track\fR (vmt) \- Set the version mix track as the current track. .IX Subsection "version_mix_track (vmt) - Set the version mix track as the current track." .Sp .RS 8 version_mix_track .RE .PP \fBplay_start_mark\fR (psm) \- Select (and move to) play start mark of the current edit. .IX Subsection "play_start_mark (psm) - Select (and move to) play start mark of the current edit." .Sp .RS 8 play_start_mark .RE .PP \fBrec_start_mark\fR (rsm) \- Select (and move to) rec start mark of the current edit. .IX Subsection "rec_start_mark (rsm) - Select (and move to) rec start mark of the current edit." .Sp .RS 8 rec_start_mark .RE .PP \fBrec_end_mark\fR (rem) \- Select (and move to) rec end mark of the current edit. .IX Subsection "rec_end_mark (rem) - Select (and move to) rec end mark of the current edit." .Sp .RS 8 rec_end_mark .RE .PP \fBset_play_start_mark\fR (spsm) \- Set play_start_mark to the current playback position. .IX Subsection "set_play_start_mark (spsm) - Set play_start_mark to the current playback position." .Sp .RS 8 set_play_start_mark .RE .PP \fBset_rec_start_mark\fR (srsm) \- Set rec_start_mark to the current playback position. .IX Subsection "set_rec_start_mark (srsm) - Set rec_start_mark to the current playback position." .Sp .RS 8 set_rec_start_mark .RE .PP \fBset_rec_end_mark\fR (srem) \- Set rec_end_mark to current playback position. .IX Subsection "set_rec_end_mark (srem) - Set rec_end_mark to current playback position." .Sp .RS 8 set_rec_end_mark .RE .PP \fBdisable_edits\fR (ded) \- Turn off the edits for the current track and playback the original. This will exclude the edit sub bus. .IX Subsection "disable_edits (ded) - Turn off the edits for the current track and playback the original. This will exclude the edit sub bus." .Sp .RS 8 disable_edits .RE .PP \fBmerge_edits\fR (med) \- Mix edits and original into a new host-track. this will write a new audio file to disk and the host track will have a new version for this. .IX Subsection "merge_edits (med) - Mix edits and original into a new host-track. this will write a new audio file to disk and the host track will have a new version for this." .Sp .RS 8 merge_edits .RE .SS "Track commands" .IX Subsection "Track commands" \fBexplode_track\fR \- Make the current track into a sub bus, with one track for each version. .IX Subsection "explode_track - Make the current track into a sub bus, with one track for each version." .Sp .RS 8 explode_track .RE .PP \fBmove_to_bus\fR (mtb) \- Move the current track to another bus. A new track is always in the Main bus. So to reverse this action use move_to_bus Main . .IX Subsection "move_to_bus (mtb) - Move the current track to another bus. A new track is always in the Main bus. So to reverse this action use move_to_bus Main ." .Sp .RS 8 move_to_bus .Sp asub Drums # Create a new sub bus, called Drums. snare # Make snare the current track. mtb Drums # Move the snare track into the sub bus Drums. .RE .PP \fBpromote_version_to_track\fR (pvt) \- Create a read-only track using the specified version of the current track. .IX Subsection "promote_version_to_track (pvt) - Create a read-only track using the specified version of the current track." .Sp .RS 8 promote_version_to_track .RE .SS "General commands" .IX Subsection "General commands" \fBread_user_customizations\fR (ruc) \- Re-read the user customizations file 'custom.pl'. .IX Subsection "read_user_customizations (ruc) - Re-read the user customizations file 'custom.pl'." .Sp .RS 8 read_user_customizations .RE .SS "Setup commands" .IX Subsection "Setup commands" \fBlimit_run_time\fR (lr) \- Stop recording after the last audio file finishes playing. Can be turned off with limit_run_time_off. .IX Subsection "limit_run_time (lr) - Stop recording after the last audio file finishes playing. Can be turned off with limit_run_time_off." .Sp .RS 8 limit_run_time [ ] .RE .PP \fBlimit_run_time_off\fR (lro) \- Disable the recording stop timer. .IX Subsection "limit_run_time_off (lro) - Disable the recording stop timer." .Sp .RS 8 limit_run_time_off .RE .PP \fBoffset_run\fR (ofr) \- Record/play from a mark, rather than from the start, i.e. 0.0 seconds. .IX Subsection "offset_run (ofr) - Record/play from a mark, rather than from the start, i.e. 0.0 seconds." .Sp .RS 8 offset_run .RE .PP \fBoffset_run_off\fR (ofro) \- Turn back to starting from 0. .IX Subsection "offset_run_off (ofro) - Turn back to starting from 0." .Sp .RS 8 offset_run_off .RE .SS "General commands" .IX Subsection "General commands" \fBview_waveform\fR (wview) \- Launch mhwavedit to view/edit waveform of the current track and version. This requires to start Nama on a graphical terminal, like xterm or gterm or from \s-1GNOME\s0 via alt+F2 . .IX Subsection "view_waveform (wview) - Launch mhwavedit to view/edit waveform of the current track and version. This requires to start Nama on a graphical terminal, like xterm or gterm or from GNOME via alt+F2 ." .Sp .RS 8 view_waveform .RE .PP \fBedit_waveform\fR (wedit) \- Launch audacity to view/edit the waveform of the current track and version. This requires starting Nama on a graphical terminal like xterm or gterm or from \s-1GNOME\s0 starting Nama using alt+F2 . .IX Subsection "edit_waveform (wedit) - Launch audacity to view/edit the waveform of the current track and version. This requires starting Nama on a graphical terminal like xterm or gterm or from GNOME starting Nama using alt+F2 ." .Sp .RS 8 edit_waveform .RE .SS "Setup commands" .IX Subsection "Setup commands" \fBrerecord\fR (rerec) \- Record as before. This will set all the tracks to record, which have been recorded just before you listened back. .IX Subsection "rerecord (rerec) - Record as before. This will set all the tracks to record, which have been recorded just before you listened back." .Sp .RS 8 rerecord .Sp for piano guitar;rec # Set piano and guitar track to record. # do your recording and ilstening. # You want to record another version of both piano and guitar: rerec # Sets piano and guitar to record again. .RE .SS "Track commands" .IX Subsection "Track commands" \fBanalyze_level\fR (anl) \- Print Ecasound amplitude analysis for current track. This will show highest volume and statistics. .IX Subsection "analyze_level (anl) - Print Ecasound amplitude analysis for current track. This will show highest volume and statistics." .Sp .RS 8 analyze_level .RE .SS "General commands" .IX Subsection "General commands" \fBfor\fR \- Execute command(s) for several tracks. .IX Subsection "for - Execute command(s) for several tracks." .Sp .RS 8 for [ } ... ; .Sp for piano guitar; vol \- 3; pan 75 # reduce volume and pan right for snare kick toms cymbals; mtb Drums # move tracks to bus Drums .RE .SS "Project commands" .IX Subsection "Project commands" \fBgit\fR \- Execute git command in the project directory .IX Subsection "git - Execute git command in the project directory" .Sp .RS 8 git [arguments] .RE .SS "Track commands" .IX Subsection "Track commands" \fBedit_rec_setup_hook\fR (ersh) \- Edit the \s-1REC\s0 hook script for current track .IX Subsection "edit_rec_setup_hook (ersh) - Edit the REC hook script for current track" .Sp .RS 8 edit_rec_setup_hook .RE .PP \fBedit_rec_cleanup_hook\fR (erch) \- Edit the \s-1REC\s0 cleanup hook script for current track .IX Subsection "edit_rec_cleanup_hook (erch) - Edit the REC cleanup hook script for current track" .Sp .RS 8 edit_rec_cleanup_hook .RE .PP \fBremove_fader_effect\fR (rffx) \- Remove vol pan or fader on current track .IX Subsection "remove_fader_effect (rffx) - Remove vol pan or fader on current track" .Sp .RS 8 remove_fader_effect vol | pan | fader .RE .PP \fBrename_track\fR \- Rename a track and its \s-1WAV\s0 files .IX Subsection "rename_track - Rename a track and its WAV files" .Sp .RS 8 rename_track .RE .SS "Sequence commands" .IX Subsection "Sequence commands" \fBnew_sequence\fR (nsq) \- Define a new sequence .IX Subsection "new_sequence (nsq) - Define a new sequence" .Sp .RS 8 new_sequence .RE .PP \fBselect_sequence\fR (slsq) \- Select named sequence as current sequence .IX Subsection "select_sequence (slsq) - Select named sequence as current sequence" .Sp .RS 8 select_sequence .RE .PP \fBlist_sequences\fR (lsq) \- List all user sequences .IX Subsection "list_sequences (lsq) - List all user sequences" .Sp .RS 8 list_sequences .RE .PP \fBshow_sequence\fR (ssq) \- Display clips making up current sequence .IX Subsection "show_sequence (ssq) - Display clips making up current sequence" .Sp .RS 8 show_sequence .RE .PP \fBappend_to_sequence\fR (asq) \- Append items to sequence .IX Subsection "append_to_sequence (asq) - Append items to sequence" .Sp .RS 8 append_to_sequence [,...] .Sp asq chorus # append chorus track to current sequence asq # append current track to current sequence .RE .PP \fBinsert_in_sequence\fR (isq) \- Insert items into sequence before index i .IX Subsection "insert_in_sequence (isq) - Insert items into sequence before index i" .Sp .RS 8 insert_in_sequence [,...] .RE .PP \fBremove_from_sequence\fR (rsq) \- Remove items from sequence .IX Subsection "remove_from_sequence (rsq) - Remove items from sequence" .Sp .RS 8 remove_from_sequence [,...] .RE .PP \fBdelete_sequence\fR (dsq) \- Delete entire sequence .IX Subsection "delete_sequence (dsq) - Delete entire sequence" .Sp .RS 8 delete_sequence .RE .PP \fBadd_spacer\fR (asp) \- Add a spacer to the current sequence, in specified position, or appending (if no position is given) .IX Subsection "add_spacer (asp) - Add a spacer to the current sequence, in specified position, or appending (if no position is given)" .Sp .RS 8 add_spacer [] .RE .PP \fBconvert_to_sequence\fR (csq) \- Convert the current track to a sequence .IX Subsection "convert_to_sequence (csq) - Convert the current track to a sequence" .Sp .RS 8 convert_to_sequence .RE .PP \fBmerge_sequence\fR (msq) \- Cache and \s-1MON\s0 the current sequence mix track, disable the sequence .IX Subsection "merge_sequence (msq) - Cache and MON the current sequence mix track, disable the sequence" .Sp .RS 8 merge_sequence .RE .PP \fBsnip\fR \- Create a sequence from the current track by removing the region(s) defined by mark pair(s). Not supported if the current track is already a sequence. .IX Subsection "snip - Create a sequence from the current track by removing the region(s) defined by mark pair(s). Not supported if the current track is already a sequence." .Sp .RS 8 snip [...] .Sp snip cut1\-start cut1\-end cut2\-start cut2\-end This removes cut1 and cut2 regions from the current track by creating a sequence. .RE .PP \fBcompose\fR (compose_sequence compose_into_sequence) \- Compose a new sequence using the region(s) of the named track defined by mark pair(s). If the sequence of that name exists, append the regions to that sequence (compose_into_sequence). .IX Subsection "compose (compose_sequence compose_into_sequence) - Compose a new sequence using the region(s) of the named track defined by mark pair(s). If the sequence of that name exists, append the regions to that sequence (compose_into_sequence)." .Sp .RS 8 compose [...] .Sp compose speeches conference-audio speaker1\-start speaker1\-end speaker2\-start speaker2\-end This creates a \*(L"speeches\*(R" sequence with two clips for speaker1 and speaker2. .RE .SS "General commands" .IX Subsection "General commands" \fBundo\fR \- Roll back last commit (use \*(L"git log\*(R" to see specific commands) Note: redo is not supported yet .IX Subsection "undo - Roll back last commit (use git log to see specific commands) Note: redo is not supported yet" .Sp .RS 8 undo .RE .PP \fBredo\fR \- Restore the last undone commit (\s-1TODO\s0) .IX Subsection "redo - Restore the last undone commit (TODO)" .Sp .RS 8 redo .RE .PP \fBshow_head_commit\fR (show_head last_command last) \- Show the last commit, which undo will roll back. A commit may contain multiple commands. The last_* aliases are meaningful when autosave: undo is set. In that case each commit contains only a single command .IX Subsection "show_head_commit (show_head last_command last) - Show the last commit, which undo will roll back. A commit may contain multiple commands. The last_* aliases are meaningful when autosave: undo is set. In that case each commit contains only a single command" .Sp .RS 8 show_head_commit .RE .SS "Mode commands" .IX Subsection "Mode commands" \fBeager\fR \- Set eager mode .IX Subsection "eager - Set eager mode" .Sp .RS 8 eager on | off .RE .SS "Engine commands" .IX Subsection "Engine commands" \fBnew_engine\fR (neg) \- Start a named Ecasound engine, or bind to an existing engine .IX Subsection "new_engine (neg) - Start a named Ecasound engine, or bind to an existing engine" .Sp .RS 8 new_engine .RE .PP \fBselect_engine\fR (seg) \- Select an ecasound engine (advanced users only!) .IX Subsection "select_engine (seg) - Select an ecasound engine (advanced users only!)" .Sp .RS 8 select_engine .RE .SS "Track commands" .IX Subsection "Track commands" \fBset_track_engine_group\fR (steg) \- Set the current track's engine affiliation .IX Subsection "set_track_engine_group (steg) - Set the current track's engine affiliation" .Sp .RS 8 set_track_engine_group .RE .SS "Bus commands" .IX Subsection "Bus commands" \fBset_bus_engine_group\fR (sbeg) \- Set the current bus's engine affiliation .IX Subsection "set_bus_engine_group (sbeg) - Set the current bus's engine affiliation" .Sp .RS 8 set_bus_engine_group .RE .PP \fBselect_submix\fR (ssm) \- Set the target for the trim command .IX Subsection "select_submix (ssm) - Set the target for the trim command" .Sp .RS 8 select_submix .RE .PP \fBtrim_submix\fR (trim tsm) \- Control a submix fader .IX Subsection "trim_submix (trim tsm) - Control a submix fader" .Sp .RS 8 trim_submix .Sp # reduce vol of current track in in_ear_monitor by 3dB select_submix in_ear_monitor trim vol \- 3 .RE .SS "Effect commands" .IX Subsection "Effect commands" \fBnickname_effect\fR (nfx nick) \- Add a nickname to the current effect (and create an alias) .IX Subsection "nickname_effect (nfx nick) - Add a nickname to the current effect (and create an alias)" .Sp .RS 8 nickname_effect .Sp add_track guitar afx Plate nick reverb # current effect gets name \*(L"reverb1\*(R" mfx reverb1 1 0.05 # modify first reverb effect on current track mfx reverb 1 2 # works, because current track has one effect named \*(L"reverb\*(R" afx reverb # add another Plate effect, gets name \*(L"reverb2\*(R" rfx reverb # Error, multiple reverb effects are present on this # track. Please use a numerical suffix. mfx reverb2 1 3 # modify second reverb effect rfx reverb1 # removes reverb1 ifx reverb2 reverb # insert another reverb effect (reverb3) before reverb2 rfx reverb3 # remove reverb3 rfx reverb # removes reverb2, as it is the sole remain reverb effect .RE .PP \fBdelete_nickname_definition\fR (dnd) \- Delete a nickname definition. Previously named effects keep their names. .IX Subsection "delete_nickname_definition (dnd) - Delete a nickname definition. Previously named effects keep their names." .Sp .RS 8 delete_nickname_definition .Sp afx Plate # add Plate effect nick reverb # name it \*(L"reverb\*(R", and create a nickname for Plate dnd reverb # removes nickname definition afx reverb # error .RE .PP \fBremove_nickname\fR (rnick) \- Remove the \*(L"name\*(R" attribute of the current effect .IX Subsection "remove_nickname (rnick) - Remove the name attribute of the current effect" .Sp .RS 8 remove_nickname .Sp afx Plate nick reverb mfx reverb 1 3 rnick mfx reverb 1 3 # Error: effect named \*(L"reverb\*(R" not found on current track .RE .PP \fBlist_nickname_definitions\fR (lnd) \- List defined nicknames .IX Subsection "list_nickname_definitions (lnd) - List defined nicknames" .Sp .RS 8 list_nickname_definitions .RE .PP \fBset_effect_name\fR (sen) \- Set a nickname only (don't creating an alias) .IX Subsection "set_effect_name (sen) - Set a nickname only (don't creating an alias)" .Sp .RS 8 set_effect_name .RE .PP \fBset_effect_surname\fR (ses) \- Set an effect surname .IX Subsection "set_effect_surname (ses) - Set an effect surname" .Sp .RS 8 set_effect_surname .RE .PP \fBremove_effect_name\fR (ren) \- Remove current effect name .IX Subsection "remove_effect_name (ren) - Remove current effect name" .Sp .RS 8 remove_effect_name .RE .PP \fBremove_effect_surname\fR (res) \- Remove current effect surname .IX Subsection "remove_effect_surname (res) - Remove current effect surname" .Sp .RS 8 remove_effect_surname .RE .SS "Track commands" .IX Subsection "Track commands" \fBselect_track\fR \- Set a particular track as the current, or default track against which track-related commands are executed. .IX Subsection "select_track - Set a particular track as the current, or default track against which track-related commands are executed." .Sp .RS 8 select_track | .RE .SH "REALTIME OPERATION" .IX Header "REALTIME OPERATION" Nama selects realtime or nonrealtime parameters based on the \&\fBrealtime_profile\fR, \fBecasound_buffersize\fR and \&\fBecasound_globals\fR fields in \fI.namarc\fR. You can optionally specify the buffersizes as a multiple of the \s-1JACK\s0 period size. Note that for best realtime operation under \&\s-1JACK\s0 you will have to configure jackd appropriately as well. .PP The \fBrealtime\fR and \fBauto\fR profiles are useful when using Nama/Ecasound for live fx processing or live monitoring. .PP The \fBrealtime\fR profile sets a small buffersize and other low latency settings whenever a soundcard or \s-1JACK\s0 client is connected. .PP The \fBnonrealtime\fR profile uses a bigger buffer, providing extended margins for stable operation. It is suitable for post-processing, or for recording without live monitoring responsibilities. .PP The \fBauto\fR profile defaults to nonrealtime settings. It switches to realtime, low-latency settings when a track has a live input. .SH "DIAGNOSTICS" .IX Header "DIAGNOSTICS" On any change in setup, the \s-1GUI\s0 display updates and \&\f(CW\*(C`show_tracks\*(C'\fR command is executed automatically showing what to expect the next time the engine is started. .PP You can use the \f(CW\*(C`chains\*(C'\fR command to verify the Ecasound chain setup. (The Ecasound command \f(CW\*(C`cs\-save\-as mysetup.ecs\*(C'\fR will additionally store all engine data, effects as well as routing.) .PP The \f(CW\*(C`dump\*(C'\fR command displays data for the current track. The \f(CW\*(C`dumpall\*(C'\fR command shows all state that would be saved. .PP This is the same output that is written to the \fIState.yml\fR file when you issue the \f(CW\*(C`save\*(C'\fR command. .SH "BUGS AND LIMITATIONS" .IX Header "BUGS AND LIMITATIONS" No latency compensation across signal paths is provided at present. This feature is under development. .SH "SECURITY CONCERNS" .IX Header "SECURITY CONCERNS" If you are using Nama with the NetECI interface (i.e. if Audio::Ecasound is \fInot\fR installed) you should block \s-1TCP\s0 port 2868 if your computer is exposed to the Internet. .SH "INSTALLATION" .IX Header "INSTALLATION" The following commands, available on Unixlike systems with Perl installed, will pull in Nama and other Perl libraries required for text mode operation: .PP \&\f(CW\*(C`cpanm Audio::Nama\*(C'\fR \&\-or\- \&\f(CW\*(C`PERL_MM_USE_DEFAULT=1 cpan Audio::Nama\*(C'\fR .PP To use the \s-1GUI,\s0 you will need to install Tk: .PP \&\f(CW\*(C`cpanm Tk\*(C'\fR .PP You may want to install Audio::Ecasound if you prefer not to run Ecasound in server mode: .PP \&\f(CW\*(C`cpanm Audio::Ecasound\*(C'\fR .PP You can pull the source code as follows: .PP \&\f(CW\*(C`git clone git://github.com/bolangi/nama.git\*(C'\fR .PP Consult the \fI\s-1BUILD\s0\fR file for build instructions. .SH "SUPPORT" .IX Header "SUPPORT" The Nama mailing list is a suitable forum for questions regarding Nama installation, usage, bugs, feature requests, etc. .PP http://www.freelists.org/list/nama .PP For questions and discussion related to Ecasound .PP https://lists.sourceforge.net/lists/listinfo/ecasound\-list .SH "PATCHES" .IX Header "PATCHES" The modules that make up this application are the preprocessed output from several source files. Patches against these source files are preferred. .SH "AUTHOR" .IX Header "AUTHOR" Joel Roth, .SH "CONTRIBUTORS" .IX Header "CONTRIBUTORS" Alex Stone Brett McCoy Dubphil F. Silvain ++ Joy Bausch Julien Claassen ++ Kevin Utter Lars Bjørndal Philippe Schelté Philipp Überbacher Raphaël Mouneyres ++ Rusty Perez S. Massy ++ .SH "COPYRIGHT & LICENSE" .IX Header "COPYRIGHT & LICENSE" Copyright (c) 2009\-2013 by Joel Roth. .PP This is free software; you can redistribute it and/or modify it under the terms of the \s-1GNU\s0 General Public License, Version 3.