Mike Walter asked about file formats for roll masters. All that a
roll-master file [perforator control file] needs to do is to indicate
that a punch occurs on a particular row. There are numerous resulting
file formats but all carry the same information so are interchangeable;
my own perforation editor software supports three or four formats!
Wayne Stahnke has a well-developed suite of file formats, going back
decades, and shares their format. These are stripped down to the
simplest form possible. For roll masters the WEB/ANN pair of files are
used. The WEB file has the punch pattern which is simply a sequence
of punch numbers and row numbers. The first mention of a punch means
'on', the next mans 'off' and so on. The ANN file is a text file where
each record has a description of some aspect of the roll as a
keyword-value pair. Wayne has developed a thorough suite of such
information.
The 'rollscanners' group in the guise of Warren Trachtman chose to use
a file format based on MIDI because it's a widely-known standard so
likely to remain readable for a very long time, and allows files to be
processed using standard off-the-shelf software. As the intention was
a public archive of exchangeable files use of a public standard was
felt appropriate, and its use has validated that approach.
However, the MIDI format needs a minor tweak for rolls: it uses
'ticks' as its basic count of time but rolls use punch rows. Software
for a roll-master MIDI just needs to equate ticks to punch rows. While
1 tick = 1 row is obvious it gives files that software such as Cakewalk
doesn't like, so for practical terms 24 ticks was used for one punch
row. Once you make that link, the notes data from a WEB file can
directly translate into MIDI events.
The MIDI file format includes text events. These can be used to hold
a lot of extra detail ("metadata") about rolls -- type, maker, musical
contents -- in one file. For this metadata Warren chose to adopt
Wayne's existing metadata lexicon and supplement it. So, each record
in an ANN file can become a MIDI text event. MIDI has a mass of extra
capability not needed for rolls that can just be ignored or defaulted;
for instance, a roll is just "punch" or "no punch", while MIDI's 'note
on' also has a playing velocity.
In essence, then, I would suggest that the rollscanners approach forms
the best public standard file format, but the nature of the game makes
it mutually interchangeable with WEB/ANN. Pretty well the whole
piano-roll trade now use one, the other or both.
Clearly, QRS has its own file format for its Apple II machines,
and Rex Lawson has based his own files on that. Richard Tonnesen had
his own file format. When I got my perforator it came with its own.
And I expect there are many other variations, for both piano rolls
and other types of music rolls. But all formats based on roll-masters
must by definition contain exactly the same data about the punches on
a roll, and so are interchangeable. Metadata is another matter -- the
format I inherited was very sparse.
For my perforation editor I decided to make it capable of reading
rollscanners MIDI files, and also WEB/ANN, Tonnesen, and the files
I inherited. This approach also allows normal MIDI files to be used
as a source of roll masters. All that has to be done is to scale down
the ticks in a MIDI file to punch rows. For instance, MIDI at 480
ticks per beat ('PPQN' in its terms) simply divides by 20 to a typical
roll using 24 punch rows per beat.
There is more, but older, data on this topic on my website,
http://www.pianorolls.co.uk/rollcopying.htm
Julian Dyer
|