01 β Vision
The problem
Music generators and practice tools don't act like a bandmate. You sit down, start playing, and the software asks you to describe what you want in its terms β or it produces a finished "song" you have no part in. There's no tool that just listens to what you're playing and joins in.
AI music tools compound the problem:
- They generate full mixes at a fixed tempo, not parts that lock to your tempo.
- They're visual toy apps or opaque audio generators with no semantic structure, so blind and visually impaired producers can't use them at all.
The product
Jam Buddy is a call-and-response practice companion. The interaction is the product: you start playing, it joins in at your tempo, in the instrument you pick.
- You load a MIDI take (controller) or audio take (mic/interface).
- The buddy detects your tempo (exact from MIDI note times; tempo-range prior on audio) and matches its response length to your take.
- You pick the instrument the buddy should play (bass / lead / rhythm / synth / drums) plus a genre and mood.
- SA3 generates the response β
small-musicfor melodic parts,small-sfxfor clean isolated drums β at your tempo. - PLAY BOTH plays your take and the buddy's response together, in tempo.
- Every response is saved to
generations/so you can keep and A/B it.
The UI is a hardware-sampler-styled rack, and it's screenreader-compatible by
design: labelled range-input knobs, accessible button names, aria-live
status. Voice-first is accessibility β we build the accessible version first,
not as an afterthought.
Why this fits the Stability AI challenge
The brief asks for "a publicly available and accessible tool for music producers using the power of the Stable Audio 3 models, encouraging open development and showing the strengths of local open models."
- SA3 powers the response β generated locally from the open
small-music/small-sfxweights, no black-box API. - Two real input modes: MIDI (tempo + length lock) and audio (audio-to-audio β the buddy genuinely hears and responds to your groove).
- Accessibility as load-bearing, not bolted on.
- Open + local: the whole pipeline runs on consumer hardware.
Who this is for
Primary:
- Musicians who want a practice partner that locks to their tempo.
- Producers exploring complementary parts without leaving their flow.
- Blind / visually impaired producers β the rack is fully keyboard + screenreader operable.
Secondary:
- Any jam context β one player's take, a generated counterpart in the room.
What success looks like at the hackathon
Demo (3β4 minutes):
- Elevator pitch: "a practice partner that hears you start playing and joins in at your tempo, in your instrument."
- Load a MIDI take from a real controller.
- Pick an instrument, hit JOIN IN β the buddy responds at your tempo.
- PLAY BOTH β you + the buddy together, the co-play moment.
- Toggle the keyboard/screenreader path to show accessibility.
- Point at the
generations/files β everything it produced is kept.
Deliverables:
- Working web app (
apps/web) + thetools/jam_buddy.pySA3 pipeline. - Open-source MIT repo.
- Screenreader-tested UI (NVDA + VoiceOver).
Stretch / not claimed:
- A LoRA fine-tune for "your style" is a real path (via
underfiton a GPU) but is NOT shipped β we demo the open local model, honestly.
What we explicitly are not
- Not a DAW. Reaper / the DAW does that.
- Not a full song generator. We produce one complementary part at your tempo.
- Not a VST first. The web rack is the primary surface; plugin wrap is stretch.
North star
A musician plays a 20-second idea, picks "lead guitar," and within a minute the buddy has responded with a lead part at the same tempo β and both play together. That's the co-play moment we're building toward.