From alsa-devel-owner@alsa.jcu.cz  Wed Oct 14 10:44:12 1998
Received: from pat.bath.ac.uk (pat.bath.ac.uk [138.38.32.2])
	by marvin.jcu.cz (8.9.1a/8.9.1) with SMTP id KAA16796
	for <alsa-devel@jcu.cz>; Wed, 14 Oct 1998 10:43:50 +0200
Received: (qmail 22382 invoked from network); 14 Oct 1998 08:43:47 -0000
Received: from amos.bath.ac.uk (HELO bath.ac.uk) (mmdf@138.38.32.36)
  by pat.bath.ac.uk with SMTP; 14 Oct 1998 08:43:47 -0000
Received: from tobi.bath.ac.uk by amos.bath.ac.uk id aa22036; 14 Oct 98 9:43 BST
Message-ID: <3624641B.773C@bath.ac.uk>
Date: Wed, 14 Oct 1998 09:43:07 +0100
From: "P.J.Leonard" <P.J.Leonard@bath.ac.uk>
MIME-Version: 1.0
To: alsa-devel@jcu.cz
Subject: Re: [linux-audio-dev] What to do ??? (fwd)
References: <199810132051.VAA06682@obelix.fvdpol.inter.nl.net>
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

Frank van de Pol wrote:
> 
> P.J.Leonard wrote:
> >
> > [snip]
> >
> > >    MIDI oriented applications (could also be MOD players): What is needed
> > >    in the ALSA Sequencer API to let your application work with the new
> > >    sequencer architecture?
> >
> >  An AWE32 driver ? (If I had the time I would do it myself)
> >
> 
> This AWE32 driver is a piece of software (sequencer client) that makes use
> of the API. To rephrase my question: What needs to be added/changed to the
> sequencer API to allow someone to implement this AWE32[1] driver.
> 
> [1] replace with any other soundcard we need drivers for.


 Your question was phrased OK the first time I was just a bit lazy
reading :-)

 I have not looked at your code recently (too many things I would like
to do
and too little time). But I would be very interested in discussing what
would
be involved.

 The AWE driver written by takashi would be a good start. I believe
this plugs into the OSS stuff using the following interface.
[I think synth_operations is defined in soundcard.h]

 static struct synth_operations awe_operations =
{
#ifdef AWE_OSS38
	"EMU8K",
#endif
	&awe_info,
	0,
	SYNTH_TYPE_SAMPLE,
	SAMPLE_TYPE_AWE32,
	awe_open,
	awe_close,
	awe_ioctl,
	awe_kill_note,
	awe_start_note,
	awe_set_instr_2,
	awe_reset,
	awe_hw_control,
	awe_load_patch,
	awe_aftertouch,
	awe_controller,
	awe_panning,
	awe_volume_method,
#ifndef AWE_NO_PATCHMGR
	awe_patchmgr,
#endif
	awe_bender,
	awe_alloc,
	awe_setup_voice
};


 This interface allows loading patches / playing notes / allocating
voices . As far
as I can tell the OSS stuff is just a wrapper for these calls (OK it
adds a bit of timing
stuff but your design takes care of that). 

 Midi events would call the relavent functions in the above structure.
You would also
need to be able to forward the IOCTL calls. 

 Is this the right direction ? 


   cheers Paul.

