Date created: Sunday, December 16, 2012 6:23:46 PM. Last modified: Saturday, April 4, 2015 10:18:11 AM

Floppy Tones - Attempt 1

Playing music with floppy disk drives and an Arduino. Many people have done this; A popular version is Moppy but this is a two part set up. A Java program runs on a PC doing all the note calculations and sends the disk drive commands to the Arduino over seria-over-USB, and the Arduino distributes the commands to the attached floppy drives. It's just acting as a controller, a middle man.

Others have written midi files to SD cards as converted drive instructions, saving on Arduino memory and computing as it doesn't store the music or compute the notes. I wanted to have the Arduino do it all. So far I'm failing. My code have several features;

  • Write a song out by writing the actual notes, we just compile and it plays. No oncverters required or SD cards etc; Songs are written as arrays of the note names - Working
  • BPM is just a variable and everything scales with this, so we can define note length in number of beats of a bar (assuming 4x4 at this early stage) and it will be relevant to the BMP - Working
  • Leading on from the above, note lenghts can varry so we don't have choppy steccato notes all the time, more flowing and legato (if we want them that is). This includes rests. - Working
  • Dynamics, set a volume for a note, nothing crazy just two options, piano and forte would do - Not implemented yet
  • Scale to multiple drives easily. This is done by connection more drives and simply adding their pin numbers to an array - Working

 

2012-05;

Sadly the Arduino Duemilanove (ATmega168) simply isn't powerful enough to do it all.

Poject code

BensleyTones.h

TimerOne.h

TimerOne.cpp

Video (One of the drives is dying here and keeps letting off little farts towards the end when certain resonate frequencies are hit)


Previous page: Bhone - Part 1
Next page: Floppy Tones - Attempt 2