Cart 0

Playing Music on an Unexpanded Arduino with Miduino and Playtunes

Gareth Halfacree

Miduino UI

There are plenty of shields and other add-ons which give an Arduino the ability to produce music, but all too often its built-in capabilities are ignored. Anyone who has written a sketch using the built-in tone() function will be all-too aware of its limitations and quite likely rapidly lost patience at transcribing songs by hand into its notation. The solution? Miduino.

Built by Connor Nishijima as a user-friendly web-based transcriber for Len Shustek's Playtune library, Miduino makes adding music playback to an Arduino sketch as simple as possible. Just choose an ATmega-based Arduino model from the drop-down list, upload any MIDI file, and receive a ready-to-run sketch which can be loaded into the Arduino IDE ready for compilation and uploading.

Not only does Miduino take the pain out of manually transcribing songs into tone() notation, the Playtune library itself offers significant advantages over tone(). Chief among these is polyphony: the tone() function can play a single note at any given time, while the Playtune library can scale from three to six voices depending on the specification of your particular Arduino model. This turns the output from the usual beeps and boops to something far more recognisable, though it does require a pin per voice; these can then be tied together with resistors into a single speaker, or each given a speaker for multi-channel reproduction.

The heavy lifting in the project comes from Len's Playtunes library and Miditones conversion program; Connor's contribution is the smart-looking web-based front-end, which makes it far easier for beginners to make use of the package - and provides some demonstrations to boot.

Ever wanted an Arduino project to play music, or even just note-based sound effects? Miduino is the answer. By converting any MIDI file you upload into a ready-to-flash Arduino sketch, Miduino potentially saves you hours of time you would have spent trying to code the song yourself! Unlike any built-in Arduino noisemaking functions like tone(), Miduino's output is polyphonic - meaning you can play up to six notes at once thanks to the Playtune library!

Older Post Newer Post