Seven presets, twelve parameters, and a WAV at the end. The synthesis model is the one from sfxr and Bfxr: a single oscillator, an amplitude envelope, and a frequency that moves, which is enough for the entire vocabulary of arcade sound.
Why one oscillator is enough
A game sound effect is not trying to be a recording. It is trying to be a legible event: something was collected, something fired, something was hit. Legibility comes from the shape of the envelope and the direction of the pitch, not from spectral richness.
Rising slide plus short envelope reads as acquisition. Falling slide plus short envelope reads as damage or a projectile. Noise plus a long decay and a low filter reads as destruction. Those three rules cover most of an arcade cabinet.
The presets
| Preset | Shape | Slide | Length |
|---|---|---|---|
| Coin | square | +700 Hz/s | 241 ms |
| Laser | saw | -3200 Hz/s | 221 ms |
| Explosion | noise | -320 Hz/s | 762 ms |
| Power-up | square, 0.25 width | +1100 Hz/s | 464 ms |
| Hurt | saw | -900 Hz/s | 191 ms |
| Jump | square, 0.35 width | +1400 Hz/s | 172 ms |
| Blip | square | none | 61 ms |
Picking a preset overwrites every sound parameter and leaves the file settings alone, since channel count and bit depth belong to the export rather than to the sound.
Pitched noise
The noise shape is not white noise. It is a random value held for one oscillator period and replaced at the start of the next, which means the Frequency control changes the pitch of the noise rather than only its rate of change. Drop the frequency on the Explosion preset and the debris gets larger.
This is how the noise channel on a NES or a Game Boy worked, and it is why 8-bit explosions have a discernible pitch that modern white-noise ones lack.
The low-pass is one biquad
A single second-order section at Q 0.7, applied after the envelope. It is there to take the edge off a square or a noise burst, not to sweep. There is no filter envelope and no resonance control, because both push the sound out of the era this is emulating and into a subtractive synthesizer.
The corner is clamped below half the sample rate. At 22050 Hz output the 20 kHz maximum is not reachable, and the slider’s top end becomes roughly 11 kHz.
Export
WAV only, at 16, 24, or 32-bit PCM. Game engines take WAV directly for short effects, and compressing a 200 ms sound costs decode time at the moment it needs to play. Convert to Ogg with the audio converter if you are shipping hundreds of them and the download size matters more than the latency.
Mono is the default. A sound effect positioned by the engine’s own panner should not arrive with a stereo image of its own.