Music Scanning, Introduction, etc.
By Mark Fontana
> 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.
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, 23:31:28 GMT, from time zone GMT-0400.)