Tune your car
like a measurement lab.
Real-time measurement signals for car-audio DSP tuning. Pink noise, log & sub sweeps, tone bursts, impulses, multitone and a stepped-sine RTA — every sample synthesized live in the audio callback. New in v2.3: a time-alignment delay dial, kick-drum alignment and the tilted Peak-Finder sweep. Stream over Bluetooth, USB-C or 3.5 mm; measure with REW.
Stop dragging WAV files onto your phone.
Tuning a car DSP normally means juggling individual test files and streaming them one at a time. TuneHelper replaces all of it with one instrument that produces continuous, loop-seamless signals at a precisely defined level — re-tunable live from the driver's seat.
The old way
- × A folder of WAV files, one per test
- × Looped buffers with audible seams
- × Guesswork on the actual output level
- × Stop, swap file, restart — from the seat
With TuneHelper
- → Every signal in one app, tap to switch
- → Continuous real-time synthesis, no loop point
- → Honest dBFS level, default −20 dBFS
- → Click-free switching, glide the frequency live
Everything REW expects on the input side.
Fourteen generators, each authored to a precise headroom and spectral target. Tap the panel above to see what each one looks like.
Tools for real-world tuning.
Version 2 added stereo correlation, hands-free L/R alternation and per-driver band noise. v2.2 and v2.3 add the tools for the passes after that: a time-alignment delay dial, kick alignment, the tilted Peak-Finder sweep and hands-free REW automation — all on the same real-time core.
Stereo correlation & auto L/R
Run noise and band noise correlated (mono), uncorrelated (independent L/R) or anti-phase (R = −L) for a broadband polarity check. Auto-L/R ping-pongs full-left ⇄ full-right every N seconds — sample-accurate and hands-free, even with the screen locked.
Per-driver band noise
Wideband band-pass noise over a driver passband — sub, woofer, midrange or tweeter presets from the tuning bench — to balance each driver's L/R level and phase by ear. Inherits the correlation modes and auto-L/R for free.
Phase & resonance finders
Play any sine anti-phase (R = −L) to check polarity or cancellation at a chosen frequency. A descending subsonic / high-pass finder reveals your low-end corner, and the rattle hunter sweeps for buzzes — all read live off the moving frequency.
Time-alignment delay dial
Play the Dirac click or correlated noise and shift one channel by up to ±20 ms until the phantom image locks dead-centre — then read the DSP delay you need in milliseconds and centimetres. Click-free while you dial.
Peak Finder & kick alignment
The tilted sweep (−3 dB/oct) keeps perceived loudness constant, so EQ peaks and phase pulls jump out by ear on the final pass. The synthetic kick drum retriggers with an exponential pitch drop — delay the front until the hit locks at the dash.
Hands-free REW automation
An auto-pause gate silences any signal on a fixed cycle for clean averaging, pink bursts expose decay and settling, and the stepped sine walks all 32 ISO centres on its own. A/C spectrum weighting and savable measurement presets round it off.
Real-time synthesis, not looped buffers.
A shared C++ DSP core generates every continuous signal sample-by-sample inside the audio render callback from live oscillator, filter and RNG state — pure and allocation-free on the audio thread. (Periodic noise is the one deliberate exception: a fixed REW sequence length that repeats seamlessly, exactly so REW can average it.) One implementation drives both platforms, so the signals are identical down to the sample.
s = activeSignal.nextSample()
g = smoothToward(gain, target, RAMP_TC)
out = s * g
[L,R] = applyPan(out) // L / S / R
analyser.push(L, R) // FFT · RMS · clip
Master-gain ramps and per-burst edge fades make starting, stopping and switching click-free. The Voss–McCartney pink generator, the closed-form sweep phase integral and the cascaded 1/3-octave biquads run identically on iOS and Android.
Pair, play, measure, tune.
A datasheet, not a feature list.
Two native apps. One DSP core.
iOS
SwiftUI front panel with an AVAudioEngine source node. Bluetooth & AirPlay, lock-screen controls, background audio — universal on iPhone and iPad.
Android
Jetpack Compose UI driving an Oboe low-latency stream. Foreground media service with lock-screen controls, audio focus and route-change recovery.
Shared C++ core
One pure, allocation-free render engine. Verified by a 138-check suite covering every signal and acceptance criterion.
Frequently asked questions.
What is TuneHelper?
TuneHelper is an instrument-grade measurement-signal generator for car-audio DSP tuning. It produces pink and white noise, log and sub sweeps, tone bursts, periodic pink, gated pink bursts, Dirac impulses (full-range or band-limited), 1/3-octave band noise, a multitone comb, a stepped-sine RTA and a synthetic kick drum — all synthesized in real time — so you can measure your system with REW and a calibrated microphone.
Do I need REW?
TuneHelper generates the input signals; you measure the result with REW (Room EQ Wizard) or any RTA. Play pink noise and tune your DSP until the RTA reads flat at the listening position.
How do I get the audio into my car?
Stream the output over Bluetooth, USB-C or a 3.5 mm cable. The app shows the route as a status chip; the OS handles the actual routing.
Is everything really synthesized in real time?
Yes. Every sample is generated live inside the audio callback from oscillator, filter and RNG state — there are no pre-rendered, looped buffers. The shared C++ core guarantees the iOS and Android signals are identical.
What is correlated vs. uncorrelated noise?
Correlated noise plays the same signal on both channels (mono, L = R); uncorrelated plays independent left/right noise; anti-phase inverts one channel (R = −L) for a broadband polarity check. TuneHelper offers all three for white noise, pink noise, band noise and the multitone comb, plus a hands-free auto L/R mode that alternates the signal between the speakers.
What is per-driver band noise?
A wideband band-pass noise limited to one driver's passband — sub, woofer, midrange or tweeter presets — so you can balance each driver's left/right level and phase by ear. It inherits the stereo correlation modes and the auto L/R alternation. There's also a descending subsonic / high-pass finder to read off your low-end corner frequency, and a rattle hunter that sweeps for buzzes.
How do I set time alignment (delay)?
Play the Dirac click or correlated noise and use the inter-channel delay dial: it shifts one channel by up to ±20 ms, click-free, until the phantom centre locks in the middle — then read the required DSP delay in milliseconds and centimetres. For sub↔front alignment there's the synthetic kick drum: delay the front until the hit localizes at the dash.
What is the multitone comb?
Up to 64 log-spaced sine tones played at once — an instant RTA. Every band reads simultaneously in REW with no averaging, ambient noise falls between the lines, and "grass" between the tones exposes distortion or lossy Bluetooth-codec smearing. Choose pink or flat per-tone weighting; the correlation modes come along for free.
Can TuneHelper run measurement cycles hands-free?
Yes. The auto-pause gate silences any signal on a fixed on/off cycle for clean REW averaging, the stepped sine walks all 32 ISO band centres on its own dwell timer, band noise has an auto-sequence, and auto L/R alternates the speakers. A/C spectrum weighting and savable measurement presets round out the workflow.
Which platforms are supported?
Native iOS (SwiftUI + AVAudioEngine, universal on iPhone and iPad) and native Android (Jetpack Compose + Oboe), both built on one shared C++ DSP core.