In response to John Farmer's inquiries, here is a brief description
of the perforator:
The machine has three stepper motors, one for each axis. Axis X
pulls the paper, Axis Y controls the carriage, and axis Z activates the
punch. The Y and Z axis have NEMA 23 motors, axis X a smaller NEMA 17.
The carriage and paper movements are transferred from the motors
via timing belt of pitch .08", the X axis with 3:1 reduction gears.
The carriage axis runs on a used linear guide block and rail. The
whole setup gives a resolution of 0.002" on the X and Y axis.
The Z motor has an eccentric-mounted ball bearing; it rolls on a long
steel bar with an oblong race that drives the puncher.
The punch is made from a piece of HSS rod, by grinding its end into an
inverted "V" shape. The die is simply a steel bar with an appropriate
diameter hole. For piano rolls I am using a .071" diameter punch.
I have also made punches of 3 and 4 mm diameter for street organ rolls.
The whole machine weights about 25 lbs.
For the electronics, I acquired ready-made stepper motor control boards.
They do a good job controlling current and allow for micro-stepping.
I just made some very simple circuitry for end-of-course switches and
LEDs. Everything runs on a 24-volt power supply.
About software, I did not write the software that controls the motors.
I have some previous experience with CNC machines, also as a hobby;
those machines use a standard control language code, called Gcode.
It is a very simple command language, in text files. Ironically, in
the past the commands for CNC machines were also punched in paper rolls.
The machine is controlled by shareware CNC software. It takes care
of everything, including micro-stepping, acceleration and deceleration
of the motors. It only needs a Gcode file as input.
I did write software to convert MIDI files to Gcode. Its basic
operation is complete, but there are still some improvements to be
made, mainly on the optimization of the punches. For now, the
algorithm creates regularly spaced punches over the duration of the
musical notes, with bridges (webbing) if required.
An old version of that software is available for download at:
http://members.cox.net/wmbusker/Puncher.shtml. It converts Piet
Paardekam's MidiBoek output file to Gcode.
As the perforator has only one punch, the time required to cut a roll
is dependent on the complexity of the music and the order in which the
punches are made. As it is now, it takes about one hour of operation
per minute of music.
Being aware that the commercial perforators worked with a regular
spacing along the paper axis of about 30 rows per inch, I am trying
several combinations of punches per quarter note, bridge spacing,
punch diameter, and paper speed (is there a magic formula somewhere?).
The idea is to get the holes aligned to a grid without sacrificing the
start/end of the notes. Having the holes aligned allows for a more
efficient "route" for the punch head and less time punching.
Well, maybe I have talked too much, sorry. I hope that by taking out
the burden of making the electronics and using existing software to
control the thing, this will inspire others to start building their
own machines.
Wagner Mello
|