Skip to content
Varitras edited this page Nov 1, 2026 · 4 revisions

EQ

The speakers have parametric EQs organised in containers. Each container holds a fixed number of bands, and each parameter is stored as one array with one entry per band.

Source mark [measured]: see the legend on Home. Tested hardware: KH 120 II firmware 1_7_3, KH 750 DSP firmware 2_1_2, two units of each. Ranges, units and filter types on this page are what the speakers report about themselves via osc/limits; value types and array lengths come from reading every leaf.

Structure

A container lives under an output path, e.g. audio/out/eq2. Below it there are six leaves. Each leaf is an array with one entry per band.

Leaf Value type Range / options Source
enabled Boolean – [measured]
gain float, dB -99 … 24 [measured]
boost float, dB -99 … 24 [measured]
frequency float, Hz 10 … 24000 [measured]
q float 0.1 … 16 [measured]
type string PARAMETRIC, LOSHELF, HISHELF, LOWPASS, HIGHPASS, BANDPASS, NOTCH, ALLPASS, HI6DB, LO6DB, INVERSION [measured]
  • All six leaves exist as per-band arrays in every EQ container of both models, with the types above [measured].
  • Both models report the same ranges and filter types for every EQ container, including the KH 750 crossover. Each limit carries count (the number of bands) and subscr: true, but no writeable key [measured].
  • Every value read was inside the reported range [measured].
  • bypass and order do not exist: audio/out/eq2/bypass and audio/out/eq2/order answer 404 address not found on both models [measured].
  • All six leaves of audio/out/eq2 accept a set on both models: the test wrote back each leaf's current value, and the device echoed it [measured].

Writing one band

An array of the container's full length with null in every place but one changes only that band; the other bands keep their values. A shorter array answers 406 not acceptable and changes nothing [measured]. Tested on 2026-10-19 with gain on one band of every container of both models (KH 120 II eq2, eq3; KH 750 eq2, eq3, eq1/in1, eq1/in2 on out, out1 and out2): written, read back, other bands untouched, restored [measured].

-> {"audio":{"out":{"eq2":{"gain":[null,null,null,null,null,null,null,null,null,3.0]}}}}
<- {"audio":{"out":{"eq2":{"gain":[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,3.0]}}}}

Writing one band this way cannot overwrite a change another client made to a different band in the meantime.

Request size: both models refuse a request of more than 29 JSON tokens with 413 request too long. A set of a 20-band leaf (eq3) is exactly 29 tokens; with an osc/xid it is 33 and refused, so such writes go without the xid. The six leaves of one band in one message are refused for the same reason: a band is always written leaf by leaf [measured]. Details: SSC-Protocol. Asking for a container instead of a leaf does not return its leaves: {"audio":{"out":{"eq2":null}}} answers 404 at the container, on both models [measured]. Error format: SSC-Protocol.

What gain and boost do

Measured on a KH 750 with a 50 Hz sine at input B and the Sub output meter, which sits after the EQ [measured]:

Band on audio/out/eq2 gain +6 boost +6 both +6
PARAMETRIC 50 Hz, Q 1 (on the tone) +6.0 dB +6.0 dB +12.1 dB
PARAMETRIC 500 Hz, Q 4 (far from the tone) +6.1 dB 0.0 dB –
  • gain lifts or lowers every frequency while the band is on, also for the pass types: a low pass at 200 Hz with gain +6 raised the 50 Hz tone in its pass band by 5.4 dB [measured].
  • boost is the height of the filter (peak or shelf) around the band frequency [measured].
  • At the band frequency both add up. Setting gain and boost to 0 makes a band flat [measured].

Filter shapes

Measured with full sweeps on a KH 120 II (REW and a calibrated measurement microphone; each setting of one band against the same band switched off, which removes room, microphone and speaker) [measured]:

type What q means Shape Source
PARAMETRIC cookbook Q RBJ cookbook peak at the band frequency, height = boost; within 0.03–0.06 dB from 100 Hz to 8 kHz (Q 0.5, 1, 4; ±6 dB) [measured]
LOSHELF, HISHELF cookbook shelf slope S, not Q RBJ cookbook shelf, frequency = midpoint, height = boost; q 1 is the steepest shelf without overshoot, q 2 overshoots slightly. Read as S: a few hundredths of a dB; read as Q: off by up to about 1 dB [measured]
LOWPASS, HIGHPASS cookbook Q 2nd order (12 dB/octave); within 0.07–0.10 dB (Q 0.5, 0.707, 1) [measured]
LO6DB, HI6DB unused 1st order (6 dB/octave), −3 dB at the band frequency [measured]
BANDPASS cookbook Q constant-skirt form s / (s² + s/Q + 1): centre +20·log10(Q) dB (Q 2: +6.0 dB) [measured]
NOTCH cookbook Q RBJ cookbook notch [measured]
ALLPASS cookbook Q flat level; phase of the 2nd-order all-pass (−180° at the band frequency) [measured]
INVERSION unused flat level; polarity inverted (180°) [measured]
  • Slope S and cookbook Q of a shelf: 1/Q² = (A + 1/A)(1/S − 1) + 2 with A = 10^(boost/40). For a steep slope at a large height the right side turns negative and the cookbook form ends; what the speakers do there is not measured.
  • The EQ runs at 48 kHz: near the top (a peak at 14 kHz, a high shelf at 12 kHz) the digital cookbook biquad at 48 kHz matches clearly better than the analog shape — a peak there is narrower than its analog form [measured].
  • A second session with the microphone moved repeated a shelf of the first within 0.03 dB [measured].
  • On the KH 750's own woofer a peak at 50 Hz (Q 2, ±6 dB) matched the same cookbook shape, and an earlier single-tone check (50 Hz sine, Sub output meter, 21 cases) agreed within about 0.8 dB [measured].

Clicks

By ear on the KH 750 (50 Hz sine, low level) [measured]:

  • No click when switching a band on or off, for gain or boost steps of 0.5 and 3 dB, a frequency step 50 → 60 Hz or Q 1 → 2.
  • A slight click for a type change PARAMETRIC → LOSHELF.
  • audio/out/mute on clicked slightly to clearly, mute off clearly to loudly: muting around EQ changes would add clicks, not remove them.
  • Writing several leaves one after another can pass through large level jumps (for example a high pass still at its old frequency) and click loudly.

Layout per model

KH 120 II

Container Bands Source
audio/out/eq2 10 [measured]
audio/out/eq3 20 [measured]

The KH 120 II has no eq1: audio/out/eq1/enabled is rejected, and the device's schema lists only eq2 and eq3 [measured].

KH 750 DSP (reports itself as KH 750), firmware 2_1_2

Output Drives Container Bands Source
out the KH 750's own woofer audio/out/eq1/in1, audio/out/eq1/in2 (crossover) 2 each [measured]
out the KH 750's own woofer audio/out/eq2, audio/out/eq3 10 each [measured]
out1 output socket A audio/out1/eq1/in1, audio/out1/eq1/in2 (crossover) 2 each [measured]
out1 output socket A audio/out1/eq2, audio/out1/eq3 10 each [measured]
out2 output socket B audio/out2/eq1/in1, audio/out2/eq1/in2 (crossover) 2 each [measured]
out2 output socket B audio/out2/eq2, audio/out2/eq3 10 each [measured]
  • Both KH 750 units gave the same results [measured].

  • What the outputs drive [measured]: audio/out is the KH 750's own woofer, not the sum of all outputs: a flat +6 dB (gain) on a band of out/eq2 moved the Sub output meter by +6.1 dB and the meters A and B by 0.2–0.3 dB. out1 is output socket A and out2 socket B: +3 dB on out1/eq2 moved meter A by +3.1 dB, on out2/eq2 meter B by +3.1 dB, the other meters by at most 0.1 dB.

  • eq1 is the crossover, one level deeper. eq1 has no leaves of its own: audio/out/eq1/enabled answers 404 [measured]. Its leaves sit under eq1/in1 and eq1/in2, 2 bands each, all six leaves [measured].

  • eq1/in1 acts on input A, eq1/in2 on input B: +6 dB gain on an in2 band moved a tone on input B by +5.7 dB, on in1 by +0.5 dB [measured].

  • Crossover settings read on both units (every band of in1 and in2 identical):

    Output type frequency q enabled gain, boost Source
    out LOWPASS 80 Hz 0.7 true 0 [measured]
    out1, out2 HIGHPASS 80 Hz 0.7 true 0 [measured]

    These are the settings read on 2026-10-17; on 2026-10-21 the measured unit's input-B crossover had both bands switched off by its owner.

  • Crossover shape [measured] (KH 750 woofer, input B fed with a receiver's LFE, channel B mode Ext.BM LFE (fullrange), rear bass management switch DISABLED): with both low-pass bands on at 80 Hz the response is −6.3 dB at 80 Hz, with one band −3.3 dB; the same at 40 Hz and 120 Hz. So the two 2nd-order bands with Q 0.7 in a row make a crossover of about 24 dB per octave (Linkwitz-Riley), as the cookbook shapes predict. It acts in this mode once its bands are on; with both bands off its frequency changes nothing. Far above the crossover frequency the measurement reached its floor (about −14 to −21 dB), so the deep stop band is not measured. When a receiver's bass management already filters the subwoofer feed, the KH 750's low pass comes on top of it.

  • The crossover is write-tested (one band, restored; see Writing one band) [measured].

  • KH 80 DSP, KH 150 and other KH 750 firmware versions: not tested on hardware.

See also: SSC-Paths · Device-Behaviour · Limits-and-Untested

Clone this wiki locally