In reply to Dan Wilson's inquiry in MMD 980605 and subsequent
discussions of this topic, I would like to describe what the Disklavier
system does to allow synchronization of external instruments with the
Disklavier.
The source of the musical commands for notes to play (MIDI IN) comes
into the Disklavier. Each MIDI command indicates whether it is for
the piano or another instrument. Thus, even though the commands for
all instruments are sent to the Disklavier in a single input, the
Disklavier only acts upon commands for notes to play, pedals to move,
etc., that are intended for the piano part. The Disklavier has an
output connector (MIDI OUT) and the Disklavier adds a 1/2-second delay
before sending the commands to any other instruments in the ensemble.
The Disklavier is regulated so 1/2 second passes from the time a MIDI
command is received until the note plays.
Notes played from the Disklavier keyboard, play without any kind of
delay being introduced (other than that of a normal piano mechanism).
This technique of holding back the notes until a set time elapses
is probably the best (if not the only way) to accurately synchronize
mechanical instruments with electronic tone generators using MIDI.
As long as you don't want to feed back the performance of a second
player (musician) to the first, you could, in theory, send music
through a long series of musicians on a network with known
(fixed-length) delays who would all play in an additive fashion.
It just wouldn't be possible to feed the music back to someone earlier
in the series and have them hear something that would provide them with
meaningful feedback. John Cage would have disagreed with that last
statement, but would probably love the randomness of the delays a
network like the Internet introduces in such a performance. ;)
Bob Fitterman
bobf@ilx.com
|