Multichannel Music Generation For Arduino


[Drew] wrote a library for playing multichannel music on an Arduino. The project connects multiple piezo buzzers to the popular prototyping platform and handles the dirty work involved in modulating multiple buzzers at the same time. The video above starts with an explanation for the first three minutes but if you’re impatient you can jump directly to the music demonstration. The results are magnificent. We’re going to check out the code and see what we can make happen just as soon as we can round-up multiple piezos.

12 thoughts on “Multichannel Music Generation For Arduino

  1. The multiple speakers give an interesting stereophonic effect.

    It’s a shame it’s restricted to square waves though. I know for sure that at least 5 PCM channels at 16kHz are achievable on an ATMega168. Probably more with better C skills than mine.

    I took a look at the code, it’s nice object-oriented code and all, but a bit heavy on RAM (each note needs to be queued before it can be played). This can easily be improved.

    With a little more work this could become an awesome polyphonic synthesizer.

  2. Code looks clean but no way would I want to program each note like that. I’ve not programmed around sound before so I’m not sure if this is a pretty typical approach, or if it’s just because it’s in prototyping stages. Doesn’t seem like it’d be too far off from interpreting more common chip tunes, very neat!

  3. Could be cool, except it’s an Arduino clone and it requires a piezo for each polyphonic voice. It could get real cluttered real fast if you wanted to create a basic multichannel playback system.

    What’s the song? It’s somehow very familiar.

    (Also, the guy in the vid looks like a strung-out MaCaulay Culkin)

  4. I don’t think it really needs one piezo per channel. I’m pretty sure you could sum everything up with resistors and an OP-Amp. And then potentially drive some full range speakers. Piezos are nice, but I like being able to play below 500Hz lol. But yeah, really cool project.

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.