little-scale — All 4-bit Waveforms That Have 32 Samples (2009)
A Max/MSP patch that enumerates every waveform the game-boy-apu's wave channel can hold, and fails — usefully.
Key claims#
- "I built a patch that will generate and play all 4-bit waveforms that have 32 samples. For those that use LSDJ — the well-known Game Boy music tracker — this configuration will seem very familiar of course." Thirty-two 4-bit samples is exactly the Game Boy's wave RAM, and exactly what lsdj's wave editor draws into.
- "There are 16 ^ 32 possibilities. The patch plays 100 different waveforms for every second, at a constant frequency of 440 Hz. At this rate it will take 1,079,028,307,100,000,000,000,000,000 centuries to complete."
16^32 = 2^128 ≈ 3.4 × 10^38 waveforms; at 100 per second that is ≈ 1.08 × 10^27 centuries — his figure checks out (arithmetic done here).
Practical takeaways#
- The wave channel's 32 × 4-bit budget is small enough to describe in one sentence and large enough that nobody will ever hear a meaningful fraction of it. Drawing by hand is not a poor substitute for searching the space; searching the space is not available.
- It reframes the hand-drawing school (roboctopus, wavetable-programming): the useful waveforms are a vanishingly thin, musically-chosen slice, which is why recipes — the angular saw, the one-sample pulse, the notched sine — are worth writing down at all.
Notable quotes#
"At this rate it will take 1,079,028,307,100,000,000,000,000,000 centuries to complete."
Relevance to the wiki#
One citable number for the size of the wave channel's design space, from the same 2009 blog as the tuning work.
To verify#
- The patch itself was not published in the post, and nothing is said about what the sweep sounded like.