File size: 3,945 Bytes
b2e4883
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
# 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.*

1. You load a **MIDI take** (controller) or **audio take** (mic/interface).
2. The buddy detects your tempo (exact from MIDI note times; tempo-range prior
   on audio) and matches its response length to your take.
3. You pick the **instrument** the buddy should play (bass / lead / rhythm /
   synth / drums) plus a genre and mood.
4. SA3 generates the response β€” `small-music` for melodic parts, `small-sfx`
   for clean isolated drums β€” at your tempo.
5. **PLAY BOTH** plays your take and the buddy's response together, in tempo.
6. 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-sfx` weights, 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):**
1. Elevator pitch: *"a practice partner that hears you start playing and joins
   in at your tempo, in your instrument."*
2. Load a MIDI take from a real controller.
3. Pick an instrument, hit JOIN IN β€” the buddy responds at your tempo.
4. PLAY BOTH β€” you + the buddy together, the co-play moment.
5. Toggle the keyboard/screenreader path to show accessibility.
6. Point at the `generations/` files β€” everything it produced is kept.

**Deliverables:**
- Working web app (`apps/web`) + the `tools/jam_buddy.py` SA3 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 `underfit` on 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.