08 β Build Plan
Timeline overview
NOW (3 weeks before) Pre-hack prep
HACK DAY 1 (Sat Aug 22) Build core features
HACK DAY 2 (Sun Aug 23) Polish, integrate, demo
POST-HACK Publish, ship, follow up
Pre-hackathon (you have ~3 weeks)
Goal: arrive at the event with a working skeleton, training data ready, and most patterns written. This compresses day 1 to "polish core, add stretch features" instead of "build from zero."
Week 1: foundations
By end of week 1:
- Get Stable Audio 3 API access / model weights downloaded
- HuggingFace account created
- Request gated access to
stabilityai/stable-audio-3-small - Get inference running locally on Vega (or document why cloud-only)
- Time a generation, establish baseline performance
- Set up RunPod account (or chosen cloud GPU provider)
- Test deploying a simple inference container
- Verify you can ssh/exec into it
- Stand up the repo
- Next.js + TypeScript + Tailwind initialized
- Folder structure per
02-architecture.md - CI with axe-core for accessibility (even on empty pages, it's a foundation)
- Deploy "coming soon" placeholder to Vercel
- Set up audio service skeleton
- FastAPI + SA3 inference wrapper
- Single
/generateendpoint, no LoRA yet
- Install NVDA on Windows, run through Reaper once to baseline familiarity
- Set up Reaper with a drum sampler VST for testing MIDI export
Week 2: data and templates
By end of week 2:
- Curate training data for brutal-drum LoRA
- 20β40 one-shots (recordings or sourced, all licensed)
- 10β20 short loops
- Manifest in
data/training/manifest.yaml - All preprocessed to 44100 Hz mono
- Write the 6 demo-critical pattern templates
-
d-beat.json -
blast-traditional.json -
skank.json -
half-time-metal.json -
djent-polyrhythm.json -
punk-rock.json
-
- Write the onomatopoeia mapping table with at least 10 entries
- Implement prompt parser MVP (handles the 6 patterns + 10 onomatopoeias)
- Implement pattern engine MVP (loads templates, expands to bars, applies tempo)
- Implement MIDI generation (downloads work, drags into Reaper)
Week 3: integration and rehearsal
By end of week 3:
- Train brutal-drum LoRA on cloud GPU
- First attempt: 500 steps, see how it shapes up
- Iterate: adjust learning rate, dataset, prompt format
- Final: ship-ready LoRA + publish to HuggingFace (draft, don't publish yet)
- Implement Reaper Web Control client
- Connect, parse state, extract tempo
- Tempo resolution priority implemented
- Implement Web Speech API integration
- STT works in Chrome
- TTS works
- Voice state machine (idle β listening β parsing β generating β ready)
- Build basic UI shell
- Voice button, transcript display, status panel
- Action buttons (play, download, regenerate)
- Visual grid component (basic version)
- Accessibility pass 1
- Tab through every element
- NVDA run-through of the voice flow
- ARIA labels on every interactive element
- Skip links
- High contrast check
- End-to-end rehearsal
- Generate a pattern in PatternTalk
- Drag MIDI into Reaper
- Play it
- Generate sample
- Play sample
- Switch on NVDA, redo the flow
- Write the team-pitch and post to Music Hackspace Discord
Hackathon Day 1 (Saturday Aug 22)
Morning (9:00 AM β 12:30 PM): setup + team formation
- Arrive at PHI Centre, get settled
- Finalize team composition (if recruiting on-site)
- Confirm Reaper + PatternTalk working environment
- Connect to venue WiFi, verify cloud GPU access
Early afternoon (12:30 PM β 3:00 PM): core demo path
Goal: End-to-end voice β pattern β MIDI β Reaper working.
- Finalize pattern engine: tempo, bars, time signature, cymbal overrides
- Finalize MIDI export, verify it sounds right in Reaper
- Wire up Web Speech API end-to-end
- Wire up sample generation from cloud GPU
- First smoke test: voice prompt β MIDI + sample β download β Reaper
Late afternoon (3:00 PM β 6:00 PM): variations and audio context
- Implement 4-variation engine (humanize velocities, micro-timing, fill variants)
- Implement uploaded audio BPM detection (Meyda)
- Wire up Reaper tempo sync (Web Control client)
- Pre-generate demo variations for the showcase patterns
Evening (6:00 PM β 9:00 PM): polish + accessibility
- Visual grid component (sighted users)
- Pattern library page (skeleton)
- Accessibility pass with NVDA
- Tab through everything
- Voice announcements work
- Error states announced
- Demo rehearsal (round 1)
- Evening check-in / informal demos at the venue
Day 1 deliverable: A working PatternTalk that takes voice prompts, generates MIDI, downloads it, and plays in Reaper. Plus 4-variation picker. Plus screenreader-tested.
Hackathon Day 2 (Sunday Aug 23)
Morning (9:00 AM β 12:00 PM): stretch features
Priority order (cut from the bottom if time runs short):
- Sample preview player with progress indicator
- Pattern library with search/filter and shareable URLs
- User-defined onomatopoeias (localStorage)
- CLAP plugin wrap of the web UI (if a teammate can take it)
- Real-time audio captioning (stretch, probably cut)
Midday (12:00 PM β 2:00 PM): polish
- Final visual grid polish (animations, color tuning)
- Voice response tuning (speak rate, prompts)
- Pre-generate all demo cache samples
- Pre-stage the LoRA weights download for live demo
- Test with cloud GPU off (Vega-only path) as fallback
Afternoon (2:00 PM β 4:00 PM): demo rehearsal
- Full demo run-through, timed (target: 3β4 minutes)
- NVDA demo run-through, timed
- VoiceOver demo run-through, timed
- Rehearse the pitch (3 sentences max)
- Backup plan: video recording of working demo, in case of network issues
Late afternoon (4:00 PM β 6:00 PM): present
- Public demos
- Jury presentation
- Feedback session
Evening (6:00 PM onwards): wind down
- Final cleanup
- Publish LoRA to HuggingFace (if not already)
- Push code to GitHub, write a proper README
- Write blog post / social announcement
Checkpoints
Use these to catch problems early. If a checkpoint fails, stop and address it before moving on.
| Checkpoint | When | What "passing" means |
|---|---|---|
| C1: Inference works | Pre-hack week 1 | SA3 small generates a sample on Vega in < 10 min OR cloud GPU works |
| C2: Training data ready | Pre-hack week 2 | 30+ samples in data/training/ with manifest, all licensed |
| C3: 6 patterns authored | Pre-hack week 2 | All 6 demo patterns load, expand, generate MIDI |
| C4: End-to-end MIDI | Pre-hack week 3 | Voice prompt β MIDI β Reaper plays correctly |
| C5: NVDA reads the UI | Pre-hack week 3 | Screenreader announces every state change |
| C6: Demo path works | Hack day 1 | Full voice β MIDI β sample β Reaper in < 60 seconds |
| C7: LoRA published | Hack day 1 evening | Weights on HuggingFace with model card |
| C8: Variations work | Hack day 2 morning | 4 variations show in UI, picker works |
| C9: Demo polished | Hack day 2 afternoon | Rehearsal runs in 3β4 minutes without mistakes |
What to cut if time runs out
In priority order (drop from the bottom):
- β Real-time audio captioning
- β Haptic metronome PWA
- β Reduced-physical-load mode
- β CLAP plugin wrap
- β User-defined onomatopoeias
- β Pattern library page (if a minimal in-app picker works)
- β Audio context BPM detection (fall back to prompt/Reaper-only)
- β Visual grid polish (fall back to functional ugly grid)
- β Dark mode (fall back to light only)
The must-haves are: voice prompt, pattern generation, MIDI export, sample generation, Reaper tempo sync. If we have those five, we have a demo that lands.
What to add if time is plentiful
In priority order:
- β CLAP plugin wrap
- β Audio context BPM detection
- β Pattern library page with shareable URLs
- β User-defined onomatopoeias
- β Visual grid polish with animations
- β Dark mode + theme support
- β Multiple LoRA adapters (one per genre: rock, jazz, funk)
- β Real-time audio captioning
Communication cadence
- Standup (15 min) at start of each day
- Mid-day check-in (5 min, async) β what's blocked, what's next
- End-of-day retro (15 min) β what shipped, what's deferred
- Demo (3β4 min) at end of each day for informal feedback
Post-hackathon
Within 1 week:
- Publish LoRA weights to HuggingFace
- Publish repo on GitHub with full README
- Blog post / dev.to article about the project
- Submit to Music Hackspace showcase if invited
Within 1 month:
- Add more pattern templates (target: 30+)
- Train LoRAs for additional genres
- Add CLAP plugin wrap (if not done at hackathon)
- Integrate with Narwall for continuous accessibility testing
Within 3 months:
- Public launch of the web app
- Community pattern library with moderation
- "Train your own LoRA" UI
- Mobile companion app for haptic metronome