On Wednesday 24 March 2010, at 22.21.53, "Jeff McClintock" <[email protected]> wrote: > > From: David Olofson <[email protected]> > > > > These issues seem orthogonal to me. Addressing individual notes is just a > > matter of providing some more information. You could think of it as MIDI > > using > > note pitch as an "implicit" note/voice ID. NoteOff uses pitch to > > "address" notes - and so does Poly Pressure, BTW! > > Not exactly note-pitch. That's a common simplification/myth. > MIDI uses 'key-number'. E.g. key number 12 is *usually* tuned to C0, but > is easily re-tuned to C1, two keys can be tuned to the same pitch yet > still be addressed independently. > It's a common shortcut to say MIDI-key-number 'is the pitch', it's > actually an index into a table of pitches. Synths can switch that tuning > table to handle other scales.
True. My point was really just that pitch is somehow "hardwired" to the key number on the receiver end, rather than explicitly specified by some CC or similar. (Well, there is the SysEx extension you mentioned, but that's not helping much unless you have the bandwidth to spare, and equipment that supports it - but that goes for the existing and proposed alternatives as well.) [...] > > Virtual voices are used by the "sender" to define and > > address contexts, whereas the actual management of physical voices is > > done on the receiving end. > > You have re-invented MIDI with different nomenclature ;-). Precisely. Or, I just solved the problem in the most straightforward way I could think of. Design and implementation done in a few hours. (Ok; it's a pretty high level language, but still. Maybe I can score a bonus point for having designed and implemented the language too? ;-) I could add SysEx key-based control to the MIDI parser, of course - but I'm still wondering where I'd get such data from anyway! Perpetuating the catch-22, that is; sorry about that. :-) So... How about a library for sending and parsing MIDI with these SysEx extensions? I'm thinking along the lines of providing a nice API, but using an existing standard protocol. The idea would be to use ALSA and/or JACK (would need an extension for SysEx, or does it support that these days?) for transport layer, to avoid reinventing that too. Later, when the API has proved to work, and stuff can be wired, one might add more efficient protocols and transport layers for special cases, such as between JACK clients, or between plugin hosts and plugins. (LV2 extension?) Or, one starts with that, just looking at the feature set of MIDI + SysEx, and add MIDI gateways later, if/when needed. Depends on how widespread support for these extensions is, I guess. Just thinking out loud here... -- //David Olofson - Developer, Artist, Open Source Advocate .--- Games, examples, libraries, scripting, sound, music, graphics ---. | http://olofson.net http://kobodeluxe.com http://audiality.org | | http://eel.olofson.net http://zeespace.net http://reologica.se | '---------------------------------------------------------------------' _______________________________________________ Linux-audio-dev mailing list [email protected] http://lists.linuxaudio.org/listinfo/linux-audio-dev
