[AVT] Re: [linux-audio-dev] Introducing DMIDI
John Lazzaro <lazzaro@CS.Berkeley.EDU> Tue, 18 December 2001 18:12 UTC
Received: from optimus.ietf.org (ietf.org [132.151.1.19] (may be forged)) by ietf.org (8.9.1a/8.9.1a) with ESMTP id NAA23264 for <avt-archive@odin.ietf.org>; Tue, 18 Dec 2001 13:12:42 -0500 (EST)
Received: (from daemon@localhost) by optimus.ietf.org (8.9.1a/8.9.1) id NAA01921 for avt-archive@odin.ietf.org; Tue, 18 Dec 2001 13:12:45 -0500 (EST)
Received: from optimus.ietf.org (localhost [127.0.0.1]) by optimus.ietf.org (8.9.1a/8.9.1) with ESMTP id NAA01859; Tue, 18 Dec 2001 13:10:43 -0500 (EST)
Received: from ietf.org (odin [132.151.1.176]) by optimus.ietf.org (8.9.1a/8.9.1) with ESMTP id NAA01823 for <avt@optimus.ietf.org>; Tue, 18 Dec 2001 13:10:41 -0500 (EST)
Received: from snap.CS.Berkeley.EDU (IDENT:root@snap.CS.Berkeley.EDU [128.32.45.165]) by ietf.org (8.9.1a/8.9.1a) with ESMTP id NAA23207 for <avt@ietf.org>; Tue, 18 Dec 2001 13:10:38 -0500 (EST)
Received: (from lazzaro@localhost) by snap.CS.Berkeley.EDU (8.9.3/8.9.3-ZUUL) id KAA01922; Tue, 18 Dec 2001 10:10:28 -0800
Date: Tue, 18 Dec 2001 10:10:28 -0800
From: John Lazzaro <lazzaro@CS.Berkeley.EDU>
Message-Id: <200112181810.KAA01922@snap.CS.Berkeley.EDU>
To: linux-audio-dev@music.columbia.edu
Cc: avt@ietf.org
Subject: [AVT] Re: [linux-audio-dev] Introducing DMIDI
Sender: avt-admin@ietf.org
Errors-To: avt-admin@ietf.org
X-Mailman-Version: 1.0
Precedence: bulk
List-Id: Audio/Video Transport Working Group <avt.ietf.org>
X-BeenThere: avt@ietf.org
[AVT folks -- CC'ing an MWPP-related thread from the linux-audio-dev mailing list ...] > "martijn sipkema" <msipkema@sipkema-digital.com> writes > >> John Lazzaro writes >> >> [...] >> >> http://www.ietf.org/internet-drafts/draft-lazzaro-avt-mwpp-midi-nmp-00.txt >> > > this is great! it doesn't handle sysex does it? perhaps a seperate > protocol for sysex dumps over tcp would work. there are some > synthesizers that use short sysex messages for control data, i don't > think i have a synthesizer that does that though, but perhaps this is > just bad design. > > --martijn In its present incarnation, it handles the subset of MIDI that MPEG 4 Structured Audio uses -- all of the MIDI commands except for the MIDI System commands (0xF*). Because one of the roles of the packetization is to be a normative transport for SA, there would need to be at least one mode of operation where this restriction is kept, since SA demands it. However, there are reserved bits in both the "MIDI Command Section" and in the recovery journal, intentionally left to facilitate MIDI System implementation (including the SysEx commands), as well as to facilitate SASL/MIDI integration within Structured Audio. There are a few distinct issues here: -- Many of the MIDI System commands fall into the "real-time sync of machines that play MIDI data" category: 0xf2 song position 0xf3 song select 0xf8 timing clock 0xfa start 0xfb continue 0xfc stop Right now, the packetization rests pretty heavily on the idea that the players are humans -- the latency over interesting Internet distances are comparable to the acoustic latency of musicians in a room (Berkeley-Stanford, 40 miles apart, has an acoustic latency of 2.4 ft/0.7 meters/2.1ms; Berkeley-Caltech, 375 miles apart, has an acoustic latency of 16ft/4.9 meters/14.2ms). Just like players can adjust to these latencies in the same room, they can adjust over the net -- including small shifts in the latency overy time. Figuring out a sensible way to implement the real-time sync commands in that context is challenge, because the players are robots, not humans, and they need to "listen" to the latency of the link and adjust. -- The other major MIDI System category is SysEx -- the "reliable bulk data" usages of SysEx are really a bad match for RTP, and need to be shunted to a TCP link; the "manufacturer-specific control data" usage IS a good fit for RTP, though, and the challenge here is to define a good recovery journal semantics and bit-encoding that works in the context of MWPP (the recovery journal is the forward-error-correction system built into MWPP to gracefully handle lost packets). ---- These two issues (and a few other minor ones) were sufficiently complex, and sufficiently removed from the primary target application of the packetization (identical softsynths on all network nodes, to do network musical performance), that I thought the right thing to do for now was to leave reserved bits in all the right places in the packetization, so that when someone is motivated to solve these problems well, the packetization can be upgraded in a backward-compatible way. If someone is inspired to work on the problem now, I think that's a great idea -- you could write a companion I-D in the AVT working group for MIDI Systems semantics, defining how to handle MIDI Systems inside of MWPP. --jl ------------------------------------------------------------------------- John Lazzaro -- Research Specialist -- CS Division -- EECS -- UC Berkeley lazzaro [at] cs [dot] berkeley [dot] edu www.cs.berkeley.edu/~lazzaro ------------------------------------------------------------------------- _______________________________________________ Audio/Video Transport Working Group avt@ietf.org http://www1.ietf.org/mailman/listinfo/avt
- [AVT] Re: [linux-audio-dev] Introducing DMIDI John Lazzaro
- [AVT] Re: [linux-audio-dev] Introducing DMIDI John Lazzaro
- [AVT] Re: [linux-audio-dev] Introducing DMIDI Dominique Fober
- [AVT] Re: [linux-audio-dev] Introducing DMIDI John Lazzaro
- [AVT] Re: [linux-audio-dev] Introducing DMIDI Dominique Fober