String Sensei is a manga-inspired browser guitar tuner with a real microphone pitch detector, clear tuning guidance, reference tones, and an original animated mascot.
- Requests microphone access only after the user clicks Start Tuning.
- Uses the Web Audio API and a YIN pitch detector in the browser.
- Shows detected frequency, target string, cents difference, and flat/perfect/sharp state.
- Supports standard, half-step down, drop D, DADGAD, and open G tuning.
- Includes A4 calibration from 430 Hz to 450 Hz.
- Includes a guided six-string tuning flow.
- Runs as a static app and can be installed as a PWA.
Audio is analyzed locally in the browser tab. This repo has no backend and does not upload, store, or transmit raw microphone audio.
npm run devOpen http://localhost:4173.
No environment variables or backend services are required. Microphone access works on localhost during development. In production, deploy over HTTPS.
npm testThe tests cover note frequency generation, tuning thresholds, alternate tuning target selection, and generated sine-wave pitch detection fixtures.
This is a static app. Deploy the repository root to Netlify, Vercel, GitHub Pages, Cloudflare Pages, or any static host.
Included configs:
netlify.tomlvercel.json
Production requirements:
- Serve over HTTPS so browsers allow microphone access.
- Do not add server-side audio collection unless the privacy copy is changed.
- Keep
service-worker.jscache versioned when shipping asset changes.
Best results:
- Use Chrome, Edge, Safari, or Firefox on a modern device.
- Tune in a quiet room.
- Pluck one string at a time and mute the others.
- Move the guitar closer to the microphone if the app reports low volume.
- Use calibration when matching another tuner, piano, or rehearsal-room reference.
String Sensei is currently a focused consumer tuner. It does not include accounts, billing, teacher dashboards, analytics, or backend storage.