WebInfer

3.9 / 5

MIDI Accompanist

Play notes on your keyboard, AI plays along in real-time

Serious
Instant
Zero Cost
Privacy

The Problem

Musicians practice alone; playing with others requires coordination and compatible skill levels

Current Solutions (Not Great)

Backing tracks (not responsive), finding jam partners (hard), Band-in-a-Box (expensive, dated)

Who Needs This

Hobbyist musicians, piano/keyboard players, music students, songwriters

Musicians practice alone but music is meant to be collaborative. MIDI Accompanist connects to your MIDI keyboard and plays along with you in real-time—adding chord voicings under your melody, bass lines that follow your harmony, or drum patterns that match your intensity. The magic trick: a 40-50ms artificial delay on your own notes (below perception threshold, feels like 'instrument feel') gives the AI time to analyze and respond, so both parts sound simultaneous. It's like having a jazz trio that follows your lead, available anytime.

Honest Take

This is genuinely innovative with the latency masking trick. The music education market is massive but there are competitors like Yousician and SmartMusic. The technical challenges around timing and musical AI are real, but if you nail the latency masking, this could carve out a nice niche for hobbyists who already have MIDI keyboards.

Monetization Ideas
Ways to turn this into revenue

Freemium

Free basic, $5-15/mo for pro

One-Time Purchase

$9-49 per license

Subscription

$5-29/month or $49-199/year

Features
Key features that make this app valuable
  • Real-time chord accompaniment under melody
  • Bass line generation following harmony
  • Drum patterns matching intensity
  • Key/scale detection from your playing
  • Style presets (jazz, pop, classical, latin)
  • Dynamics following (plays softer when you do)
  • Call and response mode
  • Loop and layer mode
Build Prompt
Use this prompt with an AI assistant to start building
Build a React PWA called 'MIDI Accompanist' using WebInfer and Web MIDI API. Core architecture: navigator.requestMIDIAccess() to get inputs/outputs. Create AudioContext with base latency ~50ms using AudioWorklet for precise scheduling. When MIDI note received: 1) Schedule user note playback at currentTime + 0.05s, 2) Immediately send note to AI buffer. AI analyzes rolling window of recent notes (last 2 beats). Use generateObject to return { key: string, scale: string, chord: string, nextChord: string, bassNote: number, drumPattern: number[], intensity: number }. Schedule AI notes at same time as user notes. UI: MIDI device selector, style dropdown (Jazz Trio, Pop Band, Solo Piano, Orchestral), intensity meter showing detected dynamics, key/chord display. Visual keyboard showing both user notes (blue) and AI notes (green). 'Call and Response' mode: AI waits for phrase end (rest > 500ms) then responds with variation.
Score Breakdown
Pain
Clarity
Demo
Build
Share
Revenue

Ready to build?

Copy the build prompt and start creating with your favorite AI assistant.

Built it?

Submit your creation to our showcase and inspire others.

Submit to Showcase