From alsa-devel-owner@alsa.jcu.cz  Thu Feb 11 02:09:11 1999
Received: from www.tomy.net (IDENT:root@www.tomy.net [209.186.149.104])
	by marvin.jcu.cz (8.9.1a/8.9.1) with ESMTP id CAA22378
	for <alsa-devel@alsa.jcu.cz>; Thu, 11 Feb 1999 02:08:51 +0100
Received: from cygnus.com (thudson@jimi.tomy.net [192.168.1.2])
	by www.tomy.net (8.8.7/8.8.7) with ESMTP id UAA18054
	for <alsa-devel@alsa.jcu.cz>; Wed, 10 Feb 1999 20:08:48 -0500
Message-ID: <36C22DA0.701186DB@cygnus.com>
Date: Thu, 11 Feb 1999 01:08:48 +0000
From: Thomas Hudson <thudson@cygnus.com>
MIME-Version: 1.0
To: alsa-devel@alsa.jcu.cz
Subject: Re: real-timing a la Golinvaux, Ashton
References: <Pine.SUN.4.03.9902101834030.17464-100000@severi.mit.edu>
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

Christopher Jeris wrote:
>(No offense to C++ partisans.  It's just that
> you can stand it and I can't.  If you can write good C++, it's great
> because it reduces the ratio of bad C++ to good C++.  *grin*)  Therefore
> (since this has also come up recently) I humbly request that no part of
> the _core_ ALSA API be C++ centric at the expense of simple accessibility
> from C (hence from other languages whose foreign-binding mechanisms are C
> based).  It wasn't quite clear from my quick reading how "core" the
> Patchables mechanism was intended to be, though; if it is philosophically
> an extension, then your code is of course more important than my
> preference.  :)

No offense taken. And it is a difficult issue. The solutions to how
to provide a nice rich OO approach for those that want it, and still
provide alternative paradigm or language approach has not yet been
solved, IMHO. CORBA does not work well in a RT system, and COM is an 
abomination, (again IMHO).

It would be nice if we could take the (few) good ideas from COM, i.e.
use only abstract interfaces in C++ and some type restrictions and
then theoretically C++ and C can coexist (and with C most other languages).

But it is not my intention to pollute ALSA with C++. I simply want
to build a framework for C++ programmers on top of ALSA. ALSA is a 
wonderful and flexible foundation. I'm simply proposing an OO-based
paradigm on top of ALSA. It would be wonderful if that paradigm could
be supported by multiple OO languages. I want the highest level of 
abstraction. Sometimes I even feel that the concept of MIDI channels
should be dispensed with at this level. From the users perspective
I want to send the output of App A to App B and the output of App B
to the piano patch of my ACME Synth. If App A has multiple outputs
then it shows them as little graphical output jacks that I can click
on and then click on one of some other graphical thing's input. How's
that for technical ;-)

I used to hate C++ when it was changing so much, but I really like the 
new standard, (well, it will be nice when it is completely implemented).
I spent the last three years programming in LeLisp, so I know the joy
AND frustration of garbage collection.

GC is going to be a problem. I have seen a white paper on real-time
GC, but I believe it was patented. I may be able to find it if you're
interested.

> Basically I intend it to be analogous to Emacs...

Now you've got my attention!

If you've got the time to learn a really non intuitive, difficult
interface, find a copy of Music Box. I think there is a link
from Dave Phillips site. It is a DOS-based pseudo graphical
ASCII interface, (but I think it will run in DOSEMU). It has
all these MIDI processor modules that you can link together
to do amazing things, all running in RT. Make this graphical,
make it work for audio as well as MIDI, and make every application
I use work as a module in this system, THIS is what I want.

Thomas

