Workflow
Mechanical
The case and keycaps were modeled in SolidWorks and printed in PLA. Parts were designed around the switch footprint and board dimensions, with clearance for the PCB standoffs and wiring.
solidworks design flow
Electrical
The schematic was laid out in KiCad. Key matrix, audio output circuit, and peripheral wiring are all captured there.
view schematic
open full schematic ↗
Code
Written in C/C++ using the Mozzi audio library.
Chord detection runs on each note event. Active MIDI notes are reduced to pitch classes (note % 12) and sorted ascending. Two intervals are computed from the lowest note. For 2-note dyads the interval is matched to P5, M3, m3, or M2. For 3-note triads the pair of intervals is matched to Maj (4, 7), Min (3, 7), Dim (3, 6), Aug (4, 8), Sus2 (2, 7), or Sus4 (5, 7). The result is shown on the OLED in large text. If no pattern matches, individual note names are shown instead. The interactive model on this page runs the same detection logic.
view source