[LAD] automation on Linux (modular approach)

David Olofson david at olofson.net
Thu Mar 25 01:03:32 UTC 2010


On Wednesday 24 March 2010, at 22.21.53, "Jeff McClintock" <jef at synthedit.com> 
wrote:
> > From: David Olofson <david at olofson.net>
> > 
> > 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  |
'---------------------------------------------------------------------'



More information about the Linux-audio-dev mailing list