back_to_portfolio
LIVE · WEB APP · GUITAR DSPPersonal Product· 2025

Solo Freedom

// status

LIVE at solofreedom.org · solo build, end to end.

Vanilla JSWeb Audio APINodeExpressMongoDBStripeJWT

// what_it_is

A real-time musical key detection and scale recommendation web app for guitarists. Record audio from your mic or upload a track, the app analyzes the harmonic content using a custom Fast Fourier Transform pipeline, identifies the key, and recommends three tiers of scales to solo over it — from beginner-friendly pentatonics up to full theory-correct modal scales — rendered as both guitar tab and standard notation.

// who_its_for

Guitarists who want to figure out what key a song is in and what they can play over it — without years of music theory or expensive software.

// whats_under_the_hood

This isn’t a wrapper around someone else’s API. The audio analysis is built from scratch:

  • Custom Fast Fourier Transform with 4096-sample Hann windows, 2048-sample hop
  • 12-bin chromagram mapping FFT bins to MIDI pitch classes
  • Harmonic suppression algorithm to reduce overtone bias (subtract 40% of each pitch class energy from its perfect fifth, 20% from its major third)
  • Krumhansl-Schmuckler key detection with Pearson correlation against major/minor tone profiles
  • Multi-window voting — audio split into overlapping 4-second windows, each votes independently
  • Confidence thresholds to refuse low-quality results instead of guessing
  • Three-tier scale recommendation engine (Best Sound / Technical / Theory Correct)
  • SVG fretboard rendering with color-coded scale positions, fingering numbers, and collision-aware fret labels
  • Standard notation rendering with treble clef, ledger lines, accidentals, stems, note heads

// the_business_layer

A real freemium SaaS on top of the audio engine:

  • 3 free analyses per device for anonymous users, tracked server-side via deviceId (works in incognito and Safari, no cookies required)
  • Atomic MongoDB upsert with $inc + $lt:3 guard for race-condition-safe limit enforcement
  • Anonymous-to-signup migration that marks free analyses as consumed at registration to prevent the "log out and reset my count" exploit
  • Stripe subscription for unlimited Pro access with Customer Portal for self-serve management
  • Resend transactional email for password reset with cryptographic 1-hour expiry tokens
  • JWT auth with bcrypt password hashing, NoSQL injection guards, XSS escaping, rate limiting (15 req / 15 min on auth, 5 req / hour on password reset)

// stack

FrontendVanilla HTML / CSS / JS (single-file architecture) · Web Audio API · Custom FFT + chromagram + Krumhansl-Schmuckler · SVG rendering · Netlify hosting · Google Analytics
BackendNode.js + Express · MongoDB (Atlas) via Mongoose · JWT + bcrypt auth · Stripe (subscriptions + Customer Portal + webhooks) · Resend (email) · Helmet · express-rate-limit · CORS
InfrastructureDomain via Namecheap · DNS via Netlify · SPF / DKIM / DMARC configured for deliverability · HTTPS via Let’s Encrypt auto-renew · Backend deployed on Render · Frontend deploys from GitHub to Netlify

// the_result

A production app with real users, real auth, real payments, and a real DSP pipeline — all built and maintained by one person. Solo Freedom is the proof that "I do the work myself" isn’t just a pricing pitch; it’s how the work actually gets done.

Want one like this?

> RUN /quote