Bfxr is the built-in sound effects generator for creating retro-style sound effects. It can generate a variety of sounds such as jumps, explosions, power-ups, and more, exporting them as WAV files compatible with the XGM2 sound driver. It includes three synthesizer engines, 12 waveform types, and preset generators for quickly creating game-ready sounds.
Features
- Preset generators — One-click generation of common game sounds: pickup, laser, explosion, powerup, hit, jump, and blip.
- Classic chiptune synth — Bfxr synth engine for retro-style sound generation.
- 12 waveform types — Square, sawtooth, sine, triangle, white noise, and more exotic options like FM synthesis and voice.
- 30+ parameters — Fine control over pitch, envelope, vibrato, filters, bit crush, flanging, overtones, and pitch jumps.
- Randomize and mutate — Generate entirely random sounds or incrementally tweak existing ones. Parameter locks prevent specific values from changing.
- Real-time preview — Hear changes immediately with a waveform display.
- Batch export — Export all sounds as a ZIP file of WAV files.
- File management — Save/load individual sounds (.bfxr) or entire collections (.bcol).
Interface Overview
The interface is divided into three panels per synth tab:
Left Panel
- Preset generators — Buttons for each sound type (Pickup, Laser, Explosion, etc.) plus Randomize and Mutate.
- Create New Sound — When enabled, generators create a new file instead of overwriting the current one.
- Sound management — Apply (commit edits), Revert (discard edits), Duplicate (clone sound).
- File list — All saved sounds in the current synth tab. Double-click to rename. Modified sounds show an indicator.
Center Panel
- Waveform selector — Choose from 12 oscillator types.
- Parameter sliders — All synth parameters with labels, ranges, and lock buttons. Locked parameters are excluded from randomization and mutation.
Right Panel
- Waveform display — Visual representation of the generated sound.
- Play on Change — Automatically play the sound when parameters are modified.
- Play button — Manual playback.
- Volume slider — Master volume control.
- Save button — Export current sound as WAV.
Synth Engines
Bfxr (Classic)
The primary synth engine for retro-style sound effects. It supports all 12 waveform types and the full parameter set.
Preset generators:
| Generator | Description |
|---|
| Pickup/Coin | Short upward pitch sweep |
| Laser/Shoot | Downward frequency sweep |
| Explosion | Low-frequency noise burst with flanging |
| Powerup | Ascending pitch with optional vibrato |
| Hit/Hurt | Noise-based impact with short decay |
| Jump | Upward square/saw burst |
| Blip/Select | Short bright tone for UI feedback |
| Randomize | Fully random parameters (respects locks) |
| Mutate | Small tweaks to the current sound (respects locks) |
| # | Waveform | Description |
|---|
| 0 | Square | Classic chiptune sound. Supports pulse width (duty cycle) and duty sweep. |
| 1 | Sawtooth | Bright and buzzy with rich harmonics. |
| 2 | Sine | Pure tone with no harmonics. |
| 3 | White Noise | Full-spectrum noise for explosions and impacts. |
| 4 | Triangle | Clear and resonant, between sine and square. |
| 5 | Rasp | Periodic 1-bit noise with a digital buzz. |
| 6 | Tan | Hyperbolic tangent curve producing distorted, unpredictable sounds. |
| 7 | Whistle | Sine with a high harmonic overlay for a breathy quality. |
| 8 | Breaker | Quadratic waveshaper producing smooth, hi-fi tones. |
| 9 | Bitnoise | SN76489-style periodic noise for authentic console sounds. |
| 10 | FM Synth | FM synthesis using AKWF wavetables for dense, complex timbres. |
| 11 | Voice | Sampled vocal-like waveform using AKWF wavetables. |
Parameters
Envelope
| Parameter | Range | Description |
|---|
| Attack Time | 0–1 | Duration of the volume ramp-up |
| Sustain Time | 0.01–1 | Duration at peak volume |
| Sustain Punch | 0–1 | Extra volume boost during the sustain phase |
| Decay Time | 0.03–1 | Duration of the fade-out |
Pitch
| Parameter | Range | Description |
|---|
| Start Frequency | 0–1 | Base pitch of the sound |
| Frequency Slide | -0.5–0.5 | Pitch slide up or down over time |
| Frequency Acceleration | -1–1 | Acceleration applied to the pitch slide |
| Min Frequency | 0–0.99 | Floor frequency — sound cuts off below this |
Vibrato
| Parameter | Range | Description |
|---|
| Vibrato Depth | 0–1 | Strength of pitch modulation |
| Vibrato Speed | 0–1 | Speed of pitch oscillation |
Pitch Jumps
| Parameter | Range | Description |
|---|
| Pitch Jump Amount | -1–1 | First pitch jump magnitude |
| Pitch Jump Onset | 0–1 | When the first jump occurs (fraction of sound duration) |
| Pitch Jump 2 Amount | -1–1 | Second pitch jump magnitude |
| Pitch Jump 2 Onset | 0–1 | When the second jump occurs |
| Pitch Jump Repeat | 0–1 | How often jumps repeat (0 = single, 1 = rapid) |
Square Wave
These parameters only apply when the Square waveform is selected:
| Parameter | Range | Description |
|---|
| Square Duty | 0–0.99 | Pulse width (0.5 = standard square) |
| Duty Sweep | -1–1 | Sweep the pulse width over time |
Overtones
| Parameter | Range | Description |
|---|
| Overtones | 0–1 | Number of harmonic layers added to the sound |
| Overtone Falloff | 0–1 | How quickly harmonics decay in amplitude |
Repeat
| Parameter | Range | Description |
|---|
| Repeat Speed | 0–1 | Rate of note retriggering (0 = no repeat) |
Flanger
| Parameter | Range | Description |
|---|
| Flanger Offset | -1–1 | Phase offset amount |
| Flanger Sweep | -1–1 | Sweep of the phase offset over time |
Filters
| Parameter | Range | Description |
|---|
| LP Filter Cutoff | 0.01–1 | Low-pass filter cutoff frequency |
| LP Filter Cutoff Sweep | -1–1 | Sweep the low-pass cutoff over time |
| LP Filter Resonance | 0–1 | Resonance peak at the cutoff frequency |
| HP Filter Cutoff | 0–1 | High-pass filter cutoff frequency |
| HP Filter Cutoff Sweep | -1–1 | Sweep the high-pass cutoff over time |
Bit Crush
| Parameter | Range | Description |
|---|
| Bit Crush | 0–1 | Sample rate / bit depth reduction |
| Bit Crush Sweep | -1–1 | Sweep the bit crush effect over time |
Dynamics
| Parameter | Range | Description |
|---|
| Compression | 0–1 | Dynamic range compression for added punch |
Randomization and Mutation
Randomize
Generates a fully random sound by resetting all unlocked parameters to random values. The randomization uses weighted distributions (power curves) to produce more musically useful results — for example, attack times are biased toward short values, and filter cutoffs are biased toward extremes.
Mutate
Applies small, incremental tweaks to the current sound. Each unlocked parameter has a 50% chance of being nudged by up to 10% of its range. The waveform type has a 10% chance of shifting to an adjacent type.
Parameter Locks
Click the lock icon next to any parameter to prevent it from being changed by Randomize or Mutate. This lets you explore variations while keeping specific aspects of a sound fixed.
Keyboard Shortcuts
| Shortcut | Action |
|---|
Space / Enter | Play current sound |
Ctrl+E | Export as WAV |
Ctrl+C | Copy sound parameters to clipboard |
Ctrl+V | Paste sound parameters from clipboard |
L | Toggle lock on all parameters |