From alsa-devel-owner@alsa.jcu.cz  Thu Oct 29 17:02:35 1998
Received: from renoir.op.net (root@renoir.op.net [209.152.193.4])
	by marvin.jcu.cz (8.9.1a/8.9.1) with ESMTP id RAA29886
	for <alsa-devel@jcu.cz>; Thu, 29 Oct 1998 17:01:40 +0100
Received: from someip.ppp.op.net (d-bm2-16.ppp.op.net [209.152.194.54]) by renoir.op.net (o1/$Revision: 1.18 $) with ESMTP id LAA25048 for <alsa-devel@jcu.cz>; Thu, 29 Oct 1998 11:01:31 -0500 (EST)
Message-Id: <199810291601.LAA25048@renoir.op.net>
To: alsa-devel@jcu.cz
Subject: Re: ALSA + AWE32 
In-reply-to: Your message of "Thu, 29 Oct 1998 14:16:24 +0100."
             <Pine.LNX.3.96.981029134953.29367A-100000@entry.jcu.cz> 
Date: Thu, 29 Oct 1998 11:00:06 -0500
From: Paul Barton-Davis <pbd@op.net>
Reply-To: alsa-devel@alsa.jcu.cz
Sender: alsa-devel-owner@alsa.jcu.cz
Precedence: list

>OK. I'll try explain what I mean with my above lines...
>There are some problems which are similar for all soundcards which have
>ability downloading of new samples.
>
>1) soundcard memory allocation routines (bottom routines)

Seems OK, although irrelevant for some synths.

>2) instrument / sample allocation routines

What's an "instrument" ? Something that describes the sound produced
when a MIDI Note On message is received ? Or is it a specific way of
processing a sample ? Or is it an aggregation of such sample
processing specifications ? Or something else ?

I know this may seem obvious to you given the cards you work with, but
a quick consideration of, say, the WaveFront and the Ensoniq ASR-10
sampler (not a soundcard, but an interesting model) should reveal that
the notion of "an instrument" needs to be better defined.

>If soundcard is very very different from this model, driver should simply
>use own routines for this management...

OK, but then at what level does an abstraction exist that can be used
by a user-level application ?

I think the dream that the user-level application that wants to do
"instrument" management doesn't need to understand the soundcard
synthesizer in question is a mistake. Its a mistake that comes from
working with a limited set of soundcards that all employ a similar
model for their operation. 

Its also worth noting that any patch editor is *inevitably* going to
be hardware-specific (since the components of a synth patch vary from
synth to synth). If the patch editor is going to be hardware-aware,
then it seems silly to me to expect that it should be able to use a
standard interface to send (and fetch) patches to/from the synth.

--p

