#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.
- Note the Seed in the options bar, and the preset or kit role you used.
- Later, choose the same preset and type the same seed: you get the identical starting sound.
- 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:
- Pitch shift: resampled like tape (+12 semitones = an octave up and half as long).
- Ring-mod: multiplies by a sine between 20 Hz and 2,000 Hz (Ring-mod pitch).
- Drive: soft saturation.
- Bitcrush and Sample-rate crush: fewer levels, then held samples.
- Stutter: seeded, so the same seed always stutters in the same places.
- Reverse.
- 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
- 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.
- Keep the loudest layer near Layer gain 1 and pull the others down, rather than pushing everything up.
- 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.
- 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
- A sound can be at most 10 seconds; anything past that is cut.
- The export window shows length, rate, bit depth and file size before you download.
- 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.
- Shorter Decay and fewer echo repeats are the biggest savings.
#How to move sounds between Pixxibu and jsfxr
- Open reads a jsfxr / sfxr.me JSON export as-is: Pixxibu uses the same synth algorithm and parameter curves, so it sounds the same.
- 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.
- 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:
| Field | What it holds |
|---|---|
| pixxibu | always 1 (marks a Pixxibu file) |
| name | the sound's name, used for exported files |
| layers | a list of up to 4 layers (below) |
| loop | only 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
- Build each sound, then save its recipe as Pixxibu .json with a clear name (for example ui_confirm.json).
- 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.
- Export the WAVs with the same Format and Normalize choice every time, so levels stay consistent.
- Send the finished set to your library, then into Pixxizi, which bundles them into the game package.
#Kit-based spell audio with variations
- Pick a kit element and load each role you need.
- Give the whole set one shared trait, for example the same Echo time and a touch of Drive.
- 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.
- 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
- Make a short Power-up or Spell / magic sting with Arp change for a musical step.
- 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.