From alsa-devel-owner@alsa.jcu.cz  Sat Aug 15 12:27:02 1998
Received: from post.mail.demon.net (post-11.mail.demon.net [194.217.242.40])
	by marvin.jcu.cz (8.8.8/8.8.8) with SMTP id MAA14116
	for <alsa-devel@alsa.jcu.cz>; Sat, 15 Aug 1998 12:26:40 +0200
Received: from (MUSE) [158.152.21.220] 
	by post.mail.demon.net with smtp (Exim 1.82 #2)
	id 0z7dXh-0003dN-00; Sat, 15 Aug 1998 10:26:37 +0000
Received: by MUSE            with Microsoft Mail
	id <01BDC83F.2A437240@MUSE           >; Sat, 15 Aug 1998 11:23:45 +0100
Message-ID: <01BDC83F.2A437240@MUSE           >
From: "Richard W.E. Furse" <richard@muse.demon.co.uk>
To: "'alsa-devel@alsa.jcu.cz'" <alsa-devel@alsa.jcu.cz>
Subject: Requirements?
Date: Sat, 15 Aug 1998 11:21:21 +0100
Reply-To: alsa-devel@alsa.jcu.cz
Sender: alsa-devel-owner@alsa.jcu.cz
Precedence: list

Introduction: I'm an electro-acoustic composer/programmer & I've been 
working on powerful sound tools, mostly for Linux, for the past few years. 
These tools have mostly been batch based (output heard using vplay) but I 
did write a couple of (poor) real-time algorithmic compositions through the 
Voxwave (sp?) interface.

I'm currently working on an ambitious project possibly for public release. 
I've decided on Java as the main platform with RNI/JNI links to native 
methods to provide efficient versions of numerically costly processing and 
to access audio hardware. The vague plan at the moment if to release free & 
first on Linux and then release commercially on Windows.

I've written a Windoze version of the audio connection objects without 
trouble. Haven't looked at MIDI yet. I then looked into the current state 
of the Linux sound drivers and found the OSS/"Free" mess. So now I'm here.

I like the sound of this project and can make a little time to help out if 
I can. I'm a fast and experienced professional developer with a good 
theoretical understanding of audio. A first project of interest to me might 
be sound drivers for my current main audio card (a Turtle Beach Fiji).

I'm even more interested in ensuring that the API being developed at 
present will provide adequate flexibility for myself and other potential 
multimedia developers.

The big problem area from my perspective is synchronisation. I had a quick 
look at the existing API and didn't immediately see what I was looking 
for--but then I didn't spend too long on it. I'm interested in how I might 
be able to approach each of these issues--I'm sure some of the problems 
below are insurmountable and some are already resolved--but I won't know 
unless I ask. I hope my questions are not too stupid!

Let us consider a fully featured multitrack. Such a program might attempt 
simultaneous playback and record using a number of devices including MIDI, 
audio and screen updates.

1. Synchronising audio outs. If I wanted to output simultaneously from my 
AWE32 and FIJI then how would I find out at runtime enough information to 
calculate when to pass packets of audio, start timers or whatever to sync 
the devices as well as possible?

2. How to sync MIDI & audio in a hardware independent way?

3. How to sync playback and record (so that afterwards it is clear when 
recorded sound/events happened relative to sounds and events played?

4. How to sync playback to screen updates?

4. How can the program find out what buffering if in use? Differing packet 
sizes and queue lengths for devices cause synchronisation issues and 
potential blocking issues for developers. Do all sound cards support one 
buffer size? How much audio is required before playback or recording 
actually begins etc etc. Can this be found through the API?

5. And an extreme case which brings these problems into real focus: if I 
wanted to use my PC as a guitar effects processor, how would I set up the 
buffers etc for this to minimise delay? With in & out on different sound 
cards?. How would the program find the information to work out if this is 
possible at all?

I hope this gives you a flavour of the issues of interest to me and I'm 
sure to other multimedia developers. I'm very interested in any thoughts.

Thanks,

-- Richard
