Use SFXR and BFXR sound effects in Unity games
Are you looking for a simple, easy way to create original sound effects for your Unity games with procedural audio synthesis?
As a preparation for the next Ludum Dare, I have finished adding all advanced sound synthesis features first introduced by BFXR to usfxr, my own port of the SFXR game audio synthesis engine for Unity. The new version is 1.2 and is available as a zip download on the GitHub usfxr repository (the asset store version will be updated later this week).

usfxr interface
At first, I wasn’t so sure I’d like to add those features; I have to confess I always saw BFXR as a rogue fork of SFXR, and the fact that parameter strings were incompatible between the two projects always irked me the wrong way. However, after testing BFXR for a while, I came to really like its original features, and saw them as a very positive thing to have.
The new features are as such (as described by BFXR’s interface):
- New wave form types
- Triangle: robust at all frequencies, stand out quite well in most situations, and have a clear, resonant quality
- Breaker: a little bit more hi-fiwave type; like a smoother, slicker triangle wave
- Tan: a potentially crazy wave, tends to produce plenty of distortion
- Whistle: a sine wave with an additional sine wave overlayed at a lower amplitude and 20x the frequency; it can sound buzzy, hollow, resonant, or breathy.
- Pink noise: random numbers with a filtered frequency spectrum to make it softer than white noise
- New filters
- Compression: pushes amplitudes together into a narrower range to make them stand out more; very good for sound effects when you want them to stick out against background music
- Harmonics: overlays copies of the waveform with copies and multiples of its frequency;g ood for bulking out or otherwise enriching the texture of the sounds
- Bit Crusher: resamples the audio at a lower frequency, for that extra retro feeling
- Expanded pitch-jumping abilities; good for arpeggiation effects
On top of that, this new version is still compatible with the previous version; instead of starting anew and breaking compatibility, usfxr accepts both standard (SFXR/as3sfxr style) parameter strings, as well as BFXR parameter strings. This means old code will still work, but you can also copy & paste effect parameter strings directly between usfxr and BFXR.
There are a few additional BFXR properties that I will have to add support for in the future, specifically property locking (for mutation). This is not a core part of the synthesis engine, however, so it’s not part of this update.