Skip to the guide
Pixx Suite

Enhance · Retro sound & SFX generator · Advanced

Pixxibu — Advanced

Exact, repeatable sounds: seeds and determinism, the layer and effect pipeline, loudness, the Pixxibu and jsfxr file formats, and game-ready sound sets.

Open Pixxibu

#What you'll learn

  • How Pixxibu turns settings into samples, and why the same seed and settings always give identical audio.
  • The order the layer effects run in, and how layers are mixed, clipped and looped.
  • How to control loudness and length for a game's audio budget.
  • The Pixxibu .json format, what carries over to and from jsfxr, and what the library asset contains.
  • How to build and version a full, consistent sound set for a game.

#Before you start

  • Read the Pixxibu Intermediate guide first: layers, layer effects, loops and seeds.
  • A text editor is handy if you want to inspect or script the .json files.
  • A game engine or Pixxizi to test the sounds where they'll be used.

#How-tos

#How to reproduce a sound exactly

Pixxibu is deterministic: the presets and the noise generator are both seeded, so a seed plus the same settings always renders the same samples.

  1. Note the Seed in the options bar, and the preset or kit role you used.
  2. Later, choose the same preset and type the same seed: you get the identical starting sound.
  3. To keep a sound after you've moved sliders, save its recipe instead: Export → Settings → Pixxibu .json. Reopening the file restores every layer, effect and slider exactly.

#How to control the effect chain

Each layer renders first, then its effects run in this fixed order:

  1. Pitch shift: resampled like tape (+12 semitones = an octave up and half as long).
  2. Ring-mod: multiplies by a sine between 20 Hz and 2,000 Hz (Ring-mod pitch).
  3. Drive: soft saturation.
  4. Bitcrush and Sample-rate crush: fewer levels, then held samples.
  5. Stutter: seeded, so the same seed always stutters in the same places.
  6. Reverse.
  7. Echo: delay 20–600 ms (Echo time), with the tail kept until it fades by about 40 dB (at most 8 repeats).

Because reverse runs before echo, a reversed layer with echo gives a "pre-echo" swell. To echo the reversed sound instead, export it, reopen it as a WAV and send it through another tool.

#How to manage loudness and headroom

  1. Layers are added together at their Starts at times, multiplied by Layer gain, then hard-clipped to the full-scale limit. Several loud layers will flatten into distortion.
  2. Keep the loudest layer near Layer gain 1 and pull the others down, rather than pushing everything up.
  3. In Export, Normalize (loudest point at 95%) scales the whole sound so its peak sits at 95%. Use it for consistent levels across a set; leave it off when you have balanced sounds against each other by ear.
  4. Sounds sent with Send to App go out un-normalized at 16-bit, 44.1 kHz, so the receiving app gets your exact mix.

#How to fit an audio budget

  1. A sound can be at most 10 seconds; anything past that is cut.
  2. The export window shows length, rate, bit depth and file size before you download.
  3. 22.05 kHz halves the size and suits most retro sounds; 8-bit halves it again with added hiss. Pixxibu renders directly at the chosen rate.
  4. Shorter Decay and fewer echo repeats are the biggest savings.

#How to move sounds between Pixxibu and jsfxr

  1. Open reads a jsfxr / sfxr.me JSON export as-is: Pixxibu uses the same synth algorithm and parameter curves, so it sounds the same.
  2. Export → Settings → jsfxr .json writes the FIRST layer in jsfxr's format. Other layers, layer effects, gain, start times and loops are Pixxibu-only and are not included.
  3. Waves 0–3 (Square, Saw, Sine, Noise) match jsfxr. Triangle and Breaker don't exist in jsfxr: they are written as Noise, so keep the Pixxibu .json as your master copy for those.

#How to read a Pixxibu .json file

A Pixxibu sound file is plain JSON with these fields:

FieldWhat it holds
pixxibualways 1 (marks a Pixxibu file)
namethe sound's name, used for exported files
layersa list of up to 4 layers (below)
looponly for seamless loops: the crossfade length in seconds

Each layer has params (the synth settings), gain, offset, mute, solo, an optional name and an optional fx (its layer effects).

  • params: the synth settings, 0..1 (or −1..1 for Slide, Delta slide, Arp change, Duty sweep, filter sweeps and phaser). wave: 0 square, 1 saw, 2 sine, 3 noise, 4 triangle, 5 breaker.
  • gain 0–2, offset (start time) in seconds, mute, solo, an optional layer name and optional fx (only when a layer has effects).
  • Up to 4 layers are read; extra ones are ignored.

#Workflows

#A versioned sound set for a game

  1. Build each sound, then save its recipe as Pixxibu .json with a clear name (for example ui_confirm.json).
  2. Keep the .json files in your project's source control next to the exported WAVs. A change is a small text diff, and you can always re-render.
  3. Export the WAVs with the same Format and Normalize choice every time, so levels stay consistent.
  4. Send the finished set to your library, then into Pixxizi, which bundles them into the game package.

#Kit-based spell audio with variations

  1. Pick a kit element and load each role you need.
  2. Give the whole set one shared trait, for example the same Echo time and a touch of Drive.
  3. For frequent sounds (Impact, Debuff tick), use Batch variations with a low Change (5–10%) so repeats don't tire the ear. The first file in the zip is always your original.
  4. Track it as a Flow step so the sound work sits in the same run as the animation in Pixxani.

#Music stingers that match your tracks

  1. Make a short Power-up or Spell / magic sting with Arp change for a musical step.
  2. Send to App → Pixxune and place it at the end of a loop or as a level-complete sting.

#Tips and shortcuts

  • Space play/stop · M mutate · Ctrl+O open · Ctrl+S export · Esc close.
  • Solo wins over mute: if any un-muted layer is soloed, only soloed layers play.
  • Mutate changes each continuous slider about half the time by a small random amount (never Volume); Mutate more makes bigger changes.
  • Starts at goes up to 2 seconds in the panel; files can store up to 5 seconds.
  • A library sound that came from Pixxibu carries the full recipe inside it, so it reopens editable in Pixxibu, even after passing through other apps.
  • Cloud projects keep the recipe plus a small 22.05 kHz preview for the project list.

#Troubleshooting

  • A reopened .json sounds different: check it's a Pixxibu file and not a jsfxr export of a multi-layer sound; jsfxr only keeps the first layer.
  • Distortion only in the mix: the layers sum past full scale. Lower Layer gain, then Normalize on export.
  • The end of a long sound is missing: sounds stop at 10 seconds. Shorten Decay, the echo, or a late Starts at.
  • Triangle or Breaker changed after a jsfxr round-trip: jsfxr has no such waves. Keep the Pixxibu .json as the master copy.
  • A seed doesn't reproduce a kit sound: make sure you picked the same element and role first; the seed only applies to the sound you choose.