ecasound-iam(1)

๐Ÿ“ฆ
version 2.9.3 ยท 2 versions
, in debian bookworm, debian trixie, ubuntu jammy, ubuntu noble, ubuntu questing, ubuntu resolute, ubuntu stonking

๐ŸŒธ ecasound-iam(1) โ€” the ecasound interactive mode glow-up ๐ŸŒธ

okay bestie, gather round, because this is the page for ecasound-iam, aka the ecasound interactive mode, and it's a big one. it's from the Multimedia software section of the manual, so you already know it's gonna be a whole vibe. ๐Ÿ’…


โœจ NAME โœจ

ecasound-iam โ€” ecasound interactive mode. yep. that's the whole name. iconic, minimal, no notes. ๐ŸŽ€


๐ŸŒˆ SYNOPSIS ๐ŸŒˆ

okay so... there's literally nothing here. the synopsis is empty. it's giving mystery, it's giving "figure it out yourself, queen". not a single line. we move on. ๐Ÿฆ‹


๐Ÿ’– DESCRIPTION ๐Ÿ’–

so here's the tea: the Ecasound library has an interpreter module inside it that gets a whole set of commands โ€” commands whose entire job is to boss around the various library services. that whole system is called the ecasound interactive mode, aka EIAM (yes, an acronym, because of course). and the best part? every program that's linked to the ecasound library can use it. everyone's invited to the party fr fr. ๐Ÿซถ

๐ŸŒŸ ECI API and return types ๐ŸŒŸ

there's one special little corner of interactive mode called the control interface (ECI) โ€” it's a small library that makes it super easy to reach the interactive mode commands from outside of libecasound. like, a little backstage pass. ๐ŸŽŸ๏ธ

and here's the thing โ€” when you send commands through the control interface, those commands can also send stuff back. the return value types that are currently supported are:

  • string โ€” written as [s]
  • list of strings โ€” written as [S], and heads up, the elements are separated by commas, and they get escaped if that's necessary
  • integer โ€” written as [i]
  • long integer โ€” written as [li]
  • floating-point number โ€” written as [f]

these definitions get used all the way through this document, so don't forget them. ๐Ÿ’œ

commands that return absolutely nothing (void) get marked with [-]. and one more: return type [e] marks an error condition. so if an interactive mode command ends up in an error, you get back an error string that explains what went wrong. helpful! ๐Ÿ’€

okay bestie, listen closely, because this is the part where we talk about what you can't do. ๐Ÿซฃ

you can not use every single interactive mode command to modify and control objects that belong to a chainsetup that's already connected. nope. so what happens if ecasound receives one of those commands while it's connected? it will automatically disconnect the chainsetup โ€” and then it'll later try to reconnect it. dramatic? a little. necessary? apparently. ๐Ÿ˜ญ

here are the commands that come with this limitation:

cs-remove, cs-set-length, cs-set-length-samples, cs-toggle-loop,
cs-set-param,  cs-option, c-add,  c-remove, c-rename, c-clear,
ai-add, ai-remove, ai-attach,  ai-forward, ai-rewind,
ai-set-position, ai-set-position-samples, ao-add, ao-add-default,
ao-remove,  ao-attach,  ao-forward, ao-rewind, ao-set-position,
ao-set-position-samples.

next up: there's a second group of commands that you can use with a connected chainsetup, but they need the engine to pause temporarily (only if it's actually running), and that pause can cause audible gaps in playback and recording. so in practice, rn, it is not possible to add or remove chain operators in a gapless/seamless kind of way. periodt. ๐Ÿ’…

the commands affected by that:

cop-add, ctrl-add,

and then there's the third group โ€” the lucky ones. these commands can be used on a connected chainsetup and while the engine is running. (quick note: this isn't a complete list, but at minimum, these ones are supported. ๐Ÿ“)

cop-set, copp-set, ctrlp-set, c-bypass, c-muting, setpos,
cs-set-position, *-describe *-deselect, *-get, *-list, *-register
*-select, *-selected, *-status, dump-*, int-*, jack-*, map-*

๐Ÿ‘‘ GENERAL ๐Ÿ‘‘

the main character commands. let's go. โญ

  • quit, q โ€” quits the ecasound session. what that actually means in practice depends on whichever client implementation you're dealing with, so it's giving "it depends". in ecasound interactive mode, quit terminates the ecasound process. but when it's sent over an ecasound server connection (aka NetECI), quit terminates the active network connection โ€” it does not terminate the ecasound server process. know the difference bestie. [-]
  • start, t โ€” processing gets started (play!). if any errors show up on startup, you get an error string back. [e]
  • stop, s โ€” stops processing. [-]
  • stop-sync, s โ€” stops processing with a blocking call, meaning it does not return until the engine has actually stopped. it waits. patiently. ๐Ÿงš [-]
  • run โ€” like start, but it blocks until processing is finished. if errors pop up on startup, or during the process, you get an error string back. [e]
  • debug 'debug-level' โ€” sets the debug level to 'debug-level'. quick heads up though: client programs can reimplement the debug routines, so don't be shocked if that happens. [-]
  • resource-file 'path-to-file' โ€” overrides the global and user resource files. important: it does not affect objects that were already created. this command is the equivalent of the -R ecasound option (go peek at the ecasound (1) man page for that one). ๐Ÿ’–
  • -prefix:arg1,...,argN โ€” equivalent to issuing cs-option -prefix:arg1,...,argN). see the documentation for cs-option if you want the full breakdown.
  • help', 'h' โ€” Help! ๐Ÿ†˜ [-]

๐Ÿ’œ GLOBAL ๐Ÿ’œ

  • engine-status โ€” returns a string describing the engine status. the possible vibes are: running, stopped, finished, error, not ready. see also cs-status. [s]
  • engine-launch โ€” starts the real-time engine. the engine will execute the chainsetup that's currently connected (peep cs-connect). heads up: this action does not start actual processing yet โ€” that's start and stop's job. and when ecasound is being used as a JACK client, issuing engine-launch makes ecasound an active JACK client, which means ecasound's ports can be connected to other JACK clients. ๐Ÿ”ฅ [-]
  • engine-halt โ€” stops the engine. it does not disconnect the chainsetup that was running. see also cs-disconnet and stop. when ecasound is used as a JACK client, engine-halt will make ecasound become a deactivated client, and all JACK connections get torn down. ๐Ÿ’€ [-]

okay that's part one, bestie โ€” and there's more coming, so don't you dare close the tab. ๐ŸŒˆ

CHAINSETUPS โœจ

okay so the chainsetup is literally the central data object, the main character of the whole ecasound universe. All other objects (inputs, outputs, chains, etc) are connected to some chainsetup. There can be many chainsetups, but only one can be connected. Similarly, only one chainsetup can be selected. If not otherwise specified, operations are done on the selected chainsetup. Some operations also require that the selected chainsetup is not connected. ๐Ÿ’…


  • cs-add โ€™nameโ€™ โ€” Adds a new chainsetup with name โ€™nameโ€™. โ€™nameโ€™ is now the selected chainsetup. [-] slay.
  • cs-remove โ€” Removes the currently selected chainsetup. [-] bye bestie.
  • cs-list โ€” Returns a list of all chainsetups. [S]
  • cs-select โ€™nameโ€™ โ€” Selects chainsetup โ€™nameโ€™. [-]
  • cs-selected โ€” Returns the name of the currently selected chainsetup. [s]
  • cs-index-select โ€™cs_indexโ€™, cs-iselect โ€™cs_indexโ€™ โ€” Selects a chainsetup based on a short index string. Chainsetup names can be rather long, so this command is here to avoid typing those long names. โ€™cs_indexโ€™ is an integer value, where โ€™1โ€™ refers to the first audio input/output. You can use โ€™cs-listโ€™ and โ€™cs-statusโ€™ to get a full list of currently available chainsetups. [-]
  • cs-load โ€™filenameโ€™ โ€” Adds a new chainsetup by loading it from file โ€™filenameโ€™. โ€™filenameโ€™ is now the selected chainsetup. [-]
  • cs-save โ€” Saves the currently selected chainsetup to file. If the chainsetup was loaded from a file, the saved version will replace the original. If it doesnโ€™t have a default filename, itโ€™s saved to "chainsetup_name.ecs". [-]
  • cs-save-as โ€™filenameโ€™ โ€” Saves the currently selected chainsetup to file โ€™filenameโ€™. [-]
  • cs-edit โ€” Currently selected chainsetup is saved to a temporary file. This file is loaded to an external editor (see ecasoundrc (5)). After editing, the chainsetup is loaded back to ecasound. [-]
  • cs-is-valid โ€” Whether the currently selected chainsetup is valid (=can be connected)? [i]
  • cs-connect โ€” Connect the currently selected chainsetup to engine. When connecting, all resources (e.g. files, soundcard devices, external programs) needed to execute the chainsetup are reserved. Only one chainsetup can be connected at a time. Error string is returned if connection fails (for instance due to error in allocating the resources). [e]
  • cs-disconnect โ€” Disconnect the currently connected chainsetup. This action will free all external resources needed by the chainsetup. [-]
  • cs-connected โ€” Returns the name of the currently connected chainsetup. [s]
  • cs-rewind โ€™time-in-secondsโ€™, rewind โ€™time-in-secondsโ€™, rw โ€™time-in-secondsโ€™ โ€” Rewinds the current chainsetup position by โ€™time-in-secondsโ€™ seconds. Position of all inputs and outputs attached to the selected chainsetup is also affected. [-]
  • cs-forward โ€™time-in-secondsโ€™, forward โ€™time-in-secondsโ€™, fw โ€™ttime-in-secondsโ€™ โ€” The current chainsetup position is forwarded by โ€™time-in-secondsโ€™ seconds. Position of all inputs and outputs attached to the selected chainsetup is also affected. [-] (yes bestie, that extra t in โ€™ttime-in-secondsโ€™ is literally in the manual, iykyk ๐Ÿ’€)
  • cs-set-position โ€™time-in-secondsโ€™, cs-setpos โ€™time-in-secondsโ€™, setpos โ€™time-in-secondsโ€™, set-position โ€™time-in-secondsโ€™ โ€” Sets the chainsetup position to โ€™time-in-secondsโ€™ seconds from the beginning. Position of all inputs and outputs attached to the selected chainsetup is also affected. [-]
  • cs-set-position-samples โ€™time-in-samplesโ€™ โ€” Sets the chainsetup position to โ€™time-in-samplesโ€™ samples from the beginning. Position of all inputs and outputs attached to the selected chainsetup is also affected. [-]
  • cs-get-position, cs-getpos, getpos, get-position โ€” Returns the current chainsetup position in seconds. [f]
  • cs-get-position-samples โ€” Returns the current chainsetup position in samples. [li]
  • cs-get-length, get-length โ€” Returns the chainsetup length in seconds (if known). [f]
  • cs-get-length-samples, get-length-samples โ€” Returns the chainsetup length in samples (if known). [li]
  • cs-set-length โ€™secondsโ€™ โ€” Sets processing time in seconds (doesnโ€™t have to be an integer value). A special-case value of โ€™-1โ€™ will set the chainsetup length according to the longest input object. [-]
  • cs-set-length-samples โ€™samplesโ€™ โ€” Sets processing time in samples. [-]
  • cs-toggle-loop โ€” Toggle looping. When processing is finished, engine will start again from the initial position. Itโ€™s not always possible to enable looping (for instance all inputs and outputs have infinite length and chainsetup length is not explicitly set with โ€™cs-set-lengthโ€™). [-]
  • cs-set-param โ€” Interpret general chainsetup parameters like for example "-b" (buffersize), "-n" (name), etc. See ecasound (1) for more info. [-]
  • cs-set-audio-format โ€™bits,channels,sample_rateโ€™ โ€” Set the default sample parameters for the currently selected chainsetup. For example cd-quality audio would be "16,2,44100". This does the same as command-line argument "-f" (see ecasound (1)). [-]
  • cs-status, status, st โ€” Prints out status information about available chainsetup. Detailed information is printed out for connected (=available for running) nd selected (=available for editing) chainsetups. Other chainsetups are listed, but further details are suppressed. To get full details of a specific chainsetup, select it with โ€™cs-selectโ€™ or โ€™cs-iselectโ€™, and then issue โ€™cs-selectโ€™. [s] (and yes, that nd is a typo in the original, but we keep it fr fr)
  • cs-option โ€™-prefix:arg1,...,argNโ€™ โ€” One powerful feature of the interactive-mode is that it provides full access to ecasoundโ€™s command-line syntax. For instance, command "cs-option -efb:400,200" means that a bandpass filter is added to the currently selected chain, with initial parameters 400 (center frequency) and 200 (width in Hz).
Note that session level options (such as setting debug level) can not be used with โ€™cs-optionโ€™ (i.e. only options that modify chainsetups).
Note! Ecasound interactive mode implicitly interprets all strings beginning with a โ€™-โ€™ as "cs-option string".

CHAINS ๐Ÿฆ‹

Chain is a simple signal flow abstraction. Every chain has one input and one output. All chain operators and their controllers are attached to chains. Chains can be muted, unmuted and be bypassed. If not otherwise stated, all operations are done to the currently selected chainsetup. โœจ

  • c-add โ€™cname1,...,cnameNโ€™ โ€” Adds a set of chains. Added chains are automatically selected. Note that commas in chain names are not allowed. [-]
  • c-remove โ€” Removes selected chains. [-]
  • c-list โ€” Returns a list of all chains. [S]
  • c-select โ€™cname1,...,cnameNโ€™ โ€” Selects chains. Other chains are automatically deselected. [-]
  • c-index-select โ€™index1,...,indexNโ€™, c-iselect โ€™index1,...,indexNโ€™ โ€” Selects a set of chains based on the list of indixes. Each index is an integer value, where โ€™1โ€™ refers to the first chain. You can use โ€™c-listโ€™ and โ€™c-statusโ€™ to get a full list of currently available chains. [-]
  • c-select-all โ€” Selects all chains. [-]
  • c-select-add โ€™cname1,...,cnameNโ€™ โ€” Selects more chains. [-]
  • c-deselect โ€™cname1,...,cnameNโ€™ โ€” Deselects chains. [-]
  • c-selected โ€” Returns a list of selected chains. [S]
  • c-clear โ€” Clear selected chains by removing all chain operators and controllers. Doesnโ€™t change how chains are connected to inputs and outputs. [-]
  • c-rename โ€™new_nameโ€™ โ€” Renames the selected chain. When using this command, exactly one chain must be selected. [-]
  • c-mute <on|off|toggle> โ€” Set the mute state of the currently selected chain. When chain is muted, it will only output silence.

The command takes a single parameter: "on" -> chain is muted, "off" -> not muted, and "toggle" -> change the muting state. If parameter is omitted, "toggle" is assumed (muting is either enabled or disabled, depending on previous state).

Control of chain and chain operator muting states is independent. If "c-mute off" is executed, the states of individual cop-bypass commands will take effect. If chain is muted, the chain will output silence irrespective of the individual chain operator muting state. [-]

  • c-bypass <on|off|toggle> โ€” Set the bypass state of the currently selected chain. When chain is bypassed, sample data is passed through unprocessed (all chain operators are disabled for the given chain).

The command takes a single parameter: "on" -> chain is bypassed, "off" -> no bypass, and "toggle" -> change the bypass state. If parameter is omitted, "toggle" is assumed (bypass is either enabled or disabled, depending on previous state).

Control of chain and chain operator bypass states is independent. If chain bypass is disabled, the states of individual cop-bypass commands will take effect. If chain is bypassed, all operators are bypassed independetly of their cop-bypass state. [-]

  • c-status, cs โ€” Print status info about all chains. [s]
  • c-is-bypassed โ€” Returns true if selected chain is currently bypassed (none of the chain operators are run). See โ€™c-bypassโ€™. [i]
  • c-is-mute โ€” Returns true if selected chain is currently muted (outputs silence as its output). See โ€™c-muteโ€™. [i]

๐ŸŽง AUDIO INPUT/OUTPUT OBJECTS ๐ŸŽง

Okay so bestie, unless it says otherwise, every single operation down here happens to the currently selected object, mmkay? And the tea is: anything with an ai- prefix is messing with audio inputs, and anything with ao- is messing with outputs. Simple as.


  • ai-add 'input_format_string' โ€” adds a brand new input object โœจ. Wanna know about the argument format? Go peek at the ecasound (1) man page, the -i option has the deets. Syntax heads-up: if any of the params (like, say, a filename) has commas in it, you gotta wrap that param in double-quotes. [-]
  • ao-add 'output_format_string' โ€” adds a shiny new output object ๐Ÿ’–. Argument format lives in the ecasound (1) man page under the -o option. If you justโ€ฆ don't give an argument? It adds a default output device for you (check ecasoundrc (5)). Syntax heads-up again: if any param (filenames, I'm looking at you) contains commas, wrap it in double-quotes. [-]
  • ao-add-default โ€” adds the default output device, no thoughts required (see ecasoundrc (5)). [-]
  • ai-describe, ao-describe โ€” returns a Ecasound Option Syntax (EOS) compliant string describing the input/output ๐Ÿซถ. More EOS lore is in the Ecasound User's Guide. Fun fact: this command dropped in ecasound 2.4.4. [s]
  • ai-select 'aobject_name', ao-select 'aobject_name' โ€” picks an audio object. 'aobject_name' is the string you used when you made the object (aka the first argument you handed to ai-add/ao-add). IMPORTANT DIFFERENCE ALERT: unlike ai-add/ao-add, you do NOT put the object name in double quotes here for ai-select/ao-select. And if a chainsetup has multiple inputs or outputs with the same name, ai-select and ao-select will grab the first matching instance. Wanna grab a specific one? That's what ai-iselect and ao-iselect are for. [-]
  • ai-index-select 'aobject_index', ai-iselect 'aobject_index', ao-index-select 'aobject_index', ao-iselect 'aobject_index' โ€” selects an audio object based on a lil short index string. Real talk, filenames can get obnoxiously long, and this saves you from typing out a whole novel just to select something. 'aobject_index' is an integer, where '1' = the first audio input/output. Use ai-list and ao-list to see everything currently available. [-]
  • ai-selected, ao-selected โ€” returns the name of the currently selected audio object. [s]
  • ai-attach, ao-attach โ€” attaches the currently selected audio object to all selected chains. [-]
  • ai-remove, ao-remove โ€” yeets the currently selected audio object out of the chainsetup. [-]
  • ai-forward 'time_in_seconds', ai-fw 'time_in_seconds', ao-forward 'time_in_seconds', ao-fw 'time_in_seconds' โ€” fast-forwards the selected audio object by 'time-in-seconds' seconds โฉ. Give it a floating point value (like, 0.001 is literally the same as 1ms). [-]
  • ai-rewind 'time_in_seconds', ai-rw 'time_in_seconds', ao-rewind 'time_in_seconds', ao-rw 'time_in_seconds' โ€” rewinds the selected audio object by 'time-in-seconds' seconds โช. Floating point value again, 0.001 = 1ms, you know the vibe. [-]
  • ai-setpos 'time_in_seconds', ai-set-position 'time_in_seconds', ao-setpos 'time_in_seconds', ao-set-position 'time_in_seconds' โ€” sets the audio object position to 'time_in_seconds' ๐ŸŽฏ. [-]
  • ai-set-position-samples 'time_in_samples', ao-set-position-samples 'time_in_samples' โ€” sets the audio object position to 'time_in_samples'. Same energy, but in samples not seconds. [-]
  • ai-getpos, ai-get-position, ao-getpos, ao-get-position โ€” returns the audio object position in seconds. [f]
  • ai-get-position-samples, ao-get-position-samples โ€” returns the audio object position in samples. [li]
  • ai-get-length, ao-get-length โ€” returns the audio object length in seconds. [f]
  • ai-get-length-samples, ao-get-length-samples โ€” returns the audio object length in samples. [li]
  • ai-get-format, ao-get-format โ€” returns the audio format of the selected audio input/output as a formatted string ๐ŸŽ€. Peep the docs for the -f command-line option. [s]
  • ai-list, ao-list โ€” returns a list of every input/output object. [S]
  • aio-register โ€” prints out a list of all the registered audio object types. [s]
  • aio-status โ€” audio object status: index strings, position, length, etc. The whole rundown. [s]

โ›“๏ธ CHAIN OPERATORS โ›“๏ธ

So chain operators are the glow-up station โ€” they process and analyze your sample data, and they get attached to chains. Unless stated otherwise, the currently selected chainsetup and chain are the ones in play. Also heads up: 'chainop_id' and 'param_id' are how you point at specific chain operators and their parameters. The first valid value for these is 1 (not zero, bestie, don't come at me).


  • cop-add 'cop_format_string' โ€” adds a new chain operator ๐Ÿ’…. And plot twist: this isn't just for normal chain operators, you can also use it to add effect presets and various plugins. But wait โ€” it is not possible to add operators to multiple chains at once. In other words, only one chain should be selected when you fire off cop-add. See the ecasound (1) man page for more. [-]
  • cop-bypass <on|off|toggle> โ€” sets the bypass state of the currently selected chain operator. Takes one parameter: "on" โ†’ operator is bypassed, "off" โ†’ no bypass, and "toggle" โ†’ flips the bypass state. Omit the parameter entirely and "toggle" is assumed (so it enables or disables bypass depending on whatever the previous state was). [-]
  • cop-is-bypassed โ€” returns true if the selected chain operator is currently bypassed, aka temporarily not part of the processing chain ๐Ÿšซ. [i]
  • cop-describe โ€” returns a Ecasound Option Syntax (EOS) compliant string describing the chain operator. EOS details live in the Ecasound User's Guide. Introduced in ecasound 2.4.4. [s]
  • cop-remove โ€” removes the selected chain operator. Gone. Deleted. [-]
  • cop-list โ€” returns a list of all the chain operators attached to the currently selected chain. [S]
  • cop-select 'param_id', cop-index-select 'param_id', cop-iselect 'param_id' โ€” selects a chain operator. [-]
  • cop-selected โ€” returns the index number of the currently selected chain operator. [i]
  • cop-set 'chainop_id,param_id,value' โ€” changes the value of a single chain operator parameter. And unlike the other chain operator commands, you can also use this one during processing ๐Ÿ‘‘. Also peep cop-get. [-]
  • cop-get 'chainop_id,param_id' โ€” returns the current value of the chain operator parameter identified by 'chainop_id' and 'param_id'. It's a shorthand for 'cop-select chainop_id ; copp-iselect param_id ; copp-get'. [f]
  • cop-status โ€” returns info about the chain operator status. [s]
  • copp-list โ€” returns a list of the selected chain operator's parameters. [S]
  • copp-select 'param_id', copp-index-select 'param_id', copp-iselect 'param_id' โ€” selects a chain operator parameter. [-]
  • copp-selected โ€” returns the index number of the currently selected chain operator parameter. [i]
  • copp-set 'value' โ€” sets the selected parameter value to 'value'. [-]
  • copp-get โ€” returns the selected parameter value. Also see cop-get. [f]
  • cop-register โ€” prints a list of all the registered chain operators. [s]
  • preset-register โ€” prints a list of all the registered effect presets. [s]
  • ladspa-register โ€” prints a list of all the registered LADSPA plugins ๐Ÿงš. [s]

๐ŸŽ›๏ธ CONTROLLERS ๐ŸŽ›๏ธ

Controllers are the lil remote-controls for individual chain operator parameters โ€” they get attached to chains. Unless it says otherwise, the currently selected chainsetup and chains are what's being used.


  • ctrl-add 'copc_format_string' โ€” adds a new controller and attaches it to the currently selected chain operator ๐Ÿ’œ. The argument syntax is either "-<id_string>:par1,...,parN" or just "<id_string>:par1,...,parN". And if a parameter itself contains commas, wrap that parameter in double-quotes. See the ecasound (1) man page for more. [-]
  • ctrl-describe โ€” returns a Ecasound Option Syntax (EOS) compliant string describing the controller. EOS lore โ†’ Ecasound User's Guide. Introduced in ecasound 2.4.4. [s]
  • ctrl-remove โ€” removes the selected controller. [-]
  • ctrl-list โ€” returns a list of all the controllers attached to the currently selected chain. [S]
  • ctrl-select 'param_id', ctrl-index-select 'param_id', ctrl-iselect 'param_id' โ€” selects a controller. [-]
  • ctrl-selected โ€” returns the index number of the currently selected controller. [i]
  • ctrl-status โ€” returns info about the controller status. [s]
  • ctrl-register โ€” prints a list of all the registered controllers. [s]
  • ctrl-get-target โ€” returns the index number of the chain operator that's connected to the selected controller ๐Ÿ”—. That returned index points at the currently selected chain (peep cop-list). [i]
  • ctrlp-list โ€” returns a list of all the controller parameters. Introduced in ecasound 2.4.2. [S]
  • ctrlp-select โ€” selects a controller parameter. Introduced in ecasound 2.4.2. [-]
  • ctrlp-selected โ€” returns the index number of the currently selected controller parameter. Introduced in ecasound 2.4.2. [i]
  • ctrlp-get โ€” returns the selected controller parameter value. Introduced in ecasound 2.4.2. [f]
  • ctrlp-set โ€” sets the selected controller parameter value to 'value'. Introduced in ecasound 2.4.2. [-]

๐ŸŽง JACK CONNECTION MANAGEMENT ๐ŸŽง

Okay so if your Ecasound was compiled with support for the JACK audio server, you get this whole lil' command set for wrangling connections between JACK ports. If not... bestie, these just aren't there. ๐Ÿ’…

  • jack-connect 'src-port' 'dest-port' โ€” hooks the two ports you passed in together. It's basically the same energy as the jack_connect command line tool that ships with the JACK package. [-]
  • jack-disconnect 'src-port' 'dest-port' โ€” un-hooks the two ports you passed in. Same vibe as the jack_disconnect command line tool from the JACK package. [-]
  • jack-list-connections โ€” returns a list of all JACK ports, plus a list of connections for each port. Lowkey the same thing as the jack_lsp command line tool (like, jack_lsp -c) that comes with the JACK package. [s]

๐Ÿ› ๏ธ INTERNAL COMMANDS ๐Ÿ› ๏ธ

These are not aimed at normal everyday use, fr fr. They exist mainly so scripting and frontends can do their thing. ๐Ÿงš

  • int-cmd-list โ€” returns a list of every registered interactive mode command. [S]
  • int-log-history โ€” returns recent log messages sent by libecasound modules. Genuinely a great tool for debugging ECI/EIAM scripts and applications. This command was introduced in ecasound 2.4.0. [s]
  • int-output-mode-wellformed โ€” selects the well-format output format for log messages. [-]
  • int-set-float-to-string-precision โ€” sets the precision used in float-to-text conversions. Ngl, you can use this to control the precision of float return values for ECI commands. [-]
  • int-set-log-history-length โ€” sets the log history length. Defaults to 0 items. This command was introduced in ecasound 2.4.0. [-]
  • int-cmd-version-string โ€” returns the ecasound interactive mode parser version string. [s]
  • int-cmd-version-lib-current โ€” returns the ecasound interactive mode library interface version (libtool). [i]
  • int-cmd-version-lib-revision โ€” returns the ecasound interactive mode library interface revision (libtool). [i]
  • int-cmd-version-lib-age โ€” returns the ecasound interactive mode library interface age (libtool). [i]

๐Ÿ—บ๏ธ OBJECT MAPS ๐Ÿ—บ๏ธ

Object maps are the central repositories for commonly used object types. The whole point is that by querying the maps, applications can get a list of all registered object types and their properties. Very main character of them. โœจ

  • map-cop-list โ€” prints a list of registered chain operators, using the format spelled out in the section OPERATOR DESCRIPTIONS. [s]
  • map-preset-list โ€” prints a list of registered effect presets, using the format spelled out in the section OPERATOR DESCRIPTIONS. [s]
  • map-ladspa-list โ€” prints a list of registered LADSPA plugins, using the format spelled out in the section OPERATOR DESCRIPTIONS. [s]
  • map-ladspa-id-list โ€” prints a list of registered LADSPA plugins, using the format spelled out in the section OPERATOR DESCRIPTIONS. Numerical LADSPA plugin identifiers are used here. [s]
  • map-ctrl-list โ€” prints a list of registered controllers, using the format spelled out in the section OPERATOR DESCRIPTIONS. [s]

๐Ÿ—‘๏ธ DUMP COMMANDS ๐Ÿ—‘๏ธ

The dump commands below are not meant for normal use. Their whole deal is giving you an easy way to pull internal state info out of libecasound. Every dump command spits out a single line with the syntax "key value" to the selected output stream (which defaults to stdout). ๐Ÿ™ˆ

  • dump-target 'filename' โ€” sets the target stream for dumping. [-]
  • dump-status โ€” dumps the engine status: 'running', 'stopped', 'finished' or 'notready'. [-]
  • dump-position โ€” dumps the global position. Printed in seconds using a floating-point representation. [-]
  • dump-length โ€” dumps the overall processing length. Printed in seconds using a floating-point representation. [-]
  • dump-cs-status โ€” dumps the status string for the currently selected chainsetup: 'connected', 'selected', or an empty string. [-]
  • dump-c-selected โ€” dumps the name of the currently selected chain. [-]
  • dump-ai-selected โ€” dumps the label of the currently selected audio input. If no input is selected, it dumps an empty string. [-]
  • dump-ai-position โ€” dumps the position of the currently selected audio inputs. Printed in seconds, using a floating-point representation. [-]
  • dump-ai-length โ€” dumps the length of the currently selected audio input. Printed in seconds, using a floating-point representation. [-]
  • dump-ai-open-state โ€” dumps audio input state info. Either 'open' or 'closed'. [-]
  • dump-ao-selected โ€” dumps the label of the currently selected audio output. If no output is selected, it dumps an empty string. [-]
  • dump-ao-position โ€” dumps the position of the currently selected audio outputs. Printed in seconds, using a floating-point representation. [-]
  • dump-ao-length โ€” dumps the length of the currently selected audio output. Printed in seconds, using a floating-point representation. [-]
  • dump-ao-open-state โ€” dumps audio output state info. Either 'open' or 'closed'. [-]
  • dump-cop-value 'chainop,param' โ€” dumps a chain operator parameter value. 'chainop' and 'param' are operator and parameter index values (1...n). [-]

๐Ÿ“‹ OPERATOR DESCRIPTIONS ๐Ÿ“‹

The map-xxx-list commands return a string containing all registered objects of the given type xxx. Each line of the output describes one registered type. The syntax used is:

'keyword,name,description,num_of_params,par1_def,par2_def,...'

parX_def describes one object parameter. This definition shows up for all parameters of the described object type. The syntax used is:

'name,description,defaultvalue,upper_bound_flag,upper_bound,
lower_bound_flag,lower_bound,toggled_flag,integer_flag,
logarithmic_flag,output_flag'

For the exact descriptions of these fields, pls go look at the header file ecasound/libecasound/eca-operator.h. ๐Ÿ‘‘


๐Ÿ’€ DEPRECATED COMMANDS ๐Ÿ’€

Use of the following commands is deprecated. They still work in the current version of Ecasound, but bestie... they will be dropped in the future. So like, don't build your whole personality on them. ๐Ÿ˜ญ

ai-wave-edit, ao-wave-edit

๐Ÿ‘€ SEE ALSO ๐Ÿ‘€

ecasound (1), ecatools (1), ecasoundrc (5)


๐ŸŒธ AUTHOR ๐ŸŒธ

Kai Vehmanen, <kvehmanen -at- eca -dot- cx <kvehmanen -at- eca -dot- cx>>

And that's the whole page, bestie โ€” every single flag, every [-] and [s] and [S] and [i], all accounted for, no cap. ๐Ÿซถ

This was ecasound-iam(1), dated 03.06.2012 โ€” thanks for reading all four parts, mwah, slay, periodt. ๐Ÿ’–โœจ๐ŸŽ€๐Ÿฆ‹