Re: MIDI conjunction device



On Wed, 15 Mar 2006 23:17:07 -0800, "Michael R. Kesti"
<mrkesti@xxxxxxxxxx> wrote:

I had, earlier in this thread, said that a merger will, by its nature,
introduce a delay of the message duration plus the time it takes to
process the message. This is true only when non-overlapping messages
are being received.

I would agree on a one byte delay with UARTs, assuming the processing
delay is insignificant, with bit banging it would be even less. When
the serial stream enters the input UART shift register, typically an
interrupt is generated when the _last_ bit has been entered into the
shift register. The interrupt service moves the byte to the output
UART, which immediately starts to send the _first_ bit from the Tx
shift register. Thus, the message is delayed by a _single_ shift
register length (and additional time for the interrupt service
routine, which was assumed insignificant).

With bit banging, the delay would be only one bit time.

When overlapping messages are being received,
an additional delay of as musch as one message duration, depending on
how much the messages overlap, will be introduced. This is still
musically negligible.

As long as there are no overlap, the delay through the device is
constant and predictable. When an other message arrives, when the
previous is being processed, it must be stored, until the previous
message has been received and forwarded adding an extra delay, which
depends on the size of the message.

The situation gets messy, if a new messages on both channels arrive
immediately after the initial one, since the following messages would
be delayed more and more. Some priority system would be required to
discard redundant or unimportant messages or some other means would be
required to keep the (short time) average duty cycle on both input
channels below 50 % for a 2:1 merge situation (or below 33 % for three
inputs).

Paul

.



Relevant Pages

  • Re: digital delay
    ... If you want to use a serial shift register, ... max timing inaccuracy. ... Since the 1 second delay will take ... negative edge triggers, and have them both trigger accurate monostable ...
    (sci.electronics.basics)
  • Re: Spartan3 SRL16 + SliceFF, LUT stability
    ... adding one pipeline of delay. ... The LUT memories act ... shift register tap value results in an immediate change ... to the output without regard for the clock. ...
    (comp.arch.fpga)