ESP32-S3 Bench Guide
ESP32-S3 N16R8 bench guide: live pinout, lessons, simulators and the bench log.
A tuner that remembers what you played — intonation, timing and progress from your own practice, all on your device.
EducationJavaScript · HTMLGitHub @iankarolyOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Loading the full README. The saved excerpt is shown below.
A practice companion for anyone who plays a pitch — strings, winds, brass or voice. Every line of DSP is hand-written: the pitch detection, the segmentation, the time-stretching and the page reading are all in this repo, with no library doing any of it.Read the full README ↗A practice companion for anyone who plays a pitch — strings, winds, brass or voice. Every line of DSP is hand-written: the pitch detection, the segmentation, the time-stretching and the page reading are all in this repo, with no library doing any of it.
Nothing leaves your device — there is no exception. No account, no server, no analytics: the app makes no network requests at all once it has loaded. Recordings, scanned pages and everything derived from them live in IndexedDB on the device that made them. Photographed music used to be sent to an optical-music-recognition service; that route was removed rather than switched off, and the pages are now read on the device itself.
Tuner · Record & analyze · Score · Library · Coach · Metronome
mic → AudioWorklet → YIN pitch detection → dual-pitch probing → note segmentation → scoring
onsets → autocorrelation → grid period → least-squares fit → local deviations
npm install
npm run dev # local
npm test # the DSP and analysis are unit-tested with synthesized signals
npm run build # static bundle in dist/
Chrome/Edge/Safari, HTTPS or localhost (the mic requires it).
The web app is wrapped for iOS with Capacitor. The wrapper is a shell: all the
code is still the same web build, so dist/ is what actually ships.
npm run ios # build, sync into the Xcode project, and open it
Xcode is required, from the Mac App Store. CocoaPods is not needed; Capacitor 8 uses Swift Package Manager.
Then in Xcode: pick your device in the toolbar, set a team under Signing & Capabilities, and press run. A free Apple ID works — the app is signed for 7 days at a time. The $99/year Developer Program extends that to a year and opens TestFlight and the App Store.
npm run store:upload # build, archive, and upload a build to App Store Connect
docs/store/listing.md has every field the listing asks for, ready to paste,
and the screenshots beside it (npm run store:shots regenerates them). Xcode
must be signed in with the Apple ID that holds the membership, and the app
record must exist in App Store Connect first; the listing file says how.
Icons: tools/icon.html is the source, tools/build-icons.sh renders the web
icons, the maskable variant, the share image, and the 1024 iOS app icon in
one pass.