Selected work / 07

ProgressionLab

An AI-assisted harmony and songwriting workspace that turns musical intent into playable chord progressions, practical voicings, visual explanations, and exportable session material.

My role
Creator and independent product engineer
Scope
Product strategy, interaction design, full-stack engineering, AI orchestration, and music playback
Stage
Deployed public web product
Core technologies
Next.js · TypeScript · OpenAI Responses API · Tone.js
ProgressionLab generator with seed chord, mood, mode, genre, style reference, and adventurousness controls

Case study

Turning harmonic intent into something a musician can hear, inspect, and keep.

The problem

Music ideas lose momentum when harmonic exploration, playable voicings, audio preview, and export are split across disconnected tools. A generated answer is not enough; the material has to fit a musician’s working process.

What I built

I designed and built a deployed browser product that joins structured AI generation, music-theory logic, tempo-aware playback, piano and guitar diagrams, progression management, public sharing, and MIDI and PDF export. I also built a separate operational surface for prompts, marketing content, translations, analytics, entitlements, and security controls.

Key decisions

  1. 01Constrain model output

    Strict JSON schemas and deterministic voicing normalization turn generated responses into typed chord, progression, and arrangement data the interface can reliably use.

  2. 02Keep music interactive

    Tone.js playback, visual voicings, diagrams, and MIDI-aware exploration keep the experience grounded in sound and performance rather than text alone.

  3. 03Build the operating controls too

    Prompt versioning, entitlements, marketing draft and rollback workflows, human-reviewed translation, analytics, WebAuthn, and a separate admin deployment make the product operable beyond one demo flow.

Technical view

Architecture

Playable AI music workspace12 components · 14 connections

Musician-facing tools share one typed application boundary, while persistence, prompts, access policy, and operational controls remain behind server-owned interfaces.

Creative surfacesHear, inspect, and continue ideas
Application + music logicTyped generation and playback boundary
Persistence + operationsAccess, content, prompts, and telemetry
  1. Next.js · React
    Harmony generator

    Intent, mood, mode, and style

  2. Web MIDI · Canvas
    Chord Explorer

    MIDI input and harmonic context

  3. React · App Router
    Library + sharing

    Saved, public, and curated ideas

  4. Next.js route handlers
    Generation API

    Validation, access, and normalization

  5. OpenAI · strict schema
    Structured suggestions

    Chords, voicings, and structure

  6. Tone.js
    Playback engine

    Tempo-aware chord audition

  7. MIDI · PDF
    Session exports

    Portable musical material

  8. Typed TypeScript
    Music-theory model

    Voicings, diagrams, and inference

  9. Prisma · PostgreSQL
    Product record

    Users, progressions, and prompts

  10. Separate Next.js app
    Operations console

    Prompts, content, pricing, analytics

  11. Sessions · WebAuthn
    Identity + entitlement

    Protected actions and security keys

  12. Sentry · server events
    Operational telemetry

    Errors, usage, and funnel events

surfaceservicedataaiintegrationcontrolruntime
Read system connections
  • Harmony generatorGeneration API
  • Chord ExplorerMusic-theory model
  • Library + sharingGeneration API
  • Generation APIStructured suggestions
  • Generation APIMusic-theory model
  • Music-theory modelPlayback engine
  • Music-theory modelSession exports
  • Generation APIProduct record
  • Generation APIIdentity + entitlement
  • Operations consoleProduct record
  • Operations consoleStructured suggestionsprompts
  • Library + sharingProduct record
  • Generation APIOperational telemetry
  • Operations consoleOperational telemetry

Built so far

  • Turns normalized musical inputs into typed chord, voicing, progression, and song-structure suggestions using strict structured output and versioned prompt fallback behavior.
  • Connects browser playback and piano or guitar diagrams to saved progressions, public sharing, and MIDI and PDF export.
  • Separates musician-facing workflows from admin controls for prompt versions, marketing content, translation drafts, pricing configuration, and funnel analytics.

Where it stands

  • The public product is deployed, but user count, revenue, retention, conversion, and production-scale usage have not been independently established.
  • AI suggestions support musical exploration; they do not establish musical correctness or replace the musician’s judgment.

Continue exploring

Next case study

View all selected work

Geospatial / SAR evidence systems

EchoAtlas

Public portfolio demonstration

Open case study