Sonata (n.): a complete musical form in three or four movements — the synthesis of theme, development, and resolution.
Sonata is the third layout in a family with Cadenza (36-key) and Coda (22-key). It carries the structural strengths of both — full HRM bilateral, complete alphabet on base, dedicated Backspace, zero lateral stretch — onto 28 keys, while closing the SFB gap to Miryoku that v1.1 still had.
Version: v2.0 (April 2026) · C1-balance redesign
Left Right
┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐
│ Z │ W │ G │ M │ │ L │ Y │ P │ J │ ← top row
├───┼───┼───┼───┤ ├───┼───┼───┼───┤
│ A │ R │ S │ T │ │ N │ E │ I │ O │ ← home row · HRM
├───┼───┼───┼───┤ ├───┼───┼───┼───┤
│ V │ C │ U │ D │ │ H │ F │ B │ K │ ← bottom row
└───┴───┴───┴───┘ └───┴───┴───┴───┘
┌───┬───┐ ┌───┬───┐
│Tab│Spc│ │Bsp│Ent│ ← thumbs
└───┴───┘ └───┴───┘
HRM (home row): A·R·S·T = Meta · Alt · Ctrl · Shift (left) · N·E·I·O = Shift · Ctrl · AltGr · Meta (right) WM access: G-hold or Y-hold (bilateral mid-top) Layer thumbs: Tab → Nav · Space → Sym · Bsp → Num · Ent → CLI Overflow letters: X, Q (and ä, ö, ü, ß, €) on Tab+Bsp combo layer
| Metric | Value |
|---|---|
| Keys | 28 (4 cols × 3 rows × 2 + 2 thumbs × 2) |
| SFB rate | ~1.27% (estimated; range 1.15–1.40%) |
| Home row % | 63.5% |
| Hand balance L/R | 47.6 / 52.4 |
| Lateral stretch | 0% (no inner column) |
| Pinky load — raw | 14.6% |
| Pinky load — weighted¹ | 16.1% (v2.0 ↓ from v1.1's 18.7%) |
| Overflow letters | X · Q (combo Tab+Bsp) |
| Layers | 10 |
| Tap Dances | 34 |
| Macros | 16 |
¹ Position weights: top × 2.0, home × 1.0, bot × 1.2 — pinky-top is harder than pinky-bot.
Honest caveat on SFB: the ~1.27% number is an informed estimate from per-column bigram analysis, not a corpus-verified measurement. Range with my uncertainty: 1.15–1.40%. A real bigram-frequency pass against mixed German + English + code is the next validation step. The previously-published "0.20% SFB" claim from v1.0 was wrong and has been corrected.
v2.0 keeps the Colemak-DH home row (A R S T / N E I O) but reshuffles all 16 off-home letters. Goal: close the SFB gap to Miryoku without giving up Sonata's structural wins (zero lateral stretch, German EU advantage, cross-hand Meta+Alt, dedicated Backspace).
| Position | v1.1 | v2.0 | Why |
|---|---|---|---|
| L_pinky_bot | G | V | G's frequency (2.5%) wasted on a pinky-bot; V (0.9%) is cheaper there |
| L_ring_top | W | W | unchanged |
| L_ring_bot | M | C | C off L_mid (was 0.30% SC SFB); RC ~0.15% is the cheapest C-anywhere |
| L_mid_top | F | G | F leaves; G fits with rare S-bigrams |
| L_mid_bot | C | U | U on L_mid: SU/US is the dominant new column SFB (~0.30%) but cheapest U-on-left |
| L_idx_top | B | M | M is rare with T (no SFB); B leaves the left-index column |
| L_idx_bot | D | D | unchanged |
| R_idx_top | L | L | unchanged |
| R_mid_top | Y | Y | unchanged |
| R_mid_bot | K | F | F pairs with E cheaper than K does; K moves to R_pinky_bot |
| R_ring_top | V | P | P with I-home is essentially zero SFB |
| R_ring_bot | U | B | B with I-home is essentially zero SFB; U leaves the I-column entirely |
| R_pinky_top | J | J | unchanged |
| R_pinky_bot | P | K | K is rare with O-home |
| Effect | Before (v1.1) | After (v2.0) | Δ |
|---|---|---|---|
| SFB rate | 1.79% | ~1.27% | −0.52 pp |
| L_mid column SFB (was the worst SC trap) | 0.35% | 0.35% (now SU/US, similar magnitude) | 0 |
| R_ring column SFB (was the V·I·U disaster) | 0.45% | ~0.05% | −0.40 pp |
| L_idx column SFB | 0.22% | 0.08% | −0.14 pp |
| R_pinky column SFB | 0.20% | 0.05% | −0.15 pp |
| Weighted pinky load | 18.7% | 16.1% | −2.6 pp |
| Hand balance | 47.3 / 51.2 | 47.6 / 52.4 | similar |
| German SCH bigram | column SFB | fixed (S and C now different fingers) | structural ✓ |
Other v2.0 changes:
- WM trigger letter: G-hold + Y-hold (was F+Y in v1.1; F left mid-top)
- L_OVERFLOW ü position: moved to L_mid_bot (follows U from R_ring_bot)
- L_CLI macros M12–M16: bound by physical position; alpha letter labels under those positions changed but the macro mapping is unchanged
- 0.20% SFB myth retired: documentation now reflects honest column-by-column estimates with explicit uncertainty bounds
v1.0 oversold Sonata as "superior to every layout listed." v1.1 corrected this to "sibling, not successor" (Sonata at 1.79% SFB vs Miryoku at 1.28%). v2.0 closes most of that SFB gap.
Sonata v2.0 wins on:
- Lateral index stretch — zero vs Miryoku's low (>0). Structural win from no inner column.
- German EU bigram — cross-hand vs Miryoku's same-finger. Real difference for German content.
- Meta+Alt — cross-hand vs Miryoku's HRM same-hand conflict. Cleaner WM keybindings.
- German SCH — cross-finger (no SFB) in v2.0 vs Miryoku's same-finger SCH on Colemak-DH-36.
- Marginal: SFB rate (~1.27% vs 1.28%) — essentially tied within estimation noise; both pending corpus verification.
Miryoku wins on:
- Weighted pinky load (~14.1% vs 16.1%) — ~2 pp lower, the most significant remaining ergonomic delta.
- Home row % (68% vs 63.5%) — structural cost of 8 fewer keys.
- Hardware availability — Sweep / Corne off-the-shelf vs Sonata's custom 28-key PCB.
- Documentation maturity & community track record — Miryoku has years of validation; Sonata is a personal project.
Verdict: Sonata v2.0 is a credible sibling on the same Pareto frontier. It no longer trails on SFB. The remaining gaps (pinky, home-row) are intrinsic to the 28-key constraint and would require either more keys (defeating the point) or accepting a different style of trade (e.g., putting U on the pinky — explored as the C1-bestV variant and held in reserve as a possible v2.1).
| Metric | QWERTY/Z | Colemak-DH | Miryoku | Cadenza | Coda | Sonata v2.0 |
|---|---|---|---|---|---|---|
| Keys | 104+ | 104+ | 36 | 36 | 22 | 28 |
| SFB rate | 6.31% | 1.28% | 1.28% | ~1.20% | ~0.90% | ~1.27% |
| Home row | 34% | 68% | 68% | 68% | 64% | 63.5% |
| Pinky raw | ~14% | ~6% | ~13.4% | ~5% | 0% | 14.6% |
| Pinky weighted | ~17.5% | ~7.7% | ~14.1% | ~6.5% | 0% | 16.1% |
| Lateral stretch | Very high | Low | Low | Low | Zero | Zero |
| Inner column | Yes | Yes | Yes (5-col) | Yes | No | No |
| Backspace | Yes | Yes | Yes (thumb) | Yes (thumb) | No (combo) | Yes (thumb) |
| German EU | Same-row roll | Same-finger ✗ | Same-finger ✗ | Same-finger ✗ | Different col ✓ | Different col ✓ |
| German SCH | n/a | Column SFB | Column SFB | Column SFB | OK | Cross-finger ✓ |
| Meta + Alt | Both held LH | Mod keys | HRM (LH conflict) | Cross-hand ✓ | Both LH ring ✗ | Cross-hand ✓ |
| Layers | 1–2 | 1–2 | 6 | 13 | 9 | 10 |
Cadenza (36) → Sonata (28) → Coda (22)
The virtuoso The complete The distilled
solo movement conclusion
- v1.0 — Initial complete design (✓ April 2026)
- v1.1 — Pinky swap + weighted analysis + honest verdict + Miryoku fix (✓ April 2026)
- v2.0 — Full alpha redesign (C1-balance): Colemak-DH home preserved, all 16 off-home letters reshuffled, SFB closes from 1.79% to ~1.27%, weighted pinky drops from 18.7% to 16.1% (✓ this release)
- v2.x — Corpus verification of SFB estimates · QMK firmware on custom 28-key PCB · daily-use validation · evaluation of whether C1-bestV (U on pinky for ~0.97% SFB at the cost of higher pinky load) is worth migrating to
MIT License · 2026 · one7two99 Based on Colemak-DH by stevep99 (home row preserved; column-mates redesigned in v2.0).
Family: Cadenza (36) · Sonata (28) · Coda (22)