This wiki has been archived and made read-only.
For up-to-date information about TkkrLab and it's projects please visit our main website at tkkrlab.nl.

Difference between revisions of "Floppy Jukebox"

From

Jump to: navigation, search
(Music List)
Line 4: Line 4:
  
 
From 23 may - until 9 june 2013 you can see the floppy jukebox at the [http://2013.twentebiennale.nl Twente Biënnale] For this i created a Euro sign with leds and connected it to the jukebox:
 
From 23 may - until 9 june 2013 you can see the floppy jukebox at the [http://2013.twentebiennale.nl Twente Biënnale] For this i created a Euro sign with leds and connected it to the jukebox:
 +
 
[[File:flopy-jukebox-with-eurosign.jpg|border|x300px]] . [[File:flopy-jukebox-at-twentebienale.jpg|border|x300px]]<br>
 
[[File:flopy-jukebox-with-eurosign.jpg|border|x300px]] . [[File:flopy-jukebox-at-twentebienale.jpg|border|x300px]]<br>
  

Revision as of 14:05, 9 April 2016

Just like me you probably have listened to the music produced by floppy disks/scanners/and other hardware containing stepper motors. I remember the first time i heard this was on the Amiga a long time ago. I got inspired by this and i thought it would be a good learning experience to create something similar using the Arduino. Some 5,25" and 3,25" drives where gathering dust at our hacking space and in my attic i found an old SCSI case with power supply and room for 4 5,25" devices. I thought it would be nice to create a sort of Jukebox which could play songs. I ended up with a Floppy Jukebox playing midi songs stored on an micro-sd card. A remote from a broken cd-player is used to select and play the songs.

Later i added an RGB led strip for some visuals and for the Gogbot 2011 OSC_Databending project i added an Ethernet port to control the Jukebox with OSC Messages.

From 23 may - until 9 june 2013 you can see the floppy jukebox at the Twente Biënnale For this i created a Euro sign with leds and connected it to the jukebox:

Flopy-jukebox-with-eurosign.jpg . Flopy-jukebox-at-twentebienale.jpg

Floppy Jukebox with disco lights:

First version:


Hardware specs

  • Arduino Uno used as controller, later replaced by arduino ethernet for OSC_Databending
  • 4 Floppy drives as instruments
  • SD-card to store the songs
  • IR sensor + remote to control playing
  • A 4 x 5,25" device bay case with power supply
  • RGB Led strip
  • Optional: Ethernet shield for OSC

Software specs

  • Arduino 0022 software
  • SD-FAT library to access the SD card
  • IR library for remote controller
  • I converted the midi files to 1 track songs with a python program which i programmed for this task.
  • The main code on the arduino reads the songs from the sd-card and uses a ringbuffer and interrupt driven code to play a maximum of 4 notes simultaneously on the 4 drives. At the same time activaty on drive 1 to 3 is also controlling the RGB values of the led strip creating a disco like effect. If no song is playing a slow color cycling routine drives the ledstrip. Trough the later added OSC interface a song can be selected or (when not playing) the lighting color can be set.

Music List

All these songs are converted MIDI songs. At this moment we have the following songs converted for the Floppy Jukebox:

  • Willam Tell Overture - Rossini
  • Pacman theme
  • Can Can - Jacques Offenbach
  • The Fifth Symphony - Beethoven
  • Mario Brothers theme
  • Starwars theme
  • Bolero - Ravel
  • Prelude in c major - JS Bach
  • Opening sequence form Also Sprach Zarathustra - Richard Strauss
  • Für Elise - Beethoven
  • Moonlight Soneta - Beethoven
  • Tocata - JS Bach
  • O Fortuna - Carmina Burana
  • The Liberty Bell march - Hohn Philip Sousa
  • Axel F - Harold Faltermeyer
  • Three's Company theme song
  • Dr. Who theme song
  • Nyan Cat song

Serial MIDI

Being worked on

MIDI using multicast UDP

Multicast is handy because several synthesizers can join a multicast IP address and respond to MIDI events simultaneously. The default arduino ethernet library doesn't support multicast, however the W5100 chip on the ethernet shield does support one multicast address per socket.

See on Arduino UDP multicast what to change to enable the Arduino UDP Multicast.