Yahoo Groups archive

Disklavier

Index last updated: 2026-04-28 23:20 UTC

Message

Re: [disklavier] Dissecting Sysex and/or MTC w/ PianoSmart

2003-12-31 by Mark A. Fontana

On Wed, 31 Dec 2003, fkagel wrote:

> Is there anyone in the group that has dissected the MIDI data when
> accompanying a CD? The system 'knows' which CD is supposed to be in
> place and will indicate that the wrong one has been inserted if that
> is the case.


I would guess that the Disklavier identifies the CD based upon the
UPC/EAN code read from the audio CD's table of contents.

If you manually read this code from a CD (a program like NERO will
probably be able to do this) you could find it in the corresponding hex
dump and figure out how to make a SYSEX message that checks for the
correct CD.


> I've noted 3 SYSEXs at the beginning:
> F0 05 7E 7F 09 01 F7 - Turns on GM, but what is the 2nd Byte 05 mean?
> F0 08 43 10 4C 00 00 7E 00 F7 - XG on, but what does 2nd Byte 08 mean?
> F0 05 43 71 05 01 F7 - Don't know???

The second byte appears to be the length of the message that follows,
including the terminating F7.

This size is probably coded as a variable-length quantity (in MIDI
file lingo) so be prepared for this length to occupy more than one byte.


> Where is the MTC or what controls the CD sync? What should I be
> looking for in the hex dump?

As for the sync, no MIDI-specific time events are required in the MIDI
file.

During playback against a CD, the MIDI timing is probably slaved to the
44.1 KHz CD sample rate, and MIDI playback is probably set to begin at a
particular time marker (0:00:00?) in the CD subcode.  This only
gets tricky when the user skips forward or backwards during playback;
the playback engine would need to be coded very carefully to maintain
sync.

Mark Fontana

Attachments

Move to quarantaine

This moves the raw source file on disk only. The archive index is not changed automatically, so you still need to run a manual refresh afterward.