
The idea
Often times I would go on a trip and the evening would evolve into a jamming session. 4 out of 5 times we would be without a guitar or a Uke. But my friends and I were always with a laptop. Garage band is great but it doesn't really utilize a laptop fully to allow me to play accompaniment to a song. Most music software rely on you connecting a midi keyboard to play music or you transferring your exact strings and keyboard knowledge and press buttons on a screen that have the same layout as your instrument.
I wanted to build an instrument on my laptop. Thats what Jammune is really - an instrument. Jammune turns your keyboard into eight chord pads. Pick a key, and A S D F / Q W E R on your left hand become the eight chords of that scale. Hold a key with your right hand on the right side of the keyboard to colour the chord: minor, 7th, sus4, add9, bass notes, octaves.
It's built for jamming. Its built so you can close your eyes and play it on instinct - like a real instrument. That also means that there is a learning curve to build that intuition. But just like all instruments, once you get the feel for it, you can shut down your brain and let the music flow through you.
Chords are derived, not looked up
There's no table of "mode → chord qualities" anywhere in the code. A scale is just a list of semitone steps, and every chord is built by stacking every other note of it: degrees d, d+2, d+4, wrapping round the octave. The chord's name comes from measuring its intervals back to the root.
The nice part: harmonic minor's augmented III and diminished vii°7 just fall out of that. There are no special cases, and the whole music-theory core is pure TypeScript with zero dependencies, unit-tested with Vitest.
Pads that glow in the chord's colour

Every modifier has its own colour: indigo for minor, orchid for 7th, magenta for dom7, cream for add9. A sounding pad glows with a WebGL mesh gradient (Paper Shaders) tinted by whatever you're holding. Stack modifiers and the colours blend. Change one mid-chord and the pad morphs over 700 ms instead of snapping.

The key legend lights up in the same colours, so it teaches you the mapping while you play.

On a phone it's a launchpad

Phones don't have a keyboard, so the layout changes completely. Hold the phone sideways and you get a launchpad: pads on the right, and a two-axis modifier touchpad on the left. Right adds the 7th, down makes it minor, top-left is sus4. Slide your thumb while a chord rings and it changes live. Everything is multi-touch, so one hand colours while the other plays.


Key, mode and sound live in bottom-sheet drawers (shadcn) behind little buttons in the header, each with a scroll wheel.
Stack
Next.js · TypeScript · Tone.js · Zustand · Tailwind v4 · Paper Shaders (WebGL) · shadcn/vaul · Vitest
