Update README: fix stale claims found in code review
- Drop the false "vendored QR library" line; state it's a single self-contained, zero-dependency file and document offline use. - Fix keyboard shortcuts to match the in-app help: remove the non-existent R toggle, add Alt+↑/↓ (reorder), 1–9 toggles a lane. - "GM drum voice" → synthesized; set-list items load on click (no ▶ auto-start); QR is an external service; clarify release.sh. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
0142039b0e
commit
1f957b7630
1 changed files with 26 additions and 15 deletions
41
README.md
41
README.md
|
|
@ -7,21 +7,28 @@ pattern. Layering lanes produces polymeter and true ratio polyrhythm.
|
|||
|
||||
**Live:** https://metronome.varasys.io
|
||||
|
||||
It's a single page (`index.html`) plus a vendored QR library — no build step,
|
||||
no framework. State (presets, set lists, practice log, theme) lives in
|
||||
`localStorage`.
|
||||
It's a single, self‑contained `index.html` — **zero dependencies**: no framework,
|
||||
no build step, no bundled or CDN libraries, and nothing fetched at runtime. State
|
||||
(set lists, the practice log, theme and UI preferences) lives in `localStorage`.
|
||||
|
||||
Because nothing loads from the network, you can save the page (`Ctrl`/`⌘`+`S`) and
|
||||
open it straight from disk to run fully offline. One catch from a local `file://`:
|
||||
the browser may not persist `localStorage` between sessions, so use **Export all**
|
||||
(set‑list **⋯** menu) to back up your work.
|
||||
|
||||
## Features
|
||||
|
||||
- **Meter lanes** — grouping (odd meters), subdivision, GM drum voice, per‑beat
|
||||
- **Meter lanes** — grouping (odd meters), subdivision, a synthesized drum/percussion voice, per‑beat
|
||||
on/off pattern (rests), mute, live measure counter.
|
||||
- **Polyrhythm** — a per‑lane *poly* toggle fits a lane's beats evenly into lane 1's
|
||||
bar (e.g. 5‑over‑4, 3‑over‑2).
|
||||
- **Practice** — gap/mute trainer (play N / mute M bars) and a tempo ramp with a
|
||||
start BPM and signed step.
|
||||
- **Set lists** — named, ordered lists of saved setups; ▶ loads + starts an item,
|
||||
**N** advances; each play is logged for cross‑day comparison.
|
||||
- **Sharing** — copy a link (with QR) to your current settings or a whole set list.
|
||||
- **Set lists** — named, ordered lists of saved setups; click an item to load it
|
||||
(it switches live if you're already playing), **N** loads the next; each play is
|
||||
logged for cross‑day comparison.
|
||||
- **Sharing** — copy a link to your current settings or a whole set list (with an
|
||||
optional QR generated by an external service).
|
||||
- **Theming** — System / Light / Dark.
|
||||
|
||||
## The share language
|
||||
|
|
@ -99,21 +106,24 @@ In the set‑list panel's **⋯** menu:
|
|||
- **QR ↗** opens a third‑party QR service (api.qrserver.com) with the link in its
|
||||
URL so you can scan it on a phone. A banner warns you it's external — confirm the
|
||||
QR decodes to the shown link before trusting it. (No QR is generated locally.)
|
||||
- **Export all / Import file** back up presets + set lists + logs as a JSON file.
|
||||
- **Export all / Import file** back up your set lists and practice log as a JSON
|
||||
file (a legacy `presets` field is included for backward compatibility).
|
||||
|
||||
## Keyboard shortcuts
|
||||
|
||||
| Key | Action |
|
||||
|-----|--------|
|
||||
| `Space` | play / stop (except while typing in a text field) |
|
||||
| `Space` | play / stop (works everywhere except while typing in a text field) |
|
||||
| `T` | tap tempo |
|
||||
| `↑` / `↓` | tempo ±1 (`Shift` = ±10) |
|
||||
| `A` | add meter lane |
|
||||
| `1`–`9` | mute lane N |
|
||||
| `R` | toggle the set‑list panel |
|
||||
| `N` | next set‑list item |
|
||||
| `N` | load next set‑list item |
|
||||
| `Alt`+`↑` / `Alt`+`↓` | reorder the selected set‑list item |
|
||||
| `1`–`9` | enable / silence lane 1–9 |
|
||||
| `?` | shortcuts help |
|
||||
| `Esc` | close dialog / panel |
|
||||
| `Esc` | close the help / share dialog |
|
||||
|
||||
(Arrow keys are left alone while a slider or dropdown is focused, so they still adjust it.)
|
||||
|
||||
## Versioning
|
||||
|
||||
|
|
@ -122,8 +132,9 @@ In the set‑list panel's **⋯** menu:
|
|||
- **Formal** — a clean commit tagged `v<VERSION>` → `X.Y.Z`.
|
||||
- **Dev** — anything else → `X.Y.Z-dev.<utc-timestamp>.<short-sha>[.dirty]`.
|
||||
|
||||
Cut a release with `./release.sh [X.Y.Z]` (bumps `VERSION` + tags `v<VERSION>`),
|
||||
then push the tag and deploy.
|
||||
Cut a release with `./release.sh [X.Y.Z]` — the optional arg bumps & commits
|
||||
`VERSION`; it then tags the current commit `v<VERSION>` (requires a clean tree).
|
||||
Push the tag, then deploy.
|
||||
|
||||
## Deploy
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue