Skip to content

palvimaki/tuner

Repository files navigation

tuner.fi

A privacy-first guitar tuner that runs entirely in your browser.

Try it: tuner.fi

Why open source

tuner.fi claims to do all audio processing on-device — your microphone input never leaves your browser. The only way to make that claim credibly verifiable is to publish the code. Read it, audit it, host your own copy.

What you can verify by reading this repo:

  • All pitch detection runs in an AudioWorklet and the DSP modules under src/audio/dsp/.
  • The only network calls are a static /version.json fetch for update checks (src/pwa/version.ts) and the service worker caching static assets (public/sw.js).
  • No analytics, no telemetry, no third-party runtime dependencies. package.json has zero runtime deps.

Features

  • YIN-based pitch detection with MPM fallback, runs in an AudioWorklet off the main thread
  • Standard guitar tuning plus alternate tunings (src/domain/tuning.ts)
  • Multiple instrument profiles (src/domain/instruments/)
  • Installable PWA, works offline after first load
  • No sound-producing reference samples are shipped in this build; /audio/guitar/*.m4a is intentionally absent

Local development

Requires Node 22+.

npm install
npm run dev        # vite dev server
npm test           # vitest
npm run build      # type-check + production build

Architecture

Contributing

Contributions are welcome. For non-trivial changes, please open an issue first so we can discuss the approach before you spend time on a PR.

Security

To report a security or privacy issue, see SECURITY.md.

License

MIT — see LICENSE. Third-party attributions are in ATTRIBUTION.md and LICENSES/.

About

Privacy-first guitar tuner PWA.

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors