|
| 1 | +# The two spellings that make `wave` exhaustive. `harmonics` can only reach tables whose partials |
| 2 | +# are all in sine phase, so on its own it leaves hand-tuned curves with no readable form. `levels` |
| 3 | +# closes that: it is the wave RAM in decimal, so every table hex can hold, it can hold too. |
| 4 | +# |
| 5 | +# `pure_lev`, `pure_hex` and `pure_harm` MUST resolve to identical `levels` — the same equality |
| 6 | +# 013-wave pins for `harmonics`, now pinned across all three notations. `shape` is the third form: |
| 7 | +# the classic waveform names, resolved here rather than guessed at by each host, which is why |
| 8 | +# `sq_shape` and `sq_duty` must also agree, and `round` — `shape sine` — must land on the same table |
| 9 | +# as `pure_harm`, since one harmonic IS a sine. |
| 10 | +# |
| 11 | +# One wave track only: the LR35902 has a single wave channel, and the GBA profile lists this case as |
| 12 | +# mustAccept, so it has to stay inside that subset. |
| 13 | +deck 1 |
| 14 | +bpm 100 |
| 15 | + |
| 16 | +wave pure_harm harmonics 1 |
| 17 | +wave pure_hex 89acdeefffeedca98653211000112356 |
| 18 | +wave pure_lev levels 8 9 10 12 13 14 14 15 15 15 14 14 13 12 10 9 8 6 5 3 2 1 1 0 0 0 1 1 2 3 5 6 |
| 19 | + |
| 20 | +wave sq_shape shape square |
| 21 | +wave sq_duty shape pulse duty 50 |
| 22 | +wave thin shape pulse duty 12.5 |
| 23 | +wave ramp shape saw |
| 24 | +wave peak shape triangle |
| 25 | +wave round shape sine |
| 26 | + |
| 27 | +track Wave id wv gen gameBoyDmg |
| 28 | + gen type wave wave_shape pure_lev vol 15 |
| 29 | + note 48 0 2 v 110 |
| 30 | + |
| 31 | +track Lead id lead gen gameBoyDmg |
| 32 | + gen type pulse duty 50 vol 12 |
| 33 | + note 60 0 1 v 100 |
0 commit comments