[AVT] Re: Comments (1) on draft-ietf-avt-mwpp-midi-rtp-02.txt

Dominique Fober <fober@grame.fr> Wed, 13 March 2002 11:28 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 GAA02460 for <avt-archive@odin.ietf.org>; Wed, 13 Mar 2002 06:28:41 -0500 (EST)
Received: (from daemon@localhost) by optimus.ietf.org (8.9.1a/8.9.1) id GAA08731 for avt-archive@odin.ietf.org; Wed, 13 Mar 2002 06:28:43 -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 GAA08677; Wed, 13 Mar 2002 06:27:32 -0500 (EST)
Received: from ietf.org (odin [132.151.1.176]) by optimus.ietf.org (8.9.1a/8.9.1) with ESMTP id GAA08646 for <avt@optimus.ietf.org>; Wed, 13 Mar 2002 06:27:30 -0500 (EST)
Received: from rd.grame.fr (rd.grame.fr [194.5.49.4]) by ietf.org (8.9.1a/8.9.1a) with ESMTP id GAA02448 for <avt@ietf.org>; Wed, 13 Mar 2002 06:27:21 -0500 (EST)
Received: from [194.5.49.3] (macdom.grame.fr [194.5.49.3]) by rd.grame.fr (8.11.3/8.9.3) with ESMTP id g2DBTcn15122; Wed, 13 Mar 2002 12:29:38 +0100
X-Sender: fober@pop.grame.fr
Message-Id: <l03110701b8b4c3722ea5@[194.5.49.3]>
In-Reply-To: <200203100344.TAA02821@snap.CS.Berkeley.EDU>
Mime-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
X-Mailer: Eudora Light F3.1.1l
Date: Wed, 13 Mar 2002 12:27:19 +0100
To: avt@ietf.org
From: Dominique Fober <fober@grame.fr>
Cc: John Lazzaro <lazzaro@CS.Berkeley.EDU>
Content-Transfer-Encoding: 8bit
X-MIME-Autoconverted: from quoted-printable to 8bit by optimus.ietf.org id GAA08647
Subject: [AVT] Re: Comments (1) on draft-ietf-avt-mwpp-midi-rtp-02.txt
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
Content-Transfer-Encoding: 8bit

Thanks for your reply. Some points are now more clear, but I have additional comments and questions:

>> Dominique Fober writes:
>>
>> I'm not convinced by the usefulness of interleaving MIDI commands into
>> SysEx segments.  [...] But maybe you have in mind some other use that I
>> don't see.

> John Lazzaro writes:
>
>This feature seems to be getting a fair amount of negative feedback,
>maybe its best for it to be deleted. Here's an explanation of why its
>there, let me know what you think of my justification ...

You're certainly right concerning interleaving with your example however,  my feeling is that the transmission speed on alternate physical layers allow to obtain the same result without interleaving. Lets take the example of an Ethernet 10Mb network: you can transmit 1Kb in less than 1 ms. In your example, and to justify interleaving, transmitted sysex size should be greater than 1kb to interfere with notes playing. Moreover, we may consider that Ethernet 100Mb is now very widespread.

>> Dominique Fober writes:
>>
>> First : what's the time status of such a MIDI command?  I guess that
>> its delta time is equal to the container SysEx delta time. 
>
> John Lazzaro writes:
>
>Yes, if you break up a SysEx command into three segments, the three
>delta times pin down the timing of the first octet of each segment.
>In the case of "pwe=1", these delta-times must be chosen so that you
>can fit the number of octets in each segment onto the MIDI cable
>(along with any System Realtime commands coded between the segments).
>Whereas, a "pwe=0" is under no such requirement, since its designed
>for situations where MIDI command transport and execution "in
>parallel" is encouraged.

One point was not really clear to me up to now and reading your reply and rereading the draft, I deduce that in the case of "pwe=1", delta-times should be adjusted by the sender to "real-time transmission" and in particular, a zero delta time is forbidden as commands are serialized on the MIDI wire.
I'm wondering about the usefulness and even the semantic of such time stamping: actually, as MIDI bytes are queued on the MIDI wire, conversion from a zero delta time to 'n' usec will be done naturally. Moreover, it seems to me that this mechanism operates most of the time as only the beginning of the command if time stamped: for example with a large sysex, only the transmission time of the first byte is specified and the remaining bytes are queued to be transmitted as fast as possible.
It also seems to me that it results in an ambiguity: lets say that you are regularly transmitting a 250 bytes sysex every 80 ms. In fact, 80 ms is the time required to transmit the command on the MIDI wire. A receiver won't be able to decide wether the sender intention was to send the commands as fast as allowed by MIDI or to indicates a 80 ms delay between them, which is different as soon as one wants to make time transformations for example.

Another point is that MIDI rate indicates clearly a 320 usec delay between 2 transmitted bytes but how to precislely code this delay when time is expressed in various rates specified by the SDP rtpmap. For example: with a 44100 (Hz) srate, one MIDI byte corresponds to 14,112 time units (15,36 for 48000). 

Lets take a last example concerning these timing issues: suppose a 24 bytes sysex with a dropped F7 and a 44100 (Hz) srate. In the case of "pwe=1", the next command delta time should be 338,688. If it's rounded to the nearest value (339), again the receiver won't be able to decide wether it means a dropped F7 or an intentional delay. To avoid this ambiguity, delta time should be rounded to its integer value (338).

My general feeling is that the semantic of delta time is a little bit complex in  pwe mode. Wouldn't it be possible to use delta time for the unique purpose of expressing the sender timing intention (maybe it's a fantasy). Of course it means that an additional mechanism to code the dropped F7 is to be provided (terminating the sysex with 2 consecutive F7 for example).

>
>> Dominique Fober writes:
>>
>>>4. Sender Addendum: Guard Packets
>
>>I understand that guard packets policy is implementation dependant and
>>that normative recommendations has been removed. However, apart of the
>>resiliency goal mentionned in <draft-lazzaro-avt-mwpp-midi-nmp-00.txt>,
>>guard packets may also be used to ensure that the receiver may compensate
>>its clock skew with a good accuracy. In this case, the receiver has to
>>receive packets at a minimum rate.
>
>>Don't you think that it would be usefull to keep recommendations about
>>guards packets at least within the appendix ?
>
> John Lazzaro writes:
>
>Another good point, I had not considered the clock skew issues here.
>Options would seem to including (1) adding to the main memo with a
>"recommended" (2) adding an SDP method to request a skew-sensitive
>sending procedure, or (3) adding it an Informational RFC which covers
>sending and receiving algorithms in detail, which clearly needs to be
>written as a companion to the normative memo ... I tend to lean
>towards (3), but maybe there's a good reason for (1) and (2) instead.

(3) is certainly a good solution but (2) is a more flexible one: it allows a receiver to request a (skew-)sensitive sending procedure and let the purpose of this procedure apart.

----------------------------------------------
Dominique Fober               <fober@grame.fr>
----------------------------------------------
GRAME - Centre National de Creation Musicale -
9 rue du Garet  69001 Lyon France
tel:+33 (0)4 720 737 06 fax:+33 (0)4 720 737 01
http://www.grame.fr



_______________________________________________
Audio/Video Transport Working Group
avt@ietf.org
https://www1.ietf.org/mailman/listinfo/avt