From alsa-devel-owner@alsa.jcu.cz  Thu Feb 25 14:42:23 1999
Received: from pat.bath.ac.uk (qmailr@pat.bath.ac.uk [138.38.32.2])
	by marvin.jcu.cz (8.9.1a/8.9.1) with SMTP id OAA31148
	for <alsa-devel@alsa.jcu.cz>; Thu, 25 Feb 1999 14:42:05 +0100
Received: (qmail 11427 invoked from network); 25 Feb 1999 13:28:27 -0000
Received: from ss1.bath.ac.uk (HELO bath.ac.uk) (mmdf@138.38.32.41)
  by pat.bath.ac.uk with SMTP; 25 Feb 1999 13:28:27 -0000
Received: from tobi.bath.ac.uk by ss1.bath.ac.uk id aa13852; 25 Feb 99 13:28 GMT
Message-ID: <36D54FFA.2781@bath.ac.uk>
Date: Thu, 25 Feb 1999 13:28:26 +0000
From: "P.J.Leonard" <P.J.Leonard@bath.ac.uk>
MIME-Version: 1.0
To: alsa-devel@alsa.jcu.cz
Subject: Re: Instrument abstract layer
References: <Pine.LNX.3.96.990225123513.6433B-100000@entry.jcu.cz>
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Reply-To: alsa-devel@alsa.jcu.cz
Sender: alsa-devel-owner@alsa.jcu.cz
Precedence: list

Jaroslav Kysela wrote:
> 
> On Wed, 24 Feb 1999, Paul Barton-Davis wrote:
> 
> > is there a good reason for not using the same kind of model that
> > several synths do ? Components:
> >
> >       SAMPLES - take up memory
> >       PATCHES - modulations of samples
> >       INSTRUMENTS - 1 or more patches combined
> >       PROGRAMS - instruments selected based on:
> >                      (1) note number and/or
> >                      (2) on velocity and/or
> >                      (3) other
> >
> > another model:
> >
> >       SAMPLES - take up memory,
> >       MULTISAMPLES - aliases for samples accessed via note number
> >       PATCHES - modulations of multisamples
> >       INSTRUMENTS - as above
> >       PROGRAMS as above
> >
> > I'm not sure I've explained this clearly, but the idea works well for
> > both my WaveFront card, my Kawai K5000S and several other devices I
> > have or have written.
> 
> The instrument abstraction layer will cover only a basic access to
> instruments (in you example to PROGRAMS). I don't want design some
> universal instrument format. This isn't possible.
> 
> I only need to design some unique identifiers for these instruments.
> These identifiers must be accessible over standard MIDI events (program
> change, bank change and note-key for the drum channel).
> 
> Other information (groups of patches and samples) will be specific for
> the lowlevel driver (or hardware). I don't know if the sequencer must
> cover with some universal way to control of these things. For
> example things like sample (wave) sharing must be done in the lowlevel
> driver.
> 
> I want basicaly from ALSA instrument interface:
> 
>         1) unique instrument identification
>                 (MIDI: cluster, emulation, bank, program, note-key)
>                 (Otherwise: cluster, bank, program)
>         2) instrument download to the synthesizer
>         3) instrument download from the synthesizer
>         4) access to list of instruments in the synthesizer


 The problem with this is that it does not address the problem of how
music
written for one sound card can be played on another sound card. I think
that
a standard description of sampled type synthesis is essential otherwise
it will
be impossible/difficult write generic high level applications. 

 Look at it from my point of view. Say I have constructed a nice layered
sample
that plays different samples depending on note and velocity (this is
essential
for a decent piano sound). I can store this information in a file that I
can use
for my AWE32 but this is useless for some one else and they will not be
able to
reconstruct the piece of music. 
 

 If I am wrong please tell me to shut up :-)

 cheers Paul.

