Dotmatrixpocket chiptune studio

How a pocket console makes music

The handheld has just four sound channels, and every song and sound effect is built from them. They are simple, so each trick below is something you can hear in a second. Press the buttons.

Pulse 1 and Pulse 2: square waves

The two pulse channels play square waves. The duty cycle is how much of each wave is "on": thin and nasal at 12.5%, round and hollow at 50%. Leads and harmonies live here.

The envelope changes the volume by itself: hold it, let it fade (pianos, bells), or swell in (brass).

Vibrato wobbles the pitch, usually after a short delay so quick notes stay clean. The sound driver does it by nudging the frequency once per frame, 60 times a second.

Pulse 1 also has a hardware pitch sweep that slides the pitch up or down on its own: jumps, lasers and falling sounds.

Wave: draw your own shape

The wave channel plays a tiny table of 32 samples, each 0 to 15, so it can sound soft, buzzy or hollow. It has no envelope, only four volume levels, so it shines as bass and soft pads.

Noise: the drum kit

The noise channel plays hiss. Changing how fast and how "metallic" the hiss is, frame by frame, turns it into kicks, snares and hats. Each drum here is a few frames of noise settings.

Creature voices

A creature's cry is a short sound effect on the two pulses and the noise channel. Games kept only a few base voices and gave each creature two numbers: a pitch added to every note's frequency register, and a length that stretches the notes. Meet twenty in the Creatures room, then remix them.

Want to write your own music, effects and voices? The composing guide walks through all of it, with recipes.

From notes to a song

  • A bar has 16 steps. A step is a sixteenth note; the tempo (BPM) says how many quarter notes (4 steps) play per minute.
  • Each channel plays one note at a time: two notes on the same channel never overlap.
  • Songs loop. The bars before the loop bar are an intro that plays once; the rest repeats forever, like in a game. Pick a bar and press "Loop from here".
  • The key and scale decide the rows of the grid, so every note you place fits. Pick "Chromatic" for every semitone.
  • Start from a demo song: change a preset, mute a channel, move a few notes. Undo is always there.

Credits

  • Sound: gbapu, the author's own Game Boy APU emulator and offline renderer from the Newbark engine, planned for an MIT release; vendored unchanged in vendor/gbapu with its notice and provenance.
  • The sound driver (notes, vibrato, slides, arpeggios, drums), the instrument presets, wave tables, drum kit, demo songs, sound effects, base voices and creatures were written for this sample. No game music, sound effects or data are used.
  • Fonts: Silkscreen by Jason Kottke and Space Grotesk by Florian Karsten, both under the SIL Open Font License.
  • Built with Lumiose, as a client-rendered single-page app.

Keyboard shortcuts

Space
Play or stop
Ctrl/⌘ Z
Undo
Ctrl/⌘ Shift Z, Ctrl Y
Redo
1 – 4
Pick a channel
L
Loop on or off
Esc
Stop
Arrows
Move the grid cursor (when the grid has focus)
Enter
Add or remove a note at the cursor
Shift ← →
Shorten or lengthen the note at the cursor
Delete
Remove the note at the cursor
?
Show or hide this sheet