Easy multitrack recording with Ecasound

Thu, 25 Dec 2014

####Q. Why another digital recording software? Aren't there enough already?

A. There are never enough audio applications. Just like good restaurants, there is always room for one more.

Also, Nama is text-based. It can run in a console. This can be useful for several reasons:

  • you are a console user, and don't want to run X
  • you want to reduce the CPU load on your computer while processing audio
  • you want to avoid interrupt conflicts between your audio and video adapters

Q. Why bother to reinvent the wheel?

A. Nama absolute avoids reinventing the wheel! All audio processing for Nama is performed by Ecasound, by LADSPA plugins, and by external programs such as jconverter.

Most of the computer science goodness in Nama is from CPAN, a huge archive of freely available software libraries written in Perl. So that's reuse, too. :-)

Q. Why is Nama written in Perl? Everyone knows that Python or Ruby would be easier to read, C++ would be faster, C# or [insert your preferred language here] would be cooler, etc.

A. No answer, really. Just a personal preference.

Q. Why not just use Ecasound directly? Why do you need a complicated front-end like Nama?

A. Nama adds convenience. Ecasound has no concept of a track, mixer, or bus. Whatever you need, you must build out of chains, objects and operators, which is time-consuming for complicated setups. Nama gives you all that and more with just a couple of commands.

Q. Can you really record/mix/master without a GUI?

A. Yes, if you're willing to use your ears. :-)

I could suggest mhwaveedit if you need a simple app to visualize a waveform.

Q. How does Nama/Ecasound compare to Audacity?

A. Unlike Audacity, Nama applies effects in real time by default. A reverb effect can be applied to a stream as it is played back or arrives from the soundcard. To save CPU, Nama also has a track-caching (track-freezing) function similar to the way Audacity batch preprocesses each track as you apply an effect.

Q. What super-cool features does Nama have?

Almost all of Nama is awesome.

Effect chains and effect profiles. They are like presets. Effect chains are for one track and can include several effects. Effect profiles are for multiple tracks.

Inserts with wet/dry control are cool.

Auto fades on transport start/stop are cool.

The command language allows a single command to be executed on multiple tracks, multiple effects, and/or multiple effect parameters.

The help system covers LADSPA effects and Nama commands. Commands can be listed by category. Commands and effects can be searched by keyword.

Q. What about bugs? Is Nama suitable for recording the

Boston Symphony Orchestra, or will it crash and burn?

A. Ecasound is a mature and reliable audio engine that has been thoroughly tested. So Nama inherits all that. Although Nama's own logic is vulnerable to bugs, many have been beaten out from under Nama's carpets. A basic test suite now ensures that patches and new features can be applied somewhat safely.

Several other design features help keep Nama reliable:

  • Ecasound chain setups can be reviewed to verify correct routing and IO.

  • All system state is stored in user-readable YAML text files that you (or I) can examine in case you find some strange behavior.

  • Nama has a debug mode available to track down problems.

  • Ecasound can be started in server mode with debugging enabled, so that all command IO is visible.

  • Use of a separate configuration file with reasonable default behavior ensures that configuration decisions are deliberate and will not change as the result of an errant mouse click.

  • Object-oriented design has helped organize Nama's source code, encapsulate data, and handle the complexities of signal routing.

Q. Ardour kicks ass, so why would I want to use Nama?

Nama is easy to learn and minimal. It can run without X and without JACK. If you want the kitchen sink, Ardour is for you.

Q. Why didn't you choose Ardour as audio engine, using the scripting interface?

A. When I started writing Nama, Ardour was a beast to build, it segfaulted all the time, and there was no support for building alternative user interfaces. Ecasound is stable, works with or without JACK, and is designed to interface with other software.