ESP32-S3 Bench Guide
ESP32-S3 N16R8 bench guide: live pinout, lessons, simulators and the bench log.
翻訳待ち
No updates detected yet. GitHub releases will appear here.
The maker's introduction consists of the line above. Read the repository README for more details. Repository README ↗
Loading the full README.
Read the full README ↗A practice tool for chord progressions, laid out as a transit map of the twelve keys — see how they move, hear them, and drill them until they are automatic everywhere.
The twelve keys are stations on a network. Each curriculum step is a line across it; a day's workout is a departure that calls at the keys you have opened. That map is how you navigate and how the lessons are built. The circle-of-fifths wheel is still here — it is the terrain the network is drawn on — and it is where you explore chords, neighbours and voice leading.
A progression is the real unit of harmony, not the chords in isolation: a ii–V–I means something as a single shape, not three symbols to memorise separately. Roundel puts that shape in front of you — on the wheel and across the map — while the rest of it makes sure you can also hear it, recognise it on your own instrument, and find it again next week.
The playing curriculum follows one loop, worked from every direction: take a progression, hear it, drill it across all twelve keys, and apply it — recognising it as you play, or playing along with a generated rhythm section.
SEE → HEAR → DRILL → APPLY
No staff notation, anywhere, ever. Not as an option, a toggle or an advanced panel. Music is keyboard diagrams, the wheel itself, chord symbols, scale-degree numbers, Roman numerals, intervals and colour. If you read chord charts fluently and staves not at all, nothing here will ask you to.
Free software, AGPL licensed. Run it on your laptop, deploy it wherever you
like, change whatever you want. It is your own instance — no telemetry, and no
server anyone else controls. Invite-only accounts let a small trusted group
keep separate progress today; public registration and the paid hosted service
remain planned in ROADMAP.md.
Signing in for the first time opens a short tour that sets the instrument up before it explains anything, and hands you the sustain pedal as the way through the rest of it. No MIDI keyboard? Everything works with the on-screen one, and the tour takes that route instead.
Connecting a MIDI instrument needs Chrome, Edge or Firefox on a desktop.
Web MIDI does not exist in Safari — on iOS, iPadOS or macOS — and every iOS
browser is forced onto WebKit, so an iPad cannot drive the parts of this app
that listen to a keyboard. See DECISIONS.md for the detail.
Everything else works everywhere, including on a tablet: the wheel, the play-along charts, the on-screen keyboard.
Web MIDI also requires a secure context. localhost counts; a deployed
http:// origin does not, and will disable MIDI with no error message. Serve
over HTTPS.
| Layer | Choice |
|---|---|
| App | SvelteKit 2 · Svelte 5 (runes) · TypeScript · Tailwind 4 |
| Build | Vite 8 · @vite-pwa/sveltekit |
| Data | Postgres 15+ · Drizzle ORM · node-postgres |
| Audio | Tone.js — ear drills and backing tracks only |
| MIDI | Web MIDI API |
| Deploy | adapter-auto — Vercel, Netlify, Cloudflare, or Node |
| Tests | Vitest |
Your instrument makes its own sound, so the app never synthesises a piano voice for what you play. It only generates audio for ear drills, backing tracks and the metronome — which is why there are no sampled instruments to vendor and the whole thing is a few hundred kilobytes.
You need Node 22+ and a Postgres 15+. Docker gives you the second one.
git clone https://github.com/bparticle/roundel.git
cd roundel
npm install
cp .env.example .env # the defaults already match docker-compose
npm run db:up # start Postgres in Docker
npm run db:migrate # apply the schema
npm run db:seed # skills and chord charts
npm run account:create -- owner "Your name" "[email protected]"
npm run dev
This is the beginning of the README. Read the rest at the original. Read the full README ↗