If you don’t know what a cassette is, you were probably born in the digital high-tech era, an era that is undoubtedly exciting and innovative. On the other hand, if you know what an audio cassette is, you belong to the older generation, the analog dinosaurs that know the painful connection between a pen and a cassette tape.
The invention of the compact cassette tape happened 50 years ago, so it’s time to celebrate:
“In 1962 Philips invented the compact audio cassette medium for audio storage, introducing it in Europe in August 1963 (at the Berlin Radio Show), and in the United States (under the Norelco brand) in November 1964, with the trademark name Compact Cassette.”
Since the old-fashioned cassette player is disappearing, we wanted to commemorate it by sharing an old school cassette player build with HTML5 audio with you. It’s just an experiment and the idea is to imitate the behavior of a vintage cassette tape (play, stop, rewind, fast forward and side switch) and use HTML5 audio. The magnetic tape inside should move as well accordingly. It’s far from being a perfect imitation of the classic cassette tape, it’s really just a fun experiment. You will probably find many bugs!
The beautiful cassette tape is by Mauricio Estrella and he shares his pixel-perfect PSD here:
Cassette – PSD File by Mauricio Estrella
The songs in the demo are by the highly talented Blue Ducks and Blank & Kytt:
The tape sound effects are from Pogotron’s sample on Freesound.org:
Tape Recorder.wav by Pogotron
For the volume control we used the great KnobKnob jQuery plugin by Martin Angelov.
The icon font that we use for the player controls are from the Font Awesome icon font by Dave Gandy and we’ve used Fontello for creating a custom set. The Font Awesome icon set is licensed under CC BY 3.0.
We really hope you enjoy this little time travel, turn your sound on and play with it and tell us if you got nostalgic :)
Please note that this is highly experimental and for fun purpose only. There is no fallback for older browsers (irony!) and only super-funky disco moves are allowed! :)


ROW! Is that cool!!!!
LOVE this.
I dont understand why it is not working for me…
I putted 4 differents mp3 into songs folder, then in the file jquery.cassette.js I changed this line using the name of mp3 I want to use:
songs : [ '01.mp3', '02.mp3', '03.mp3', '04.mp3', '05.mp3' ],
I didnt put ogg versions, is maybe this?
Thanks for reply :)
uhmm, sorry I mean I put 5 mp3 tracks like this:
songs : [ '01', '02', '03', '04', '05' ],
guaaaaaaaaauuuuuuuuuuuuu!!!!!!!
greeeeeeaaaaaaaat!!,
to someone like me, so music is really important dy by day, I´ll put in my website, right now!!
excuse me my bad english
wow ,
looking a great style and
very nice one one
Works in wordpress?
Hi Manoela,
thanks for your great articles! Any idea how to get this to work on other browsers (that support html5) and ios? Seems to be something in the buttons that is breaking it in some situations…
Cheers
J
stream?
Woow, great fun!!
Gonna use it for our radiostation website playing our radio shows.
A little sad my iPhone doesn’t play the audio.
Hi Stela! Nice Stuff! I am trying to change the source of the music but it’s not possible (I am trying to implement it in a WP theme, one of my own, just for fun!…) Could you give me some clues? Many thanks! Awesome development!
Fantastic player. I’m a little surprised that it works like a charm in the current Firefox (Windows 7) but doesn’t play tracks longer than 1:20 minutes in the current Chrome browser (Windows 7). As long as the songs are shorter than 1:20 minutes, all is fine, in Chrome, too.
Awesome!
I’ll just don’t understand the following:
When I’ll download the archive and run the index.html inside everything works perfectly unless I start index.html from a local server (xampp) it loads forever (http://127.0.0.1/casette/)…
I thought might be a problem with a wrong path or something but nope that wasnt the problem.
I’ll tried also changing songs same problem loads forever…
Firebug didn’t log any issues. I thought it might be a mime problem so I’ll added them also to a htaccess but this seems not to be the problem it still loads forever…
So in other words I can’t make it work on a local apache server :(
Kinda clueless here right now :(
coooooool?
You made my day! :-)