As part of the Rollscanners project I wrote a piano-roll editor in
order to create rolls for my perforator. The primary file format used
for Rollscanners output is MIDI, which contains all that is needed to
hold a rolls data. Because there's more to MIDI than needed for a
piano roll, some other approaches use a stripped-down file format,
although all of these are essentially doing exactly the same thing.
I had a go at writing a summary of the group's remarkable achievement
in creating, and making publically available, all the parts needed to
make replica roll masters. In the middle of this is a section, headed
"Software for representing roll masters," discussing MIDI and piano
rolls, which might help outline some of the concepts:
The base for all my MIDI information was the 'jglatt' web site that
Julie Porter mentioned, which is remarkably comprehensive. The key
thing to remember is that there are two flavours of MIDI, the 8-wire
real-time signal that controls instruments [the 'wireline' system], and
the computer file that stores a performance on disk.
Some commands exist only in the computer file, specifically the data
that tells the software how to convert the file into the control
signal. This distinction is sometimes not clearly spelled out in MIDI
An orchestrion needs all that a piano roll needs, plus controls to
indicate which instruments receive which control signal, so there a bit
more to it than the case I described, but the principle's the same.