The most surprising detail here is that a full music machine is running off an ATmega328P with only 2kb of RAM. Dultron The Destroyer built this as a first Arduino project, and audio comes out of a timer interrupt at 31.25 kHz. The drum beat in the demo stays steady and the synthesized melodies sit on top of it cleanly. For a debut microcontroller build, that is a strong result.
The hardware layout is compact: an Elegoo Uno R3 board sits on a wooden baseboard, linked by a blue USB cable, with a solderless breadboard full of jumper wires next to it. Four tactile pushbuttons and an LED live on that breadboard, while a large black rotary knob and an analog joystick module are mounted on the base plate. The 16x2 character LCD has a blue backlight, and the whole thing is programmed in the Arduino IDE with no operating system involved, running straight on the chip with its internal 16mhz clock.
Plenty of details stand out. The display opens on a title screen, then a sequence grid with numbered steps 0 to 15. The joystick scrolls through menus covering step editing, note, octave and waveform settings, and the four switches alter, trigger or modulate the melodic lines in real time. In the demo the readout sits at BPM 115, the bottom line shows the BPM plus a pattern indicator, the top line runs a row of block markers, and a green LED pulses right on the tempo.
It is not finished, and the maker says so plainly. The clock drifts, the sustain is constantly on, and the arpeggiator button does not quantize properly, with that problem causing the BPM to fluctuate. Advice on taming the drift has been asked for, so the timing side looks like the open frontier.
Project by Dultron The Destroyer. Watch it on their YouTube channel: