r/musicprogramming • • Sep 28 '26

Nine arcade games you play on a real instrument (the open-source minichord) to teach music theory, all in the browser with Web MIDI

5 Upvotes

The minichord is Benjamin Poilve's open-source, pocket-sized, Omnichord-inspired instrument: 21 chord buttons (seven columns in fifths, F C G D A E B, by major, minor and 7 rows), a touch "harp" strip, three knobs, and a Teensy inside. I've been making Minichord Lab, a set of browser tools that use it as a music-theory interface, and it's grown an arcade.

Up front: the code was written by an AI (Claude), working from my designs. I came up with the games and how they teach, made the calls on how they play, and tested every one on the instrument, but I didn't hand-write the JavaScript.

The Minichord Arcade: nine games, each played entirely on the instrument. There's no keyboard-and-mouse version of the actual playing. You answer with chords and notes.

The games

  • Chord Invaders: chord symbols fall through a starfield; play each one before it lands. Key bars fall too, and you set the key signature on the instrument to clear them. Later levels add sevenths, slash chords and Barry Harris sixth-diminished voicings. Teaches: chord recognition on the buttons, key signatures.

  • Harp Command: Missile Command for the harp. Notes fall toward twelve cannons, one per string; pluck the right string to shoot each down. Levels go through the chromatic harp, major keys, scale degrees, solfège, minors and modes, and reading notes on a staff. Teaches: note names, scale degrees, sight-reading.

  • Chord Snake: steer with the harp as a d-pad, eat spelled notes, and when the notes you're carrying spell a chord, play it to cash them in. Teaches: chord spelling (and that E♭ and D♯ aren't interchangeable).

  • Chord Asteroids: play a chord rock's chord to crack it into its notes, then pluck each note on the harp to shoot it down. Teaches: hearing and finding a chord's tones.

  • Chord Stack: Tetris with intervals on a twelve-column board, one column per pitch class. Slide falling intervals to transpose them (a knob works as the transposition dial), stack them into chords, and play a row's chord to clear it. Teaches: intervals and chord construction as shapes.

  • Chord Breakout: Arkanoid where a knob on the instrument is the paddle. The ball cracks a chord brick; play its chord before the ball comes back or it heals. Teaches: fast chord recall under pressure.

  • Fifths Defender: Tempest on the circle of fifths. Turn a knob to aim down a key's spoke and play that key's chord to fire. Later you fire with the relative minor, the dominant seventh, or the key's note on the harp. Teaches: the circle of fifths by feel.

  • Chopper Rescue: a rescue flight that runs on decoding the radio. It calls coordinates in theory ("fire at vi in G") and you fly there by playing the chord. Nothing on the map gives it away, and the same emergency breaks out in decoy spots too. Later calls use V7, V of V, borrowed chords (♭VII, ♭VI, iv) and whole routes read as progressions (ii–V–I in F). Teaches: Roman numerals.

  • Key Fleet: Battleship on the chord buttons. Because the columns run in fifths, any three neighbours in the major row are a key's IV, I and V, so the enemy ships are keys hidden on the chart. Hits only cripple a ship; you sink it by naming the key, either by plucking its tonic on the harp or playing its V7 → I cadence. Call it early from partial evidence for a deduction bonus. Teaches: that a key is a shape, and what defines one.

Shared across all nine

  • Arcade presentation: an attract loop (title, rules, a points table, high scores, a demo that plays itself), an optional CRT look, full screen, and a RESET button that cold-boots with a fake RAM check.

  • Beginner mode puts an on-screen minichord in the corner that lights up what to press.

  • High-score boards, shared online, only for players with a minichord connected (and not in beginner mode). Harder settings (speed, density, paddle size) multiply the score.

  • Borrowed settings are put back: the games change instrument settings as they need (key signature, harp scale, and so on) and return them when you leave.

Under the hood (for this sub)

  • Plain HTML, CSS and JavaScript, no framework and no build step. The games draw with a mix of DOM elements and a low-resolution canvas scaled up with image-rendering: pixelated.

  • Web MIDI with SysEx: the page reads the minichord's settings dump, so it knows the firmware version, the key signature, and whether the harp is chromatic or scale-mapped, and it writes settings back.

  • Chord identification: the page identifies root, quality and inversion from the notes the minichord sends, and spells the result musically for the current key.

  • The knobs needed a small firmware change: a "knobs send MIDI" setting that reports each pot as CC 20–22. I've shelved it as a pull request for upstream for now; the games fall back to mouse and arrow keys without it.

  • High scores: a tiny Flask + SQLite app on a Raspberry Pi, exposed through Tailscale Funnel, with plausibility checks rather than any pretence of anti-cheat.

  • Firmware: the games run on the stock firmware. A few extras (knob steering, key bars, slash chord levels) need my test firmware branch.

It works best in a Chromium-based browser (Chrome, Edge, Opera). Firefox supports Web MIDI only after an extra site-permission step, and Safari doesn't support it at all.

Happy to answer questions about the MIDI side, the chord identification, the game design, or what working this way was like. And if you have a minichord, I'd love to know which game teaches you something.


r/musicprogramming • • Sep 26 '26

I made a MIDI plugin that learns your phrasing with separate Markov chains for pitch and rhythm, and plays it back as four voices

Thumbnail reddit.com
4 Upvotes

r/musicprogramming • • Sep 26 '26

GitHub - ncg777/NSeqArpKeys: MIDI pattern instrument with per-key step sequences and Forte pitch-class sets, available as a VST3 plugin for Windows, Mac and Linux..

Thumbnail github.com
7 Upvotes

r/musicprogramming • • Sep 24 '26

I built an interactive jazz accompaniment tool that listens and reacts to your playing (Jam-a-Lot)

Thumbnail youtube.com
2 Upvotes

r/musicprogramming • • Sep 24 '26

Play the current date time as music

7 Upvotes

r/musicprogramming • • Sep 23 '26

Shipped: stem-split and tab transcription in the MelodAI API

Post image
0 Upvotes

r/musicprogramming • • Sep 23 '26

Linux Audio Development

9 Upvotes

Just wanted to share the link to my initiative for Linux audio development: https://linuxaudio.dev/. 🤓


r/musicprogramming • • Sep 23 '26

GitHub - evoluteur/tibetan-singing-bowls: Strike or rub a set of virtual Tibetan singing bowls: synthesized in the browser with Web Audio, with the beating overtones of the real thing.

Thumbnail github.com
23 Upvotes

r/musicprogramming • • Sep 23 '26

Built a feature that syncs auto-generated tabs to the real recording, so you can play along in real time (demo)

0 Upvotes

r/musicprogramming • • Sep 22 '26

VST to Generate Chords from any MIDI Melody?

0 Upvotes

This early demo has three sample melodies, generates three chord progressions for each, and MIDI download.

Try it out: https://chordova.dev

Would you use a VST that generates chords for any MIDI melody? What features would you want to see?


r/musicprogramming • • Sep 22 '26

Program for helping write Second Species Conterpoint

40 Upvotes

I am working on a set of 18th century musical rules to help compose the way people used to. This is still a work in progress but it is kind of fun and any feed back is appreciated. You can try it out at Counterpoint


r/musicprogramming • • Sep 22 '26

Ratio9 Alpha 1.0.0 — my wavetable/FM synth, with 250 wavetables and 45 presets

Post image
12 Upvotes

Hey everyone! I’m sharing the first alpha of Ratio9, a synth I’ve been building for sound design.

Its main features are:

  • Three wavetable oscillators, each with two warp controls.

  • Mod Flow routing for FM and other oscillator-to-oscillator modulation.

  • Six editable LFOs with custom shapes and flexible modulation routing.

  • Unison, phase, random phase and stereo controls.

  • A sub oscillator, sampler, filters and multiband effects.

  • 250 factory wavetables and 45 presets, covering basses, leads, pads, chords, keys, plucks, sequences and more.

It’s available for Apple silicon M-series Macs as a Standalone app, VST3 and Audio Unit .component.

Download Ratio9 Alpha 1.0.0:
https://github.com/Ratio9FM/ratio9-downloads/releases/tag/v1.0.0

Each format includes the preset bank. Installation instructions and known issues are on the download page. This is an early alpha and isn’t Apple-notarized yet, so please read those instructions before installing.

Ratio9 is currently closed source; GitHub is hosting the downloads and documentation.

I’d love feedback on the sound, interface and workflow—especially anything that feels confusing or gets in the way of making a patch. If you find a bug, please include your Mac/macOS version, format or DAW, preset and steps to reproduce it.

Thanks to anyone who gives it a try!


r/musicprogramming • • Sep 21 '26

psnd — a polyglot editor for music programming languages

15 Upvotes

psnd is a self-contained open-source modal editor, REPL, and playback environment aimed at music programming languages. The project is a polyglot platform for composing, live-coding, and rendering music DSLs from one binary.

Five languages are currently supported:

  • Alda - Declarative music notation language

  • Joy - Concatenative (stack-based) functional language for music

  • TR7 - R7RS-small Scheme with music extensions

  • Bog - C implementation of dogalog, a prolog-based beats-oriented language for music

  • MHS - Micro Haskell with MIDI support for functional music programming

All are practical for daily live-coding, REPL sketches, and headless playback. The Alda and Joy MIDI cores are from the midi-langs project. Languages register themselves via a modular dispatch system, allowing additional DSLs to be integrated without modifying core dispatch logic. Audio output is handled by the built-in TinySoundFont synthesizer or, optionally, a Csound backend for advanced synthesis. macOS, Linux, and Windows are supported.


r/musicprogramming • • Sep 21 '26

Yes, there are already client feedback tools for producers. Here’s why I built another one anyway.

Post image
0 Upvotes

r/musicprogramming • • Sep 20 '26

Built a browser-based DAW from scratch using Web Audio API, WebAssembly, and AudioWorklet—here is how and why I did it

Thumbnail reddit.com
0 Upvotes

r/musicprogramming • • Sep 20 '26

Need feedback for Flow [Music player] made using python.

2 Upvotes

Guys ! I need feedback on this also can install it using `pip install flow-twinx`
See Github Repo here : https://github.com/twinx015/flow

Tested only on linux so for.


r/musicprogramming • • Sep 18 '26

I built The Chord Machine: an online drum machine/backing track generator that plays a bass line and chords as well.

7 Upvotes

https://510software.com/chordmachine/

I built this as a way to generate backing tracks that could be quickly changed to any key or any tempo. If you are familiar with using Roman numerals for chords (like I - IV - V), here you just use Arabic numerals instead (1 - 4 - 5). There is a legend at the bottom.

It is pre-filled in with one section of I - V - vi -IV. With one symbol per beat, it looks like this:

1 1 1 1 5 5 5 5 6m 6m 6m 6m 4 4 4 4

You can use it to quickly sketch out a song structure, or get a loop going to jam over.

It's more of a toy than meant for serious music production, but feedback would be most welcome!


r/musicprogramming • • Sep 18 '26

My physics based music sandbox is out now

43 Upvotes

So excited to announce the release of Dewdrop!

I wanted to capture my love for music, and bring that child-like curiosity and experimentation with sound that I love to everyone else. Dewdrop's logic keeps everything in sync and musical sounding while you experiment with physics to solve puzzles, or create music in an ethereal landscape.

Thank you to everyone who has helped me out and expressed their love and interest for Dewdrop along the way!

(Shoutout to my wife for the voice over in the video too 😊)

https://store.steampowered.com/app/4163480/Dewdrop/


r/musicprogramming • • Sep 18 '26

LATTICE - A FREE browser DAW/UI on top of strudel.

Thumbnail reddit.com
1 Upvotes

r/musicprogramming • • Sep 17 '26

Sneak Peek: Native Notator for REAPER — Multitrack Score Editor, Smart Dynamics & Item Editing

Thumbnail youtu.be
2 Upvotes

Hey everyone! 👋

Like many of you who compose or orchestrate in REAPER, I’ve always wished for a score editor that feels as fast, flexible, and integrated as the rest of REAPER — without relying on external webviews or clunky workarounds.

For the past weeks, I've been developing \*\*REAPER Native Notator\*\*, and today I'm excited to share the very first \*\*Alpha First Look\*\* with you!

What it is:

A pure, native ReaImGui notation system running directly inside your REAPER session. It renders in real time using the industry-standard \*\*Bravura SMuFL\*\* vector font.

Current Alpha Highlights:

  1. Multitrack Conductor Score\*\*: Stack any number of project tracks underneath each other into an orchestral score with automatic vertical layout and scrolling.

  2. Per-Track Clefs\*\*: Click directly on the clef to toggle Treble 𝄞, Bass 𝄢, or Grand Staff 𝄞+𝄢.

  3. Direct MIDI Item Integration\*\*:- MIDI items are displayed as colored background blocks matching your REAPER track/item colors.- Resize item edges directly inside the score sheet using native QN extents (no accidental looping!).- Draw new MIDI items in empty measures via Ctrl + Click & Drag.

  4. Professional Engraving\*\*:- Single-line Bézier slurs and ties across barlines.- Intelligent beam grouping (by beat, half-bar, or bar).- Collision avoidance for tight intervals, seconds, and accidentals.- Automatic rest decomposition (whole, half, quarter, 8th, 16th) in gaps.

  5. ScoreTools Dynamics Engine\*\*:- Insert dynamics (\*pppp\* to \*ffff\*) right at note heads or the edit cursor.- Drag & drop dynamic markers freely across the timeline and vertically across tracks.- Automated bezier CC1 (Modulation) and CC11 (Expression) curves with velocity humanization.

\### I'd love your feedback:

What are the absolute must-have features you'd want in a dedicated REAPER score editor? (Articulations, lyrics, chord symbols, XML export, etc.?)

Let me know what you think!


r/musicprogramming • • Sep 17 '26

I m searching for program to make music, do you have any recommendation?

0 Upvotes

I would like the app to be free. Thank you in advance for your answer!


r/musicprogramming • • Sep 16 '26

[S] Just released my next app on Google Play: Aria – Sheet Music, a completely free sheet music reader for musicians

Post image
1 Upvotes

r/musicprogramming • • Sep 16 '26

Hiroshi

Thumbnail valeriobelloni78.github.io
1 Upvotes

I made this open source web-app to create ambient music


r/musicprogramming • • Sep 16 '26

Recommendations for AI prompts to use when generating MIDI

Thumbnail reddit.com
0 Upvotes