MMD > Archives > June 1995 > 1995.06.06 > 03Prev  Next


Music Scanning, Introduction, etc.
By Mark Fontana

Hi,

Jody wrote:

>    I read with some interest the conversation you are having with
> Will Dahlgren (he posted a portion for the rest of the group to read.
> Mike Ames and I have also build an optical scanner.  We've got the
> mechanical thing under control, including building a spring-suspended
> "optical bench" to decouple it from various room vibrations.  We also
> designed a clever tachometer to measure the paper motion

Wow... I'm impressed, and this sounds technically painful!  I like the 
CCD idea and was considering going this route except for the timing resolution
problem.  I never considered the vibration problem or the issue of measuring
paper motion.  But using a camera makes the system very versatile.

My main objective was to design a system that would do the job in 
real time... because spending any longer per roll on a collection
of hundreds (..thousands) of rolls would take way too long, and that's
not even figuring in editing time and whatnot.  I hope you find a
suitable CCD device for your project-- have you thoroughly checked
into camera units manufactured for industrial and robotics applications?

To get the timing resolution of 400 ticks/sec, I am using the external
clock on my MusicQuest MQX-32M MIDI board.  I wrote custom software
in C to handle the interrupts and store the music data in real time
in memory (in MPU-401-style delta-time format, which is later saved
to disk in Standard MIDI type-0 format).

There is some tricky stuff going on during the scanning process, including
some filtering to deal with rolls that encode extended notes as a string
of tiny holes (the raw data is full of note on/off's because of these).

>    I'd love to know what "camera" or electronics you are using for
>    your scanner.

I went the tracker-bar-fitted-with-phototransistors route. The photo-
transistors are connected to the digital inputs of 4 8255-based digital I/O
boards in a dedicated 386/40 PC.  With this setup, each note on the tracker
bar corresponds to a single port-mapped bit of memory.  So to take a sample
of the tracker bar, I simply read 12 bytes (88/8 = 11 + 1 byte for the pedal).
The IR exciter source for the phototransistors is a 150 W flood lamp
powered by a clean DC supply (with variable intensity to compensate
for various opacities of paper in the rolls).

The scanner is built around a Standard player spoolbox (circa 1915) 
installed on its back (facing upwards) in an antique floor-standing wooden
radio cabinet from the 1920's.  The spoolbox transmission is powered
by a speed-regulated 16mm movie projector motor, with a hodge-podged
belt and chain drive train made from other old cinema equipment.
The drive speed is fixed such that the rolls play at 7 feet per minute
(tempo = 70).  (So, if a roll's recommended tempo is faster (say, 85),
my actual sampling resolution works out to be slightly higher.)

The drive motor, exciter lamp, and transmission (play-reroll) are all
controlled by the computer so that the process of scanning rolls is
semi-automated.  However, there is no auto-tracking system, so an
operator must manually shift the spools during scanning to maintain
proper tracking.  I'd like to fix this someday...

The system is pretty much done and works, but it has several big disadvantages.
First of all, it can only scan plain 88-note rolls unless I perform some major
modifications.  Also, it can only scan rolls made before the 70's (or whenever
companies like QRS started using translucent paper); this material just
doesn't provide enough contrast for my optical scanner.

However, there is the advantage of realtime monitoring- there is full
MIDI out from my control computer during the scanning process.  This
could be connected to a Disklavier or other MIDI-capable piano for 
realtime play-through of rolls (though the scanner is a bit noisy due
to its less-than-ideal drive mechanism).  Another advantage is that there
is no postprocessing time- the Standard MIDI file of a recording can
be saved immediately.

>    On the topic of MIDI-Pianocorder conversion ...
>    The notion of computing (perhaps offline) output to be sent to
> a sound card to drive the Pianocorder input is intrigueing.  The fellow
> that I was working on the 8530 "project" with and I disucussed it and
> actually think it could be done. 

This *is* intriguing... enough that if I had a Pianocorder at my disposal,
I'd be wasting time on this right now!

>    I'm not convinced that there'd be any money in doing any of this, but
> the techical challenge is attractive.

Of course there's no money in this... only the possibility of lawsuits
from those who hold the copyrights on this music.  I'm pursuing this project
(like my optical scanning project) strictly for the technical challenge
and because I have no room in my tiny apartment for *real* automatic
instruments to work on.  But my roll scanner allows me to get my player piano
fix in spite of my living conditions, so I'm happy. 


Mark

ps. I guess this message (coupled with the previous one in which Will and
I were discussing Pianocorder stuff) will serve as my introduction.  I've
been reading the list for a while, but haven't had the time to write
a proper introduction.  My apologies!  My bio in a nutshell:  I'm 23 and
live in Columbus, Ohio, where I'm working on my M.S. in computer science
at Ohio State.  Until recently, I managed a local art cinema that
kindly provided a workshop for my scanner project as well as numerous
odds and ends used in its construction.  Sadly, that movie theater has
closed and will soon become a Revco drugstore...



(Message sent Tue, 6 Jun 1995 19:31:28 -0400 (EDT) , from time zone -0400.)