Enable History and Tab Completion in Ecasound

Ecasound's interactive mode provides a powerful command-driven environment for multitrack audio processing, recording, and routing. While users frequently encounter a bare-bones shell lacking navigation features by default, command history and tab completion can indeed be enabled. This functionality is achieved either by running a build compiled with GNU Readline support or by wrapping the interactive session with the rlwrap utility.

Native GNU Readline Support

Ecasound includes native support for command-line editing, command history, and context-sensitive tab completion via the GNU Readline library. When enabled, pressing the Tab key auto-completes Ecasound Interactive Mode (EIAM) commands, chain operators, and setup names, while the Up and Down arrow keys navigate previously executed commands.

For this feature to work natively, Ecasound must be compiled with Readline support enabled. If you are building from source, verify that the development libraries for Readline (libreadline-dev on Debian/Ubuntu or readline-devel on Fedora/RHEL) are installed before configuration:

./configure --enable-readline
make
sudo make install

If the binary was built with Readline, simply launching interactive mode will provide these features automatically:

ecasound -c

Enabling History and Completion Using rlwrap

Many pre-compiled distribution packages ship Ecasound without native Readline linking. In these cases, you do not need to recompile the software; you can use rlwrap (Readline wrapper) to inject full history and editing capabilities into the session.

  1. Install rlwrap:

    • On Debian/Ubuntu: sudo apt install rlwrap
    • On Fedora/RHEL: sudo dnf install rlwrap
    • On Arch Linux: sudo pacman -S rlwrap
  2. Launch Ecasound with rlwrap: Run Ecasound through the wrapper:

    rlwrap ecasound -c

rlwrap will immediately provide persistent history saved across sessions (stored by default in ~/.ecasound_history), standard GNU Readline shortcuts (such as Ctrl+R for reverse searching), and basic word completion based on previous inputs.

Creating an Alias for Convenience

To ensure you always launch Ecasound with interactive conveniences, add an alias to your shell configuration file (such as ~/.bashrc or ~/.zshrc):

alias ecasound='rlwrap ecasound'

After reloading your shell (source ~/.bashrc), executing ecasound -c will automatically run inside the Readline wrapper, restoring line editing, persistent history, and completion without further setup.