Old School Cassette Player with HTML5 Audio

Vintage format meets modern web tech: an HTML5 audio player with realistic controls. Today we want to share an audio player with you that looks like an old school music cassette.
Old School Cassette Player with HTML5 Audio

From our sponsor: Ship fast and never break a thing with Shortcut (formerly Clubhouse.io).

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.”

Compact Cassette, Wikipedia

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!

See the demo Old School Cassette Player with HTML5 Audio

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! 🙂

Tagged with:

Mary Lou

ML is a freelance web designer and developer with a passion for interaction design. She studied Cognitive Science and Computational Logic and has a weakness for the smell of freshly ground peppercorns.


Stay up to date with the latest web design and development news and relevant updates from Codrops.

Feedback 108

Comments are closed.
    • Hey Kuba, thanks a lot! It’s highly experimental but you are of course free to use it! Cheers, ML

  1. Uffff rebrutal lo que haces…..te felicito nos haces los dias mas happy !!!… congratulations

  2. Awesome results, but I’m a little disappointed with the execution. Seems too many downloads/tutorials emphasize the HTML5/CSS3 something uses, and too often that makes one think that those will be the primary tools used. I guess you can’t have something like this without js, but I was hoping this would showcase something I didn’t really know well before – HTML5 and playing audio in the browser. I was hoping less js would be involved and more HTML5, CSS3, and browser tools. The sheer size of the jquery.cassette.js alone about gave me whiplash (for those who haven’t inspected it yet, it’s roughly 1000 lines of code that’s mostly undocumented, and it still relies on about 3 whole other js files and/or libraries — this having kicked my head in after all the MP3 players I made in Flash that ended up using about 1/10 as much coding).

  3. OMG!!, MARY LOU!, beautiful woman, your work always impresses!!! cheers from colombia 😉

  4. Love this.
    You are probably gonna hate this question but
    What would be the best way to shrink everything into 320×480 responsively?
    ie: Fixed pixel media queries values or fluid %

  5. this is awesome! any way to make the FF and REW actually play the music in double or triple speed instead of the reel-to-reel sound effect?

  6. This is an awesome tutorial, one of the best I have seen in quite some time

  7. It’s So Perfect… You are the sample that “Everything you can think, can become on web”.. Thank you so much for those brilliant ideas!

  8. This is awesome. I am not even going to look at the source code. This stuff is too advanced for me right now.