尚未检测到更新。GitHub 发布版本后会显示在这里。
制作者的介绍仅有上面的一句话。 更多详情请阅读仓库 README。 仓库 README ↗
正在加载完整 README。
查看完整 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
以上为 README 的开头部分。其余内容请阅读原文。 查看完整 README ↗