In 2011, Paweł Zadrożniak starts a strange research: making music with old floppy drives and other olds pc peripherals.
The first attemps are very simple, first with one single drive:
then with two devices:
How does it work?
It’s nothing new and it’s very simple. The sound comes from a magnetic head moved by stepper motor. To make a specific sound, head must be moved with appropriate frequency.
FDD has a simple interface — the description may be found for example [ HERE ]. To move the head you need to activate the drive by pulling the DRVSB0 or 1 (depends on the cable you have and the connector — notice the crossover on the FDD ribbon cable) pin low and then falling edge on STEP pin makes the head move one step in direction dependent on DIR pin state.
An ATMega microcontroller is generating those frequencies and it makes the drives play music.
Paweł ends his first post about ‘evil floppies’ with this sentence:
Now it’s tome to call some older buddies (5,25′ or 8′ drivers) and make an orchestra!
And recently he posted a new video of a huge floppy orchestra:
Every column of 8 floppy drives is connected to one 8-channel controller built on ATMega16 microcontroller. One controller acts as one voice with envelope simulation — the higher the volume, the more drives are playing. This allows to make ADSR-like shape and simulate a musical instrument, like a piano (exponential decay) or string instrument (sine, „vibrato”). The boards which were made a few years ago, were designed as a stand-alone „players” with optional USB-to-UART bridge and was not intended to be chained. My goal was to re-use old stuff and get the job done as fast as possible, so I used the on-board ISP (which in fact is a SPI interface) connector to link 8 drivers in a SPI chain. Long SPI chain with unidirectional communication is not an example good and reliable design, but it did not require any hardware modification and took a minute to build a controller network, so let’s call it… good enough for this kind of project.
Scanner and disk head controllers share the same base with floppy controllers, but have a different „instrument interface”. For driving the coils, I used 2 push-pull outputs (H-bridge) built with discrete SMD MOSFETs. Scanner head controllers were built using of-the-shelf boards — an Arduino Uno (firmware also builds for ATMega328) and L298 breakout to save time needed to draw and etch the boards. PC interface (another Arduino board) receives the data over UART (USB-UART), buffers the messages and keeps the timings while passing packets to „musical instruments” over SPI interface, so a Windows hiccup will not affect the playback. It can also be driven by anything else like Raspberry Pi, Android smartphone (with USB-UART or UART-over-Bluetooth adapter) or another microcontroller.
Host application was written in Python 2.7. I wrote it mostly on some boring lectures when I was still studying at the university, so it’s a one big mess, but… at least it does the job. It parses the simple language used for writing note sequences arranged in tracks tied to a specific controller / channel and merges those parallel tracks into one command list which is transferred over COM port. It can also partially generate „song script” from MIDI file which speeds up the „song porting” process.
And now, some other pieces player from the “floppy orchestra”, “Smells Like Nerd Spirit”
“Hawaii Five-O” theme:
And “Game of Thrones” Theme!