Are Player Pianos Early Computers? and Rolls to MIDI
By Jim Howes, forwarded by Terry Smythe
Forwarded Message:
From: jimh@accessintl.com To: ALL Orig: MBNET Subj: Re: Player rolls => midi Area: 1-ec.music.ragtime Date: 02/26/96 =============================================================================
driller@slic.com (Doug Vensel) wrote: .. > P.S. How many people out there actually realize that player pianos > are the world's first actual computers? The whole principle of on/off > to form certain commands (chords)(songs) comes from the principles of > the player action. Think about it.
Sorry, but if you want to consider such a thing a computer, I believe the little wind-up music boxes preceded player pianos. Even earlier than those would be some of the mechanized toys and contraptions like Black Forest cuckoo clocks, and Chinese water-clocks. Some of these had marvelously complex behaviors, based on the interactions of gears and toggles (on/off), rather like Babbage's engine (the first mechanical computer that I know of, and forerunner of the old mechanical adding machines).
Regarding the Player to MIDI problem. I don't suppose anybody makes a player piano with MIDI output. Lacking that, any decent custom digital engineering company could build you a one-of-a-kind translator, but they'd probably want $30,000 to $100,000 for the privilege. The best bet is, as Doug suggested, finding a company that has already solved the problem for their own needs, and asking them to do the translation for you.
If someone wants to build the contraption themselves, I'd suggest building a mechanism to run the rolls past an array of optical sensors at some very slow speed, say 1/10th-1/100th normal speed. (It's easier on frail old rolls, and allows the operator more time to react if something goes wrong.) Interface the sensors to a cheap PC type computer using the parallel port and a bank addressing scheme (you don't want to equip your computer with 11 8-bit parallel ports). Then write a simple real-time program to read the roll and write a mid (or whatever) file. If you run the roll by slowly enough, you could even write the program in Basic (assuming you have a version that allows direct device I/O). If you want to get fancy, you could add a few sensors to monitor motor speed, roll tension, etc., and/or use stepping motors, and allow the computer to control the speed. You could also implement a software tear detector (any time you have N consecutive notes on, assume you have a torn roll and stop).
If the program & interface are fast enough, you could play the rolls directly to the MIDI-out port, or a built- in synthesizer, but that's not necessary. If you use stepping motors, and go slowly enough then the program doesn't have to be real-time, it can figure out the timing of the piece from the number of steps it has taken. This may be the simplest approach.
I don't usually monitor this group, so if anyone wants to talk to me more about this, e-mail me. Jim Howes
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Jim Howes Chief Engineering Officer e-mail: jbhowes@accessintl.com WWW page: http:/www.accessintl.com/jbhowes/ personal voice phone: USA 801-423-2863 fax (e-mail preferred): USA 801-373-2934
Access International Web Presence Providers e-mail: info@accessintl.com WWW page: http:/www.accessintl.com/ |
(Message sent Thu 29 Feb 1996, 17:19:12 GMT, from time zone GMT-0600.) |
|
|