ecasound-iam(1)
๐ธ 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! ๐
๐ Limitations related to real-time control and modifications ๐
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,quitterminates the ecasound process. but when it's sent over an ecasound server connection (aka NetECI),quitterminates 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โ likestart, 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-Recasound option (go peek at theecasound (1)man page for that one). ๐-prefix:arg1,...,argNโ equivalent to issuingcs-option -prefix:arg1,...,argN). see the documentation forcs-optionif 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 alsocs-status.[s]engine-launchโ starts the real-time engine. the engine will execute the chainsetup that's currently connected (peepcs-connect). heads up: this action does not start actual processing yet โ that'sstartandstop's job. and when ecasound is being used as a JACK client, issuingengine-launchmakes 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 alsocs-disconnetandstop. when ecasound is used as a JACK client,engine-haltwill 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 (seeecasoundrc (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 extratinโ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. Seeecasound (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"(seeecasound (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, thatndis 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 theecasound (1)man page, the-ioption 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 theecasound (1)man page under the-ooption. If you justโฆ don't give an argument? It adds a default output device for you (checkecasoundrc (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 (seeecasoundrc (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 inecasound 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 toai-add/ao-add). IMPORTANT DIFFERENCE ALERT: unlikeai-add/ao-add, you do NOT put the object name in double quotes here forai-select/ao-select. And if a chainsetup has multiple inputs or outputs with the same name,ai-selectandao-selectwill grab the first matching instance. Wanna grab a specific one? That's whatai-iselectandao-iselectare 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. Useai-listandao-listto 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.001is literally the same as1ms).[-]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-fcommand-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 offcop-add. See theecasound (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 inecasound 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 peepcop-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 seecop-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 theecasound (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 inecasound 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 (peepcop-list).[i]ctrlp-listโ returns a list of all the controller parameters. Introduced inecasound 2.4.2.[S]ctrlp-selectโ selects a controller parameter. Introduced inecasound 2.4.2.[-]ctrlp-selectedโ returns the index number of the currently selected controller parameter. Introduced inecasound 2.4.2.[i]ctrlp-getโ returns the selected controller parameter value. Introduced inecasound 2.4.2.[f]ctrlp-setโ sets the selected controller parameter value to'value'. Introduced inecasound 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 thejack_connectcommand 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 thejack_disconnectcommand 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 thejack_lspcommand 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. ๐โจ๐๐ฆ
๐ฆ where this page comes from
- debian bookworm: ecasound 2.9.3-4+b1 ยท GPL-2.0-or-later
- debian trixie: ecasound 2.9.3-4+b5 ยท GPL-2.0-or-later
- ubuntu jammy: ecasound 2.9.3-4 ยท GPL-2.0-or-later
- ubuntu noble: ecasound 2.9.3-4build2 ยท GPL-2.0-or-later
- ubuntu questing: ecasound 2.9.3-4build2
- ubuntu resolute: ecasound 2.9.3-4build3 ยท GPL-2.0-or-later
- ubuntu stonking: ecasound 2.9.3-4build3 ยท GPL-2.0-or-later
- ๐ girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms