Jim Peters wrote:
>
> Abramo Bagnara wrote:
> > Please remember that ALSA PCM API can work in both way:
> > - single-thread audio engine design (using ALSA PCM API as a
> > communication interface between in core components and an engine that
> > gives the impulses)
>
> Okay, you're proposing that we use ALSA calls to transfer the audio
> data between LAAGA plugins, all in the same thread, right ? So, this
> will make one small part of the code look standard. However, these
> plugins will still have had to have been written specially for LAAGA
> so that they can fit in to the LAAGA plugin environment, and be
> scheduled along with other plugins, and follow special LAAGA
> guidelines to make sure that they don't disrupt the low-latency
> responsiveness of the thread.
>
> So, if so much has to be different, what gain is there to transfer the
> internal audio connections within the thread through the ALSA API ?
> We might as well just pass it around in the nearest handy buffer, as
> everything else is so specialised. I can't see the point of applying
> the general solution of the ALSA API to such a specific and
> well-defined case.
>
> However, I have no problems with the idea of using the ALSA API to
> allow external independent applications to connect to the server,
> because these applications would not have to provide plugins, and are
> not under such rigid low-latency constraints.
>
> Does this give some kind of satisfactory technical response to your
> suggestion ?
I think there is some misunderstanding, the solution I proposed for
single thread audio engine is the following:
audio_producer1 ----\
audio_producer2 -----\ /-- audio_consumer1
> engine <
audio_producer3 -----/ \-- audio_consumerN
audio_producerN ----/
Every audio_producer may obtain audio data from zero or more other
audio_producer (not present in diagram), same for audio_consumers.
Every link uses ALSA API. Engine does not know anything statically about
it's producer and consumer, they often will be an user choice.
>
> > I think that now we have enough experience (distributed on several
> > brains, as we like it ;-) to design an architecture that permit all this
> > and I'm sure that this would bring great benefits for consumer audio and
> > *huge* benefits for professional audio.
>
> I really hope we can pull this off and create a rock-solid and
> easy-to-use low-latency plugin environment. As you say, the full
> solution is distributed amongst several brains, each of us with a bit
> of the answer. Praying that this may go smoothly ...
How I say often to my sometimes frustrated childrens, our motto is
"trying again and again" ;-)
--
Abramo Bagnara mailto:[EMAIL PROTECTED]
Opera Unica Phone: +39.546.656023
Via Emilia Interna, 140
48014 Castel Bolognese (RA) - Italy
ALSA project http://www.alsa-project.org
It sounds good!