🎺

Harmonic Study Engine

personas · harmonic paths · synthesized backing
Persona Path Audio idle

Persona

Harmonic path

Click a bar to loop from it · shift-click two bars for a sub-range · alt-click transposes that bar a semitone.

Scale practice

Transport

Tracks

Rhythm drill — three subdivisions

Current bar three times: quarters, eighths, triplet eighths.

Now playing

press play

Live score

abcjs renders chord symbols with a guide-tone line beneath, from the active path.

Tune catalog

0
TuneComposerKeyTechnique
Each entry is an 8-bar practice reduction of the tune, transposed to a study key, so the technique stays playable.

Melody — order-2 Markov

Genre-neutral transition core, persona-conditioned surface, constrained to the active bar's scale.

Voice-leading check — species 1

Parallel perfect fifths and octaves, voice crossings and large leaps between consecutive voicings.

Reharmonization proposer

Quiz

About this build

IN

  • 12 personas with theme, tempo, voicing, instrument profile
  • Documented vs interpretive badges; pitch-class colour maps drive the keyboard
  • Per-bar function glyphs ○T △D □S ◇P (shape + letter, so colourblind users read them)
  • Behavioral rules: sequenceStepper, keyDrift, frozen bass ≈, motif Δ
  • Six voicing modes incl. minimum motion and melody-first
  • Six backing styles, per-track mutes, soft-knee saturation on the melody bus
  • Sub-range loop, three-subdivision drill, scale practice, MIDI export
  • Composition: Markov melody, species-1 checker, four reharmonizers, quiz

OUT

  • DDSP render and FFT reverb (/synthesize, /fx/reverb — 503 by design)
  • WebM→MP4 recording transcode (needs the ffmpeg endpoint)
  • FluidR3 soundfonts — this build is oscillator-based, zero network needed for audio
  • Magenta RNN (/rnn) and the audio-reactive /engine page

Single file, no bundler. Serve it from a static-SDK Space or drop it at server/static/index.html in the Docker image. Audio starts on the first click, as browsers require.