In <3onfdi$…@gene.fwi.uva.nl> (9 May),
(passe…@fwi.uva.nl) writes:
> AmigOS Retargable Audio
> =======================
> The RTA project
. [.....]
AUGGHH!!! Please, guys, check prior art, and *don’t* reinvent the wheel!
The central ideas, and large parts of what you envisage, are already
embodied in my ‘MusicWeb’, which has been running on my system [and a
few other people's] for over a year now! And I think if you had spent
some time on this group you would already know about it: there have been
enough postings…
Under the MusicWeb, you can connect all sorts of small modules together
to process MIDI (and other things) in real-time. Moreover, everything is
managed in a ‘graphic diagram’: you simply place your desired elements
in the diagram and connect them together. You can fiddle with the layout
to your heart’s content — even while MIDI is flowing.
The modules currently available range from simple note-transpose and other
filters, through path-splitters and delay elements, to 8SVX instrument
players and standard-MIDIfile handlers.
*Everything* in the system is modular and extensible. The data-passing
mechanism is entirely general, and can handle (and *does* handle) many
kinds of information besides MIDI events. Another variant of the basic
scheme (the ‘DataWeb’) handles audio waveform data in the same fashion.
Some more specific comments follow:
> Audio and MIDI and not standarized in the current Amiga OS. The usual way for
> programs using them is calling low-level devices like serial.device and
> audio.device. This is certainly not the best way. Programs using serial.device
> or the serial port directly usually take over the port, so it can’t be used by
> other programs anymore. Integrating a new sound-board in the system is hard,
> only programs with special drivers work with them. MIDI and internal audio are
> two complete separate items; in general, programs using audio cannot use MIDI
> without rewriting or extending the code.
I’m sorry, but I don’t understand/agree with most of what you say there.
The OS *itself* should not be concerned with things like MIDI — I want
to see the kernel remain a *kernel* and not suffer from the bloat visible
on the other side of the fence. On the other hand I do agree that it would
be nice to have a generally accepted protocol to underpin such applications.
However, previous attempts to provide such seem to have largely been lost
in the swirls of the bitstream — viz. Bill Barton’s midi.library and
Commodore’s own CAMD [you *were* aware of that one, I hope?].
Your mention of the serial.device seems to entirely miss the point.
The reason that "other programs can’t use the port" is more that MIDI
activity precludes doing much else with the serial port at the time anyway!
There *are* problems with the serial device — mainly that it really isn’t
fast enough for MIDI. But *any* program that uses the serial port —
whether or not it also actually uses the serial.device — should register
with the device so that other possible applicants for the port will be
warned off. I’ve seen a number of programs that don’t observe this
(similarly with audio.device)… fortunately my dustbin is handy.
And failure to combine MIDI and internal audio is *no* fault of the OS
— simply the application programmers who couldn’t be bothered. Personally
I’m now having great fun finding out which of my suite of 8SVX instrument
files sound best on the MusicWeb with the MIDI files I’ve downloaded off
the net!
> The RTA project will give a solution to this. The idea is to hide the real
> specification of the audio sources and use standarized commands to control
> them. This has to be done very carefully, because we don’t want to loose any
> feature of either MIDI and audio programs.
You may lose [*one* 'o' BTW (:-/)] more than you think with this approach.
> The RTA design is object oriented, where every tool (driver, filter, sequencer,
> etc.) is an object which can be connected to another to give a highly
> configurable setup. Think of filter tools which can be attached to a player,
> filtering out all program changes, playing together with a mod-file on your
> keyboard and recording them with a sequencer, playing MIDI files using
> internal audio (4-voice or 8-voice, and with two or more Amiga’s connected even
> 16-voice and up!); there are no limits. Connections can be made dynamically
> using a router. You can save and load setups and change the current setup with
> a mouse-click (or seven).
*Exactly* what the MusicWeb does (aside from Mod files and 8-voice audio
[can't do EVERYTHING myself (:-) -- anyone else is welcome to implement
them, though...]). Nor are there drivers for any specific manufacturer’s
sound cards, but they would certainly fit right into the scheme too.
So again, please don’t go haring off on your own. A lot (and I mean a
*lot*) of work has gone into the whole ‘Web’ design. [Though the choice
of name has turned out to be a bit unfortunate these days -- the project
was started before the advent of the WWW (:-)] It would be a shame to
have it all duplicated. I can provide more information to anyone who
wishes to pursue it. Some of the details are proprietary, but the
communication mechanism is freely available.
Cheers,
— Pete —