Sonir Remote

iOS 15+ / Android

Remote measures your listening position with a phone and sends a room correction to Bench. It is a measuring instrument: it does not play your music, and it keeps measurements on the phone but never the recordings.

What you need

Operating systemiOS 15 or later. Android is built from the same source
AvailabilityiOS on the App Store. Android in a closed test on Google Play (join the tester group first)
MicrophoneThe built-in microphone works. A calibrated measurement microphone is recommended
Calibration filesUMIK, REW and FRD files can be loaded. Measuring without one is possible
ConnectionThe phone and Bench on the same local network. Choose Bench from the list in Settings, with no registration. A QR code is the fallback
PermissionMicrophone, and on iOS local network access
  • Bench is what makes the sound.

    The sweep is played by Bench through your own system. The phone records, analyses and sends; it never plays the test signal itself.

  • It does not play your music.

    There is deliberately no listening mode on the phone. It can start and stop the engine in Bench and change its chain, but the sound always comes from Bench. A phone cannot deliver what your chain is designed to sound like.

How a measurement runs

STEPWHAT YOU DOTO MOVE ON
ConnectIn Settings, choose Bench under Connect to Sonir Bench. The phone reconnects on its own after that. A QR code is the fallbackConnected
1 SetupChoose the microphone and load a calibration file (optional; without one, no correction is applied). Play the test sound and set your amplifier until the phone says the volume is optimalMoves on by itself
2 MeasureBench pauses your audio, bypasses the graph and plays the sweep; the phone records one position. Save it to keep it on the phoneOne measurement
3 EQChoose the range, the target curve and the limits, and send the automatic PEQ. Bench saves it to its library; add it to a chain once, and later sends replace it there
4 Re-measureMeasure again through the EQ with the microphone in the same place, and compare before and afterThe EQ playing in Bench
Bench sends the definition of the sweep (numbers, not audio)
  → the phone builds the same sweep at its own recording rate, and its inverse filter
  → Bench plays, the phone records
  → impulse response, extracted with drift correction
  → frequency response, normalised to 0 dB across 300 to 3,000 Hz
  → microphone correction applied
  → averaged over several positions, if you chose more than one in the Library
  → automatic PEQ  →  sent to Bench
Bench sends numbers and receives filter settings. At no point does audio travel in either direction.

How the numbers are worked out

  • The sweep is a logarithmic chirp, deconvolved by its inverse.

    Recording a sweep and convolving it with the inverse of that sweep gives the impulse response, with the harmonic distortion of the system separated out ahead of the linear response rather than smeared across it.

  • The two clocks are corrected for.

    Your DAC and the phone run on separate clocks, so the recording is slightly stretched relative to what was played. The impulse response is extracted with that drift corrected. A 50 ppm difference leaves a smoothed frequency response essentially intact; what it damages is the shape of the impulse in time.

  • The response is normalised, not calibrated.

    It is set to 0 dB across 300 to 3,000 Hz, a band where the room is comparatively well behaved. The result describes the shape of your response, not its absolute level, which is what a room correction needs.

  • Several positions can be averaged.

    A single point describes that point, including the comb filtering that belongs to it alone. Averaging a few describes the seat instead: save measurements from a few positions, select them in the Library and press Create room EQ.

error(f) = measured(f) - target(f)

the PEQ is built by taking the largest remaining error and placing a filter on it,
then repeating on what is left (a greedy residual fit)

below the limit (about 300 Hz by default)   bells, placed where the modes are
above it                                    one high shelf, plus a few bells
cuts are preferred to boosts, and a boost is held to a minimum Q
the maximum boost and cut are clamped on the combined EQ, not per band
a negative preamp is computed so the result cannot clip
The correction concentrates below the Schroeder frequency, where the room behaves modally and a filter can actually fix something. Higher up, what a microphone sees is largely position-dependent comb filtering, and chasing its teeth would make the correction wrong everywhere except the exact point you measured.
  • Target curves: flat, a tilt, Harman and B&K.
  • The predicted result shown on the phone is evaluated as an analogue prototype, which is what Bench runs at the internal rate. Predicting it at the recording rate instead would show a high shelf squashed towards the Nyquist of the phone, and the graph would quietly disagree with what you hear.
  • The bands come out in order of frequency. They are in series, so the order does not change the sound.

What a measurement has to meet

LevelThe phone calls the volume optimal when the test sound peaks between -18 and -3 dBFS
Too quietA recorded peak below -40 dBFS is rejected rather than turned into a curve
SaturatedRejected once 1% of the samples are clipped
FailuresMicrophone permission, Bench not running, another measurement in progress, stopped at the Bench end, too quiet, saturated, disconnected. Each is reported as itself
  • Still being verified on real hardware.

    The round trip has been confirmed as far as connecting to Bench and reading its state. Recording a sweep and sending the correction back is still being checked on devices, as is the direction in which a calibration file should be applied.

What stays on the phone

  • The recording never leaves the phone. It is turned into a frequency response and a PEQ on the device.
  • Measurements you save stay on the phone in the Library: the impulse response, the frequency response and the figures worked out from them. The recording itself is not kept.
  • Besides those, the phone keeps your calibration files and the Bench you last connected to.
  • It does not export audio. Nothing you measure can be saved as an audio file.