Home > News & Updates > Arduino News > 12-NOTE POLYPHONY ON AN ARDUINO SYNTH

12-NOTE POLYPHONY ON AN ARDUINO SYNTH

Summary of 12-NOTE POLYPHONY ON AN ARDUINO SYNTH


This article details [Kevin]'s project to build a 12-note polyphonic synthesizer using an Arduino Uno. Despite the ATmega328 chip's limitations, he achieved polyphony by utilizing timer interrupts and 12 counters to generate square waves on digital I/O pins, which are then mixed via resistors. The project was later expanded to include MIDI support and a tactile button keyboard, serving as an educational entry point into music electronics.

Parts used in the Arduino Polyphonic Synthesizer:

  • Arduino Uno
  • ATmega328 microcontroller
  • Timer interrupt system
  • 12 counters
  • Digital IO pins
  • Resistor arrangement
  • MIDI interface
  • Tactile button keyboard

When synthesizers first hit the scene back in the mid-20th century, many were monophonic instruments, capable of producing just one pitch at a time. This was a major limitation, and over time polyphonic synthesizers began to flood into the scene, greatly expanding performance possibilities. [Kevin] decided to build his own polyphonic synthesizer, but far from taking the easy route, he built it around the Arduino Uno – not a platform particularly well known for its musical abilities! 

[Kevin]’s build manages 12-note polyphony, an impressive feat for the ATmega328 at the heart of the Arduino Uno. It’s done by running an interrupt on a timer at a steady rate, and implementing 12 counters, one per note. When a counter overflows, a digital IO pin is flipped. This outputs a square wave at a certain pitch on the IO pin, producing the given note. The outputs of 12 digital IO pins are mixed together with a simple resistor arrangement, producing a basic square wave synth. Tuning isn’t perfect, but [Kevin] notes a few ways it could be improved down the line.

[Kevin] has added features along the way, expanding the simple synth to work over several octaves via MIDIwhile also building a small tactile button keyboard, too. It’s a project that serves as a great gateway into basic synthesis and music electronics, and we’re sure [Kevin] learned a lot along the way. We’ve seen other microcontroller synths before too, like this tiny device that fits inside a MIDI plug. Video after the break.

Source: 12-NOTE POLYPHONY ON AN ARDUINO SYNTH

Quick Solutions to Questions related to Arduino Polyphonic Synthesizer:

  • How did Kevin achieve 12-note polyphony on an Arduino Uno?
    By running a timer interrupt at a steady rate and implementing 12 counters where each counter overflow flips a digital IO pin.
  • What type of wave does the synthesizer produce?
    The device produces a basic square wave by mixing outputs from 12 digital IO pins.
  • Can this synthesizer work over several octaves?
    Yes, features were added to allow it to work over several octaves via MIDI.
  • Does the synthesizer have a built-in keyboard?
    Yes, a small tactile button keyboard was built for the project.
  • Is the tuning of this synthesizer perfect?
    No, the tuning is not perfect, though improvements can be made down the line.
  • What makes this project a good gateway into synthesis?
    It serves as a great introduction to basic synthesis and music electronics using a microcontroller.
  • What component is at the heart of this Arduino synth?
    The ATmega328 microcontroller is the core component managing the polyphony.
  • How are the 12 notes outputted?
    A square wave at a certain pitch is produced on the IO pin when its specific counter overflows.

About The Author

Scroll to Top