[ecasound] Audio::Ecasound::Multitrack available on CPAN

From: Joel Roth <joelz@email-addr-hidden>
Date: Sat Sep 20 2008 - 11:47:10 EEST

Hello Everyone,

About a year ago I got started with git, refactoring what
had began as a procedural front-end for Ecasound with OO
sauce, a recursive-descent parser, YAML, and other CS
goodness. Some hundreds of commits later, I am releasing this
software as a Perl module.

You can find it on CPAN at:


To install using the cpan client, type

        cpan -i Audio::Ecasound::Multitrack

I invite all testers and tweakers, anyone curious to record
with Ecasound. The recorder-mixer app handles many details
for you, while the libraries offer a higher level of
abstraction for processing multiple buses.

I hope this code may be interesting, even useful.

A fuller description follows.

Regards to all,



Nama**, renamed from Ecmd, is an Ecasound-based recorder-mixer
with command-line and graphic interfaces.

Nama allows users to configure Ecasound in terms of tracks:
you REC-enable the track, you pan the track. To a large
extent you can substitute track for chain. Unlike chains,
which have exactly one input and one output, tracks can have
multiple outputs.

To define tracks more precisely:

        A track is an audio signal with a name and a chain
        number that corresponds to zero or more Ecasound chains.
        The audio signal can come from a Linux sound device, or
        from one of multiple recorded WAV files identified by
        the track name and version number. Properties of the tracks
        control the inputs and outputs of Ecasound chains and
        their operators.

The classes for Track, Group, Bus and Rule allow for any
number of buses, each having its own signal-routing
properties or rules.

In Nama, the user tracks feed a mixer. Separate faders are
provided for Master audio out, mixdown to file, and each
user-created track. (I used buses and subclassed the Track
class to enable the Master audio out and Mixdown tracks to
behave differently than user tracks. Much easier than
procedural code!)

Some recently added features:

Using the 'modifiers' command you can specify 'select',
'reverse', 'playat', and 'audioloop' for each track.
Provided you have a recent version of Ecasound.

A separate 'loop_enable' command uses the Tk event system to
loop playback between two arbitrary positions (specified in
seconds or as bookmarks) in the audio stream.

The sources are available through github


**'Nama' is Japanese for live (as in 'live performance') or
draft (as in 'draft beer'.)


This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
Ecasound-list mailing list
Received on Sat Sep 20 16:15:01 2008

This archive was generated by hypermail 2.1.8 : Sat Sep 20 2008 - 16:15:02 EEST