[sdiy] Help-Blacet midi-din sync chip problems!
Colin Fraser
colin at colinfraser.com
Mon Feb 11 20:34:21 CET 2002
> -----Original Message-----
> From: owner-synth-diy at dropmix.xs4all.nl
> [mailto:owner-synth-diy at dropmix.xs4all.nl] On Behalf Of John Speth
> Sent: 11 February 2002 3:33
> To: synth-diy at dropmix.xs4all.nl
> Subject: RE: [sdiy] Help-Blacet midi-din sync chip problems!
>
> I recently went through the exercise of making a Blacet clone
> so I had a chance to thoroughly analyze the system. I found
> that the lagging and rushing came primarily from the MIDI
> data stream. If the data stream is busy with other MIDI
> data, the timing bytes need to wait for other bytes to
> complete. A MIDI bytes takes at 320us to send not to mention
> decode time. That's one source of jitter.
The degree of jitter will depend to a certain extent on how well written
the software at the source of the MIDI data is.
The MIDI spec allows a System realtime message to appear anywhere - even
in between the bytes of a multibyte message.
So a MIDI clock byte should never have to wait for any more than one
other byte to complete before it is sent - a maximum delay of 640us.
This doesn't seem to be the case in many devices - the MIDI clocks seem
to just be inserted into the outgoing MIDI data buffer.
Very poor practice !
> And finally, the
> Blacet chip is probably another source of jitter. It's
> running at 4MHz which carries the extra burden of processing
> all MIDI data. When it finally decides it has a MIDI clock
> byte, it asserts the clock pin. This all takes a finite
> amount of time. All sources of jitter add up.
This shouldn't be the case, assuming the Blacet chip is implemented in a
similar way to mine and the others I've seen floating about the web.
The sync chip simply watches the MIDI stream, reading every byte that
passes, and ignoring any it isn't interested in i.e. anything that isn't
MIDI clock.
As soon as a START, STOP, CONTINUE or CLOCK byte's trailing edge has
been detected, the PIC can generate the clock pulse, or toggle the run
line as required. It will easily be able to do this before the start bit
of the next byte on the midi line, even if it arrives immediately after
the clock byte.
Assuming an 'ideal' source of MIDI clock, i.e. a device that inserts the
clock byte into the outgoing stream as soon as it can, the output pulse
from the SYNC chip should be no more than 650us or so late at the most.
Of course, you'll probably only see source timing accuracy like that
from a hardware sequencer.
Colin f
More information about the Synth-diy
mailing list