§ Instrument-grade signal generator

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.

OUTPUT −40…0 dBFSBANDS ISO 266 ×32SYNTH 100% real-time
SPECTRUM · 64 LOG BARS −20.0 dBFS
RMS
The problem

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
§ 01 — Signal catalogue

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.

§ 02 — Measurement toolkit

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.

correlated · uncorrelated · anti-phase

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.

sub · woofer · mid · tweeter

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.

anti-phase sine · subsonic · rattle

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.

±20 ms · ms / cm readout

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.

tilt −6…0 dB/oct · kick / tom

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.

auto-pause · stepped sine · presets · A/C
§ 03 — Real-time core

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.

// per output 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.

§ 04 — REW field workflow

Pair, play, measure, tune.

§ 05 — By the numbers

A datasheet, not a feature list.

Level range
−40…0 dBFS
Default level
−20 dBFS
Frequency
20…20k Hz
1/3-oct bands
32 · ISO 266
Filter Q
4.318 per band
Pink slope
−3 dB/oct
FFT size
16384 bins
Spectrum
64 log bars
Clip latch
≥ 0.985 peak
Stereo modes
3 corr/unc/anti
Driver presets
4 sub…tweeter
Multitone
64 tones max
Delay dial
±20 ms
Sweep tilt
−6…0 dB/oct
Verification
138 checks
§ 06 — Fully native

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.

SwiftUI · AVAudioEngine

Android

Jetpack Compose UI driving an Oboe low-latency stream. Foreground media service with lock-screen controls, audio focus and route-change recovery.

Compose · Oboe · JNI

Shared C++ core

One pure, allocation-free render engine. Verified by a 138-check suite covering every signal and acceptance criterion.

C++17 · lock-free
§ 07 — FAQ

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.

Measurement signals for car DSP tuning

Bring lab-grade signals to the driver's seat.