|Perl: the Markov chain saw|
gnostiby gnosti (Hermit)
|on Jan 28, 2007 at 13:24 UTC||Need Help??|
A years-long projectYears ago, I started a script to generate chain setups (configuration files) for the Ecasound audio processing engine. Basically, Ecasound will let you do most multichannel recording, mixing, effects processing, format conversion and many other audio processing tasks you may want to do.
So now I've got a lightweight front-end going. Nama is a recorder, mixer application suited for audio production. It implements the usual DAW abstractions: tracks, effects, buses, marks, fades, inserts, edits, regions, clips, sequences and submixes. Julien Claassen, a prog-rock composer and musician, has used it on the console to produce quite a lot of music.
What is unique about Nama?
- written in perl
- small, hackable codebase
- Tracks can be bounced/frozen/cached as necessary to save CPU, and later be uncached, i.e. restored to their original, malleable state.
- project history and snapshots are managed internally by git
- From the user standpoint, named snapshots are saved and loaded just as with files (save initial-mix, get initial-mix) however they grow as branches, retaining their history, and unlike files, they are never overwritten.
- Tk GUI emulates a simple hard-disk recorder
- Full-featured command prompt with help, autocompletion and command history
Developing Nama has been the driver for my learning more about Perl and exploring the highways and byways of computer science.