tjt@cbnewsh.cb.att.com (timothy.j.thompson) (06/27/91)
As promised, here's a summary of the MIDI BOF (Birds of a Feather) session that was held at the Nashville USENIX Conference a couple weeks ago. It began with a few words on Keynote availability and machine support, but I didn't want to spend much time on that, since I'd just finished an hour-long talk/demo. I then asked: how many people have used MIDI on a UNIX System? And 2 people (out of a few dozen) raised their hands. Hmmm, not quite what I expected/hoped, but then it's not that surprising, either. We then started talking about what software needs people had, and quickly got onto the topic of what kind of features would be nice in a UNIX device driver for MIDI. I expressed a desire for a stream-oriented style (bi-directional pipe, or whatever you want to call it) that would allow implementation using a variety of techniques (ie. it could be inside or outside of the kernel, possibly even across a network). At least a few people seemed to appreciate this approach, although others still have a hard time believing you can (or would want to) do MIDI timing outside the kernel. Someone then expressed the following reservations: 1) the read/write (ie. any stream-style) model was wrong - they thought a standard library interface was better. 2) any standard now is premature, and in any case it should include the handling of issues like synchronizing with other media (digital audio and video). Since the conference theme was multimedia, this shouldn't have been too surprising, although I was surprised that there didn't seem to be any other efforts that were addressing this need - looking at things from a more global perspective. There were half-a-dozen (it seemed) talks at the conference that discussed synchronization issues, and there are some standards efforts in the *specification* of timing and synchronization, e.g. MPEG (I think that's right) and HyTime. Strangely (to me, anyway), it seems like those efforts are specifically avoiding any attempt to build a system that actually *implements* the timing and synchronization they are specifying. I was hoping we could agree on something small (and purposely narrow in scope), but the word "standard" seems to attract features like flies. So, I suspect I won't be mentioning the "s" word again. I'm still interested in writing software to support any UNIX system that can do MIDI, but so far that hasn't been much of a problem. We got hung up on talking about synchronization for quite a while. It didn't seem like there was that much else to talk about - at least that anyone could think of, even when we had a chance. I wasn't especially well-prepared with things to discuss (sorry, I spent all my preparation on the talk). Toward the end, we did get into an interesting discussion about different kinds of controllers (Video Harp, etc.). Finally, we then started playing with the equipment (I'd brought a few synths and a 386 running UNIX and Keynote). 4 of us had brought Casio DH-200s (plastic MIDI saxes), and we made embarrasing sounds with them. ...Tim Thompson...AT&T Bell Labs/Holmdel/NJ...tjt@blink.att.com...