ecasound

Homepage: https://github.com/emacsorphanage/ecasound

Author: Mario Lang

Updated:

Summary

Interactive and programmatic interface to Ecasound

Commentary

This file implements several aspects of ecasound use:

* A derived-major-mode, from comint mode for an inferior ecasound
process (ecasound-aim-mode).  Complete with context sensitive
completion and interactive features to control the current process
using ECI.

* Ecasound Control Interface (ECI) library for programmatic control
of a Ecasound process.  This allows you to write Ecasound batch
jobs in Emacs-Lisp with Lisp functions and return values.  Have a
look at eci-example and ecasound-normalize.

* ecasound-ewf-mode, a mode for editing .ewf files.


Usage:

You need a very recent version of ecasound for this file to work correclty.
Something >=2.1dev12, this currently means you need to compile it
from CVS.

Put ecasound.el in your load-path and require it in your .emacs.
Set `ecasound-program' to the path to your ecasound executable.

 (setq load-path (cons "/home/user/elisp")
 (require 'ecasound)
 (setq ecasound-program "/home/user/bin/ecasound"
       eci-program "/home/user/bin/ecasound")

Use M-x ecasound RET to invoke an inferior ecasound process.

For programmatic use of the ECI API, have a look at `eci-init',
`eci-command' and in general the eci-* namespace.

Bugs:

The function ecasound-copp-increase is used to allow the use of +/-
on the copp-select button to change the value of the number.
Strangely, if this function is used, the number field changes,
but also does no longer be a field, i.e., it can no longer
be edited.   Any ideas?

Todo:

* Convince Kai to make NetECI look and behave exactly like ecasound -c.
This would make it very easy to make neteci connections using the current
code.  Just set eci-program to (host . port).
* Cache things like c-, cs- and cop-list as well as c-, cs- and
engine-status in buffer-local variables like it's already done for
cop- and ladspa-register.
* Tweak the mode-line to include status informations like engine-status
or inputs/outputs/chains or the current selected cs or chains.
* Add NetECI support to fetch status info (eci-hide-output t calls)
via a separate, not visible buffer.
* Write eci-cop-register alike support for preset-register.
* Copy documentation for ECI commands into eci-* docstrings and menu
:help keywords.
* Expand the menu.
* Bind most important interactive functions in ecasound-aim-mode-map
(which layout to use?)
* Collapse all the duplicate code into a macro and an alist which
defines the available eci commands.  (This seems rather complicated
and is probably not worth the effort.)

Dependencies

Reverse dependencies