From alsa-devel-owner@alsa.jcu.cz  Mon Feb  1 22:39:54 1999
Received: from entry.jcu.cz (IDENT:perex@entry.jcu.cz [160.217.1.111])
	by marvin.jcu.cz (8.9.1a/8.9.1) with SMTP id WAA08380;
	Mon, 1 Feb 1999 22:39:38 +0100
Date: Mon, 1 Feb 1999 22:39:38 +0100 (CET)
From: Jaroslav Kysela <perex@jcu.cz>
To: Steve Ratcliffe <steve@parabola.demon.co.uk>
cc: alsa-devel@alsa.jcu.cz
Subject: Re: Synth interface
In-Reply-To: <199901312137.VAA28161@ariel.sr.home>
Message-ID: <Pine.LNX.3.96.990201221622.9460C-100000@entry.jcu.cz>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII
Reply-To: alsa-devel@alsa.jcu.cz
Sender: alsa-devel-owner@alsa.jcu.cz
Precedence: list

On Sun, 31 Jan 1999, Steve Ratcliffe wrote:

> Jaroslav,
> 
> First, thanks for the link from the ALSA home page!
> 
> What are your thoughts on the correct interface for a soundcard synth
> in ALSA?  Are you or anyone working on this at the moment?
> I have some spare time and I would like to help with this part of the
> project.

Yep, I lack time to do some serious work on ALSA in last time (my free is
going to improvement of my English for my possible employer now).

Things to design:

1) Instrument interface for sequencer
   - this interface will cover both MIDI instruments and synth samples
   Thoughs:
     - over read/write (better due to possible timing?) or ioctl?
       from sequencer client
     - how download samples on background from interrupt (looks to be
       big problem with polled transfer to soundcard's DRAM (EMU8000)
       and ISA DMA (GUS) issues (16MB limit))?
     - ONE abstract instrument format for synth interface? -> for module
       players
     - native soundcard instrument format support
     - abstract instrument manager in kernel accessible from user space? ->
       things like instrument lists etc..
     - alsa-lib can cover native sound instrument format handling with
       some abstract layer?
2) Synth events
   - I added few synth events to asequencer.h (80-86).. This group needs
     to be extended. We also need specify data (arguments) for these
     events. We mustn't omit things like 3D (not only left<->right
     panning, but also rear<->front panning and maybe center volume
     [home theatre]).

Some things can be done in abstract code (like top level instrument
management, AVL trees for fast instrument searching, bottom memory
allocation routines for onboard DRAM?) and shared between ALSA synth
modules...

Many ideas, little time...

							Jaroslav

-----
Jaroslav Kysela <perex@jcu.cz>
Academic Computer Centre, University of South Bohemia
Branisovska 31, C. Budejovice, CZ-370 05 Czech Republic


