Introduction: PFDMP: Portable Floppy Drive Music Player
I read the instructables of n1cod3mus and Analogue-Chick and got interested in building a musical floppy setup of my own. My goal was to create a mobile setup which could be easily transferred and used on site independently. As I soon found out the step-motors are not loud enough, I had to put an amplifier in the case also. In addition, I wanted the movement of the step-motors to be visible, that is why the drives are arranged a bit differently than in the other projects I found.
The purpose of this project is to see how this kind of a project could fit into primary school technology education curriculum. We might be building these setups with primary school students and composing music for these instruments. The main goal is to integrate technology education with music. All that comes with it, is bonus.
I want to clarify that I did not invent any of this! I just made a few improvements that I thought were necessary for my purposes. The reason for using Raspberry instead of a regular laptop or a PC was just to get familiar with Raspberry as I had no previous experience using it. Small size and low power consumption of course are good...
Most of the credits on making musical floppy drives goes to Sammy1Am. MrSolidSnake745 has also created a lot content on this subject. They can be found on Youtube.
As this is the first project that I document for publishing on the internet, there are certain flaws of course. I forgot to take pictures and screenshots on many vital moments of the building. Sorry for that. Hope you understand and use the guides I used to find out the missing parts.
Step 1: Step 1: the Parts and Tools
The total cost of the project hovers around 200EUR even though I recycled all the parts I could.
The parts used in this project:
- Robust field work case
- Raspberry Pi 2 Model B running NOOBS
- Logitech K400 Keyboard
- Adafruit 3,2" screen
- Arduino Uno
- 6 Floppy disc drives
- Piezo Element
- Roland Micro Cube
- ATX Power supply unit
- Key switch for Power supply
- A control light for amusement
- Screws & bolts & etc. for assembly
- Wiring - RJ45 cables are a great source of these.
Saw (for modifying the Roland Micro Cube)
I used all the same software as n1cod3mus:
Step 2: Step 2: Wiring the Drives
A friend of mine gave me 19 floppy disc drives that looked all about the same but as I soon found out, all of them were different from each other in some way. I tested through the drives to find the ones which had the best sound and then used screws and instant adhesive to mount the floppy drives to the inside of the cover of the case. The drives need to be tightly attached to the cover plate if one wants to use similar piezo element as a microphone as the cover plate works as a kind of a resonant.
For all of the drives:
- Connect pins 11 and 12 together to activate your floppy drive. The pins needed for activating the drive depend on the mode of the floppy drive. Each drives´ one odd pin need to be connected to the ground of the Arduino (I did this by simply soldering 11 and 12 together and wiring those to the ground of the Arduino)
To connect the first drive to Arduino:
- Connect floppy drive's direction pin 18 to pin 3 on Arduino and floppy's step pin 20 to pin 2 on Arduino.
To wire the second drive:
- Connect direction pin 18 to pin 5 and step pin 20 to pin 4
To wire the third drive:
- Connect direction pin 18 to pin 7 and step pin 20 to pin 6
To wire the fourth drive:
- Connect direction pin 18 to pin 9 and step pin 20 to pin 8
To wire the fifth drive:
- Connect direction pin 18 to pin 11 and step pin 20 to pin 10
To wire the sixth drive:
- Connect direction pin 18 to pin 13 and step pin 20 to pin 12
Step 3: Step 3: Software and Testing
There were some issues during the installation of some of the software needed. Those problems may mostly have been caused by my inexperience on using Raspberry and also I forgot to take the screenshots of the installation procedures so I can't really remember all of the steps. In general it was not that complicated to get them to run on Raspberry. If I was able to make it work then anybody should be with the help of google.
As I stated earlier on Step 1, I used the instructions of n1cod3mus on the software installations. The links for all of the software can be found in Step 1. Also you need to install Java for Raspberry, which may require some tinkering on older devices but can be done. Java should come with the latest Raspian distribution on Raspberry Pi automatically but for those who cannot or do not wish to perform an entire Raspian upgrade, the Oracle JDK is available via the following command:
sudo apt-get update && sudo apt-get install oracle-java7-jdk
Step 4: Step 4: Composing Music for 6 Drives
After I got the devices and software installed I tested the Moppy software with some .midi files I downloaded only to find out that the files were way too complicated for my six drives (six channels). Luckily there is an easy solution for modifying the midi files: Seq24. Seq24 is freeware and runs under Linux. I found it extremely useful and easy to use for my purposes. I might be using that software later on with the primary school students to compile and mix music.
I used Seq24 to modify the .midi files to match my six channel midi player. As I only have six floppy drives I have to remove all unnecessary notes to make the music sound clear. Also I used this software to change the channel to be used to the drive that played that note with the best sound as all of my drives happened to have unique sound.
I put some video examples about how it is possible to make music sound "ok ish" even with fewer than 6 drives playing. The examples are recorded with 1, 2 and 5 drives playing the notes.
Step 5: Step 5: Additions
The project is still under construction and I have some ideas to take this even further when I have time for this. I recently bought a small digital piano keyboard that I will be trying to make work with this music player. That would convert the music player to genuine musical instrument :)
Again sorry for the lacking screenshots, I was pushed to publish this by my superior (Jari Laru, the blame is on you) who wanted to see this instructables. Hopefully I will get the time to work on this again in near future.