The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

Audio::Ecasound::Multitrack

Audio::Ecasound::Multitrack provides classes for tracks and buses, a template system for signal routing and other infrastructure to manage multitrack recording and mixing using the Ecasound audio processing engine.

The distribution includes Nama, a recorder-mixer application with command-line and graphic interfaces.

The graphic interface uses the Tk widget set.

The command-line interface executes internal commands, Ecasound commands, perl code, and shell commands. It includes history and help functions.

'Nama' is Japanese for 'live', describing live performances, raw fish and draft beer.

INSTALLATION

To install this module type the following:

perl Makefile.PL
make
make test
make install

DEPENDENCIES

Perl Modules

Carp
Cwd
Storable 
Getopt::Std
Tk (for GUI users)
Event
Audio::Ecasound
Parse::RecDescent
Data::YAML
File::Find::Rule
File::Spec::Link
IO::All
Term::Readline
Term::Readline::Gnu
Time::HiRes
Text::Template (for building from sources)

Libraries

The Ecasound audio processing libraries must be installed. Ecasound may be obtained from http://ecasound.seul.org/ecasound/ or as precompiled binary packages for your Un*x distribution.

The LADSPA SDK is required to autosense LADSPA plugins and scaling hints. It is available at:

http://www.ladspa.org/ladspa_sdk/download.html

In particular the utility program 'analyseplugin' must be installed in a directory in your execution PATH.

'file', a BSD utility program that detects file formats must be installed for Nama to correctly identify stereo files.

BUILD INSTRUCTIONS

You may decide to clone the Nama's github repository and from source rather than installing from CPAN. It is much easier to browse or hack on Nama this way. Functionality is separated into a number of files, and you will see $::package_var instead of $Audio::Ecasound::Multitrack::package_var.

You can get also updates more quickly and can share patches with other developers.

Procedure

For typical build and test:

	cd build
	git-clone git://github.com/bolangi/nama.git
	cd nama/src
	./build
    ./ui

To install the module, do as usual:

    cd ..
	perl Makefile.PL
    make && make test && make install
    

Description

The build script creates the perl modules for the distribution under the nama/lib directory using *.p, *.pl, *.t and other files in the nama/src directory.

build looks into the *.p files for lines that look like:

[% somefile.pl %]

This notation is analogous to the C-preprocessor #include directive: somefile.pl gets included in the source at that point. Some of these include lines are more complicated:

[% qx(./strip_comments ./grammar_body) %]

Here the preprocessor runs the script strip_comments on grammar_body, removing text that would choke the parser generator.

Build provides a few parameters to the preprocessing script preproc, which uses the Text::Template to perform most of the required substitutions.

To see the names of the files and scripts used to build the modules type:

ls *.p        
grep '\[%' *  # shows all include directives

LICENSE

This software is licensed for use under the terms of the GNU Public License version 2. The text of this license is provided in the file COPYING that is included in this distribution.

This software is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.