Last edited by KermMartian on 30 Nov 2011 04:44:11 pm; edited 1 time in total
Continuing to stretch the boundaries of graphing calculator hacking, hardware, and software, Christopher Mitchell and Cemetech Labs are proud to present music played on a floppy drive... controlled by a calculator. Inspired by other projects such as the Star Wars Imperial March played on two floppy drives and Bach's Toccata and Fugue in D Minor, BWV 565 on four floppy drives, I hoped to implement this concept on a much more limited control device: a TI-83+ graphing calculator. While microcontrollers such as those used in the projects above have dozens of GPIO pins for interfacing with external hardware, the TI-83+ graphing calculator has only two I/O lines, both bidirectional. I did a bit of research on controlling floppy drives, and discovered that if I held pin 16 (Motor Enable) and pin 12 (Drive Select) of the floppy drive low, I need only pulse the Direction In and Step pins (18 and 20) to control the floppy drive's read/write head stepper motor. I put together the circuit, discovering in the process that previous projects had incorrectly identified pins 10 and 14 as the necessary lines to hold low, and then modified my mobileTunes 3.1 media player for calculators to output the necessary control signals to modulate the floppy drive's motor. Other than the floppy drive, the calculator, and a breadboard for making interconnects, the only hardware used is a standard 5/12V power supply for the floppy drive. Enjoy the results as demonstrated by Coldplay's "Clocks" in the video below!
I had to modify the routine that counts notes to figure out the length of the song, of course the core of the sound-playing routine, and of the course the accepted filetype (0,2,4 for "FloppyTunes" songs instead of 0,1,4 for mobileTunes songs). I tried to make the head change direction every one pulse, but it would miss the direction change because of timing, hit the end of the track, and not make any more music from being stuck. Therefore, I unrolled the playTone loop (which has an inner delay loop followed by a toggle of the link lines) into four pieces, two of which toggle with the direction set forward, two with the direction set backwards. I did that instead of just adding logic to the single so that I didn't need to re-calculate my note values and durations, since they're based on cycle-counting for that specific loop.
This is great! But why'd you choose such a bad song
Because back in the day I spent a week or two painstakingly sequencing it by hand, so it was in a proper format for monophonic playback and would therefore work well with this.
Travis, quite a bit, I'd think; I wouldn't trust the drive to read any disks after this. Late in the night I found it was starting to skip on certain frequencies, but I tracked that down to just a loose jumper from my breadboard.
I'm curious how you did this. I remember that MT3 used, basically, macros for the entire thing, does that mean you can just change what macros it uses, and instantly get a song compatible with floppy drives? Either way, very well done Now you just need to get some Nightwish on that thing
I do indeed, except that MT3 songs are all quadraphonic. They would sound very bad if I stripped out all but one channel, so I used an old song I had made for MobileTunes 1.0, which was a monophonic player.
interesting... could it be done with an apple 800k internal 3.5" floppy drive it is actually made by sony and the sony model number is: MODEL MP-F51W-23. so yeah i'd like to try to make floppy drive music with a calculator, but i don't have a compatable calculator ,or a pc floppy drive, but I do have a powermac g5, an arduino uno board, and an apple floppy drive.
and all of my pc's have ubuntu 12.10 or windows me and before or they're broken
Register to Join the Conversation
Have your own thoughts to add to this or any other topic? Want to ask a question, offer a suggestion, share your own programs and projects, upload a file to the file archives, get help with calculator and computer programming, or simply chat with like-minded coders and tech and calculator enthusiasts via the site-wide AJAX SAX widget? Registration for a free Cemetech account only takes a minute.
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum