Re: [linux-audio-dev] alsamixer+ardour

New Message Reply About this list Date view Thread view Subject view Author view Other groups

Subject: Re: [linux-audio-dev] alsamixer+ardour
From: Kai Vehmanen (kaiv_AT_wakkanet.fi)
Date: Thu Mar 08 2001 - 02:13:02 EET


On Fri, 2 Mar 2001, Paul Davis wrote:

> I don't know if Kai uses the mmap API or the read/write API in
> ecasound. ardour's code uses the mmap API, which will save a little
> bit of time when there's a lot of channels and low latency settings.

The read/write API is used. As the ALSA API has been under constant
development during the last >6 months, I haven't added anything "extra" to
ecasound ALSA plugin. Now that the API is stabilizing, it should be quite
an easy task to add mmap support.

As I mentioned in my last mail, the really tricky part is dividing the
soundcard channels into smaller groups. This actually dates back to old
discussion here on linux-audio-dev ... hmm, sometime in 1999 (huh, time
really goes fast), we talked about mono-vs-stereo under subject "a new
application underway". Anyway, since then, ecasound has evolved into a
hybrid design, where signal chains have a variable channel count. So you
can freely mix mono, stereo, 10ch, etc. The idea here is that audio
channels (= mono signals) are grouped into logical groups.

The above may sound like restricting, but it allows ecasound to syntax
like:

#!/bin/sh
ecasound -a:mon_chain1 -i monitor_track1.wav \
         -a:mon_chain2 -i monitor_track2.wav \
         -a:mon_chain1,mon_chain2 -o /dev/dsp \
         -a:rec_chain -i /dev/dsp \
         -a:rec_chain -o new_track.wav

... the two monitor tracks are mixed and sent to /dev/dsp, while recorded
data is written to new_track.wav - now multitrack recording won't get
simpler than that! And the benefits of this simplicity go beyond the
command-line syntax (ie. it shows when writing ECI apps (scripting, etc)).
But of course, this is not possible without some compromises.

Now it's obvious that a 24ch '/dev/dsp' doesn't fit very well in the
picture. If nothing else, effects are assigned to chains, so you'd either
have to duplicate data (copying a single channel to a new (mono) chain is
possible ==> "manual" deinterleaving), or have a global 24ch gain control.
On the other hand, specifying 24 separate chains is anything but
practical. But, but, let's say you have three 8ch devices - that'd be
quite usable.

-- 
 . http://www.eca.cx ... [ audio software for linux ] /\ . 
 . http://www.eca.cx/sculpscape [ my armchair-tunes mp3/ra/wav ]


New Message Reply About this list Date view Thread view Subject view Author view Other groups

This archive was generated by hypermail 2b28 : Thu Mar 08 2001 - 01:51:53 EET