On Fri, 13 Dec 2002, David Olofson wrote: > [...valid points...] > > > > How? It's not the host that sends these events in general; it's > > > other plugins. The host never touches the events in the normal > > > case. > > > > Okay. I'm lost here because I don't know what a XAP app would look > > like. I only know trackers :). > > Well, it's not *that* different. Just think of the different parts of > a tracker (MIDI input, song, pattern, "classic" effects, synth, DSP > effects, audio output) as separate plugins, running under a host that > does pretty much nothing but loading, connecting and running plugins. > The sequencer becomes a plugin, rather than a part of the host, and > you can do the same with I/O and pretty much everything.
My first reaction to reading the above paragraph was "you are insane". That is a very ambitious plan! Would it really be possible to accomplish all that with one API...? Is it possible to design it without a divine intervention...? In the end I fear you may find the host doing a whole lot more than "pretty much nothing". For instance, the metadata needed to describe all this could easily get out of hand. No metadata = no UI = useless API. If I were me I would keep XAP a low-level block processing API. The idea of audio ports on the one hand and sample-accurate control events interleaved in a single queue on the other is ingenious. Add to that voice allocation and well defined metadata capabilities and we have a backbone for such a softstudio as you outline above. Then design more APIs on top of it as needed. Don't let the event aspect fool you into thinking it is meaningful to make XAP encompass everything. Summa theologica: dump musical time, note pitch, asynchronous I/O. Use Hz for pitch. -- Sami Perttu "Flower chase the sunshine" [EMAIL PROTECTED] http://www.cs.helsinki.fi/u/perttu