The familiar tune of Superstition reverberated through my desk. The sound was scratchy, not a FM scratchy, but a vinyl scratchy. The frequency response was wrong, actually, it was almost non-existent. With trained hand I inched up the voltage of my bench supply, eyes flashing between its needle and where the sound was coming from. A black plastic arm with a small PCB on one end jolted back and forth, the amplitude of its movement slowly and steadily increasing, with it the volume of the sound.
VCRs,
CD and
DVD players, computer storage drives, printers (including fax machines and photocopiers) and document scanners, among other places you may find them, contain
stepper motors. Now, a feature of stepper motors that is critical to what's about to be discussed is that they are extremely responsive. A two-stroke chainsaw motor might take a good couple of seconds to jump 100
RPM in speed, but a stepper motor can do it in the order of milliseconds. "Why is this useful?" you might be asking. Well, we will now look at how a
speaker works. Speakers produce sound by vibrating a medium, whether it be a paper cone or
air directly. Ok, so what if an electric motor were able to be started and stopped at audible frequencies?
This is precisely what someone did with the Commodore 1541 floppy disk drive. A Hacker discovered how to send the 1541's head madly seeking with the right timing to produce musical notes. There are a number of ways to achieve this "singing drive" phenomenon, and they are basically divided into hardware and software. I'm going to refer to floppy disk drives a lot, but most of what I'm saying is just as applicable to other forms of rotating computer storage drives.
I shall look at software first. Probably the method that requires the least modification to any existing hardware or software is to generate specially fragmented flat files from MIDI files, or any audio file really. In order to make this work, one must be intimately acquainted with the workings of their intended target drive, and its timing more specifically. The frequency of MIDI notes can be mapped to the time it takes a storage device's head to cover X number of blocks on the storage medium. Armed with this information, files can be crafted and copied to a diskette that, when the drive attempts to read, will cause its head to furiously skip back and forth over the disk, looking for the pieces of the file. The high-speed constant reversing of direction of the stepper motor the head's arm is attached to results in "music".
A second software solution requires talking directly to the stepper motor controller at a low level. To facilitate this, custom drivers must be written. Again, this requires a pretty intimate understanding of your target device, not only mechanically, but also how it communicates with other devices and probably a pretty solid grounding in how your operating system works. Having on the fly control of the stepper motor is advantageous over just throwing odd files at the drive mainly because it means you can turn the thing into, effectively, a MIDI hardware synthesiser. Having a hardware synthesiser lets you plug in a MIDI-equipped musical instrument, keyboard probably, and do live performances with the disk drive making the sounds.
Now we get to hardware solutions. What is wrong with software? Firstly, suppose you don't have a computer CD-ROM drive, but a Discman, how are you going to talk to that? (Please don't tell me you rigged a 555 timer to the back and next buttons) There could be other reasons you can't get at the existing controller, maybe you pulled the drive from a skip, and it's not entirely serviceable. Or maybe you're Top Gear, playing with a Renault Formula 1 car engine, but I haven't had first hand experience with this one, so we'll leave it for now. You'll probably want to supply your own stepper controller at this point. A PIC or similar microcontroller can do Pulse Width Modulation for you, so they are useful for standalone systems. Anyone want to be the first to turn a PS/2 keyboard + PIC + floppy drive into a musical instrument and record an album? Whether you use the existing stepper driver or your own, remember that you're going to have to do some programming to make it do what you want.
And now here's a completely hardware solution, no programming required at all. No, this is not a tape deck, your line level audio will not do. But add an amplifier, and the speaker output of an audio system can be fed directly to the motor coils. This setup differs significantly from the previous ones in that it is not limited to MIDI notes, but will accept the output of a Walkman or whatever else you want to throw at it. It is also by far the loudest way to go. After all, even SCSI drives aren't that audible on stage.
My current setup is, as you might expect, a combination of the proposed solutions. Custom drivers for a USB-controlled ATA 3.5" floppy drive turn it into a MIDI output. However, a transistor amplifier in line with the stepper motor overvolts it enough to make a "more reasonable" amount of noise.
Hopefully if you've read this far, you haven't started modifying anything yet. To be clear, you will almost certainly destroy your floppy drive and any disks inserted in it. If there are any disk drives mounted in nearby drive bays, the vibration will possibly damage them too. Disk drives were never meant to play music. (If you find one that was designed specifically to play music and still read and write disks afterwards, I'd be interested to hear about it) Playing music places disk drives under extreme mechanical abuse. They may misalign and/or shake themselves to pieces. While shaking themselves to pieces, shards of metal may fall across electrical paths, causing short circuits. This, along with overheating the motor, presents a fire hazard. In other words, doing any of what I have just described is probably a really stupid idea. So if you damage anything, it wasn't my fault, 'kay?
That said, go forth and destroy floppy drives!