Learning

Game Boy Music in FL Studio Mobile · Lesson 01 · 15 minutes

One Knob Makes It a Game Boy

Build a lead sound in FL Studio Mobile that is unmistakably Game Boy, and know exactly which control did it.

You have never made music before, so we are going to skip music entirely for fifteen minutes and go straight for the sound. By the end of this page there will be a noise coming out of your phone that nobody could mistake for anything but a Game Boy.

That is not a small thing to own. Most people who try to write “retro” music get the notes roughly right and the sound wrong, and the result is just quiet synth music. The sound is the part that does the work.

The Game Boy has four voices, and you only care about one today

The original Game Boy — the grey brick, the DMG — makes every sound it has ever made with four voices, and no more. Two of them are pulse channels, one is a wave channel, one is a noise channel.1

The tune you actually hum is nearly always a pulse channel. That is where we start. The other three get their own lessons.

A pulse wave is a switch, flicked very fast

Sound is your speaker moving. A pulse wave moves it in the crudest possible way: hold it pushed out, snap it back in, hold, snap. No curve, no in-between. Just high and low.

The Game Boy builds one repeat of that shape out of exactly eight steps, and the only choice it gives you is how many of those eight steps are high.2

That single choice has a name — the duty cycle — and it is the whole subject of this lesson.

Press play. Then, while it is running, keep tapping between the four duty buttons. Do it several times before you read on. The tune is not changing — the notes are identical every time. Only the shape of the wave is moving, and it is doing all of the work.

The melody is “Korobeiniki”, a Russian folk tune from the 1800s. You will recognise it: in 1989 Hirokazu Tanaka arranged it as the Type-A theme of Game Boy Tetris. It is public domain, which is why this course can use it — 51 notes, 12 bars, and it never goes outside E4 to A5.3

The Game Boy gives you four settings and three sounds

Here is the part nobody tells you. Those four buttons are not four tones.

Measured

Duty Eight steps Overtone energy Brightness Harmonics missing
12.5% 00000001 6.704 13.65 8, 16
25% 10000001 3.390 12.451 4, 8, 12, 16
50% 10000111 1.715 11.792 every even one
75% 01111110 3.390 12.451 4, 8, 12, 16

Compare the last two rows. Across the first 64 harmonics of each wave, the largest difference between the 25% and 75% settings is 0.00 — not “small”, zero. They are the same sound. Four settings, three timbres.

Every figure here is printed by assets/build-voices.py, which renders the waveforms straight from the hardware specification and measures them with a Fourier transform. Run it yourself; argue with it if it is wrong.

Go back to the Duty Lab and press Ear test a few times. It only ever offers you three answers. Now you know why.

Why missing harmonics are the whole story

Any repeating sound is a stack of pure tones: the note you hear, then one at twice that frequency, three times, four times, and up. Those are the harmonics, and which ones survive is what makes a sound a sound.

Look at the 50% row. Every even harmonic is gone. That hollow, woody, slightly clarinet quality is not a mood — it is those missing gaps in the stack.

Now look at 12.5%. Almost nothing is missing, and the overtones carry nearly seven times the energy of the note itself. That is the thin, reedy, nasal buzz your ear reads as small electronic device.

So:

Now build it in FL Studio Mobile

This is the deliverable. Ten minutes, and you keep the result forever.

Do this in FL Studio Mobile

  1. New project. Add an instrument track and choose MiniSynth.
  2. Find the oscillator Shape selector and set it to Pulse.
  3. Find the Modifier knob. This is the one. The manual is blunt about it: on the Pulse shape, “Modifier controls pulse width of the waveform”.[^flm]
  4. Set Modifier to 50% and play a few notes. That is your square-wave default.
  5. Now drag Modifier down towards 12%. Listen to it thin out as you go. Keep going and it vanishes into silence at 0 — the same “no steps are high” dead end the Game Boy has at either extreme.
  6. Set the Amp envelope to Attack 0, Decay 0, Sustain full, Release 0. Chips do not fade in. A note is on or it is off.
  7. Set Voice mode to Mono. A real Game Boy channel can only play one note at a time, and that limit is a large part of the style.
  8. Save it as a preset called Lead. You will use it in every lesson from here.

Two things worth knowing while you are in there. Modifier at 12% and at 88% will sound identical — that is the same 25%-versus-75% equivalence you just measured, and it means the top half of that knob’s travel is a mirror of the bottom half. And if your version of FL Studio Mobile does not lay things out the way step 2 describes, tell me and I will rewrite this list; the app moves things between releases.

If MiniSynth is not there

Use 3x Osc instead and load one of these single-cycle waveforms into it — they are the exact eight-step shapes the DMG produces, rendered to audio by this course’s build script: 12.5% · 25% · 50% · 75%. 3x Osc has no pulse width control of its own, so you get a fixed timbre per file rather than a knob — but it is the same sound.

Check yourself

Read this next

Primary source

Pan Docs — Audio Registers, NR11 Scroll to “FF11 — NR11”. It is four lines and a table of four little waveform pictures — the four shapes you have been listening to, as the hardware defines them. Pan Docs is the Game Boy reference, maintained by the people who build Game Boy development tools, and everything measured on this page comes out of it. It even tells you, in one throwaway sentence, that 25% and 75% are the same sound.

Terms introduced here are in the glossary.

Ask me things. I am your teacher for this, not a document. If the Modifier knob is not where I said, if a word above meant nothing to you, or if you want to know why your favourite Game Boy track sounds nothing like this — ask. Next lesson we add the second pulse channel, and it is where two sounds start becoming music.

Footnotes

  1. Pan Docs — Audio, gbdev. “Channels 1 and 2, the ‘pulse channels’, produce pulse width modulated waves with 4 fixed pulse width settings. Channel 3, the ‘wave’ channel, produces arbitrary user-supplied waves. Channel 4 is the ‘noise’ channel.” ↩

  2. Pan Docs — Audio Registers, NR11. The duty table and its waveform diagrams; the eight-step patterns in the measured table above are read off those diagrams by assets/build-voices.py. ↩

  3. Wikipedia — Korobeiniki. The melody used here is the folk tune from the article’s score, not Tanaka’s arrangement, which Wikipedia notes is “slightly different” and on which the Tetris Company holds a sound trademark for use in video games. Source and licence: assets/examples/CREDITS.md. ↩