On May 23, 2005, at 7:53 AM, Magnus Westerlund wrote:
I reread section C.4. I don't find the section particular clear.
Especially I reacted to this first normative statement:
"If any payload types on an RTP MIDI media line define a musicport
parameter, all payload types on the media line MUST define a musicport
parameter that is assigned the same value."
This requires that different midi spaces use separate RTP session.
Was that really intended?
One addendum to my earlier posting (which as you
recall, answered this question "yes" -- this answer
is unchanged, below provides addition info on it ...).
---
From RFC 3550:
Synchronization source (SSRC):
[... start of definition deleted ...]
All packets from a synchronization source form part of the same
timing and sequence number space, so a receiver groups packets by
synchronization source for playback.
[...]
A synchronization source may change its data format,
e.g., audio encoding, over time.
---
I don't think switching between PTs that specify different MIDI
name spaces during a session is in the spirit of the final line
of text from the definition above.
Two MIDI name spaces are not different "audio encodings" of the
same "microphone". Instead, channels 0-15 might be the output of
a MIDI keyboard controller player by musician A, channels
16-31 might be the output of a MIDI drum pad played by
musician B, were A and B are two players in a network musical
performance who happen to both be located in the same physical
place sharing the same computer for session management.
Using PT values to switch back and forth between musician A
and musician B isn't "changing the audio encoding" of a single source --
it's using PTs to multiplex two sources into one RTP session.
In addition, the recovery journal was not designed to support
this mode of operation -- any sequence number break triggers
recovery journal actions to mend the command stream, but
using PTs in this way creates lots of innocuous sequence
breaks.
The sensible way to use PTs here is to select different
"audio encodings" of the same MIDI performance. For example,
different renderers mapped to different PTs (although there is an
alternative way to choose different renderers within a single PT,
using the RTP MIDI multimode parameter, which is more flexible;
most apps will use that instead of PTs).
---
John Lazzaro
http://www.cs.berkeley.edu/~lazzaro
lazzaro [at] cs [dot] berkeley [dot] edu
---