UNITY EDITOR TOOL

Fubos Engine Sound

Realistic engine sound synthesis from real recordings.
No samples, no crossfades - sound is generated in real time.

ADDITIVE RESYNTHESISNO SAMPLES, NO CROSSFADESBURST-COMPILED DSPZERO RUNTIME ALLOCATIONS9 ENGINE PRESETS2-STROKE / 4-STROKERPM + LOAD.ENG ENGINE MAPS
HOW IT WORKS

One recording in.
Any RPM out.

While every other engine sound asset on Unity stitches together recorded samples, Fubos takes a different path: it's the first engine sound synthesizer for Unity built on additive resynthesis. Sound is generated in real time, with no samples and no crossfades.

An engine sound is a stack of harmonics. As RPM and load change, some of them get louder and others fade - that balance is what makes every engine recognizable, and it is very hard to fake from scratch.

So Fubos doesn't fake it. You give the Analyzer a real recording - one smooth acceleration from minimum to maximum RPM - and it tracks each harmonic across the whole sweep into an .eng file. The synthesizer plays that profile back in real time, reshaping the sound to match the current RPM and load. Every cycle is unique, and transitions between RPMs stay smooth.

01 - RECORD

Get a sweep

Record it yourself or take a suitable video from YouTube. Two rules: smooth acceleration from minimum to maximum RPM without gear shifts, and constant distance between the engine and the mic.

02 - ANALYZE

Extract harmonics

Load the WAV in the Analyzer, pick the harmonics on the spectrogram and export an .eng engine map. The status bar shows the detected RPM range, so you can check the selection against the real recording.

03 - PLAY

Drive it

Feed the synthesizer two values at runtime: RPM from your own engine model, and load - if you don't compute load explicitly, just feed the throttle value (0–1).

Three spectrograms: source recording, extracted harmonic map, synthesized output
SOURCE WAVthe recording HARMONIC MAPthe .eng engine map SYNTHESIZEDthe reconstructed result
The Synth tab: source spectrogram, harmonic map and synthesized output side by side
The Synth tab - preview the result and shape the tone before it goes in the game.
The Analyzer: source spectrogram of an engine recording
The Analyzer - a loaded recording, harmonics ready to be picked.
WHAT'S INSIDE

What's in the package.

ANALYZER

Harmonic extraction

Load a WAV, see its spectrogram, pick the harmonics. In manual mode you click the clearest harmonic line, then the adjacent one - the spacing between them maps the recording to engine RPM. Auto mode (experimental) works well on high-quality recordings.

SYNTH TAB

Preview & simulator

Listen before using: set RPM and load by hand, or turn on simulator mode - a virtual gas pedal with idle RPM and response settings.

TONE

Tone shaping

Compression that evens out harmonic loudness, tilt EQ for the overall slope, low-pass and high-pass bounds, plus experimental Stability and Room cleanup for noisy or echoey recordings.

RANDOMIZATION

No looped-recording feel

Plain additive synthesis sounds like a looped recording or a buzz-saw. To avoid that, every harmonic plays with small randomization in frequency and amplitude - with separate layers for different frequency bands.

UNITY AUDIO

Regular AudioSource

The host GameObject needs an AudioSource - Unity uses it to play the rendered samples and apply spatial settings, reverb and doppler. 2-stroke and 4-stroke engines are supported, rotary is planned.

PERFORMANCE

High-performance DSP

Burst-compiled, vectorized math, zero runtime allocations.

IN THE BOX

9 engine presets

Ready-to-use profiles - Italian V6, Italian V12, Japan I4, Japan I6, V8 and more - plus a demo scene with a simple car, and complete PDF documentation covering every parameter with usage examples.

CODE

The runtime is one call.

EngineSynth takes the engine asset and renders audio on Unity's audio thread. Render() must be called from OnAudioFilterRead, and it needs three values: rpm, load and volume.

The exported .eng file just needs to be dropped anywhere under Assets/ - it imports automatically, no manual setup.

A ready-to-use EngineSound wrapper ships with the package in the sample scene.

EngineSoundExample.cs
private EngineSynth _synth;

private void Start()
{
    _synth = new EngineSynth(profile);
}

private void OnAudioFilterRead(float[] data, int channels)
{
    var p = new EngineSynthParams {
        rpm = _rpm, load = _load, volume = _volume
    };
    _synth.Render(data, channels, p);
}

private void OnDestroy()
{
    _synth?.Dispose();
}

Get Fubos Engine Sound.

Questions, feedback, or want to share what you've built? Join the Discord.