Transfer — magnitude, phase, coherence and the delay finder
Measure a system's transfer function against a reference — a second input or the test tone as sent — find and compensate the delay, read coherence, store and compare traces.
On this page
Transfer compares two signals: a reference (what goes into the system) and the measurement mic (what comes out at the listening position). The difference between them is the system's transfer function — the speaker, its processing and the room — shown as magnitude, phase and coherence. It needs a tablet or computer screen (768 px and wider) and, ideally, an audio interface; on a phone the tab only explains this.
The reference
- Second input channel (best): patch the console or processor output that feeds the system into a second input of your interface. The curve is then the system and the room only, and any programme works — pink noise, but also the band's music during a show.
- Test tone (as sent): for one input only. The test tone's own signal, as it leaves SpectraSense, is the reference — play pink noise with ▶ Play pink noise. The curve then also includes the computer's output and the interface.
Pick the measurement mic channel and, for an input reference, the reference channel. The measurement channel is the same one Setup, Ring-out and Level use, and the mic calibration file (Setup) is applied to it.
Measuring
- Tap ▶ Measure. If the input is not open yet, this opens it.
- Tap Find delay. SpectraSense records both signals for about three seconds and finds how much later the mic hears the reference (up to 1 s; also up to 0.1 s the other way). The delay is then compensated: the phase is shown as if both arrived together.
- Read the curve. Restart average after moving the mic or changing an EQ.
Delay readout: the found delay in ms and the distance sound travels in that time, at 343 m/s (air at 20 °C) — sound is about 0.6 m/s faster per degree warmer. With the test tone as reference, the delay also contains the computer's own output and input latency, so that distance is not the distance to the mic. − and + nudge the compensation by 0.01 ms (arrow keys in the field do the same; Shift + arrow = 1 ms), or type a value.
If the correlation peak is weak, SpectraSense shows its best guess but does not apply it — a wrong delay would bend the whole phase trace. Raise the level, check that the reference is really the signal that feeds the system, or move the mic closer. A negative peak means the polarity looks inverted.
The three panes
- Magnitude (dB): how much louder or softer each frequency comes out than it went in. Normalise puts the average level (100 Hz – 10 kHz, where the coherence is good) at 0 dB.
- Phase (−180° … +180°, after the delay compensation): a flat line around 0° means the frequencies arrive together. A steady slope means the delay is a little off — nudge it.
- Coherence (0 … 1): how much of what the mic hears is the reference. Close to 1 = trust the curve. Low = noise, reflections that arrive too late for the window, a wrong delay, or two clocks drifting apart. Where coherence is below the threshold you set, magnitude and phase are drawn faded (0 = off).
Point at (or tap) the plot for an exact readout: frequency, dB, degrees and coherence. Arrow keys move it when the plot has focus.
Analysis settings
- FFT size 8k – 64k: longer windows resolve low frequencies better (64k at 48 kHz: 0.73 Hz bins, 1.4 s) but react more slowly. 32k is the default.
- Averages and averaging: exponential keeps a running average of about the last N blocks (new blocks count more); linear is the plain mean of the last N blocks. Blocks overlap by half.
- Smoothing 1/3 – 1/24 octave: magnitude is power-averaged across the band, phase is averaged as complex values, coherence is averaged.
How it is computed: both signals are cut into Hann-windowed blocks; the transfer function is the H1 estimate (cross-spectrum ÷ reference auto-spectrum, averaged as complex values — noise at the mic averages out of it); coherence is |cross-spectrum|² ÷ (both auto-spectra). The delay finder is a phase-transform cross-correlation (GCC-PHAT), refined to a fraction of a sample.
Stored traces
Store trace keeps the curve as it is drawn, with a name — up to eight. Show or hide each one, rename it, delete it, or Average the shown traces (two or more: magnitude power-averaged, phase as a weighted complex mean — useful for several mic positions). Export saves them as a file, Import adds traces from such a file. Traces stay on this device only and are never synced to your account.
Limits — read before you trust a curve
- Separate clocks drift. A USB mic plus a separate output, or two interfaces, each run on their own clock: the delay walks and coherence drops over time. Use one interface for the mic and the reference (and the output).
- Bluetooth is unusable here: long, changing delay and its own processing.
- The browser may resample the input or output to its own rate, which adds a little delay and can soften the top octave.
- The browser decides how many input channels arrive: Chrome and Edge pass all inputs of an interface; Safari and Firefox often only one or two (see Measurement setup).
Thanks for the feedback.