Features¶
KFilter6 combines electrical, electro-acoustic and measurement-oriented tools in one desktop project.
Loudspeaker and enclosure model¶
- Four independent driver slots
- Thiele/Small parameter editing
- Voice-coil resistance and inductance
- Effective diaphragm diameter
- Enclosure parameters including
Vb,FbandQl - Open-baffle, sealed, vented and band-pass enclosure states
- Enclosure-dependent controls that disable parameters not used by the selected model without discarding their values
Qlloss damping for sealed, vented and band-pass calculations- Per-driver gain and polarity
- Simplified and full-circuit calculation paths, with all four enclosure types contributing complex responses including phase
- Bidirectional bass-reflex tube helper: edit diameter to calculate length, or edit length to calculate diameter
A driver with Fs = 0 can also be used without the acoustic Thiele/Small path; its impedance then remains the electrical voice-coil model.
Passive crossover network¶
Each driver provides eight network sections. Every section contains a series and a shunt branch with R, C and L elements.
KFilter6 calculates the effect of the passive network on both SPL and impedance and provides an interactive graphical network preview with direct click targets for driver, active-filter, baffle and network editing.
SPL and impedance analysis¶
- Individual driver SPL curves
- Individual impedance curves
- Phase-sensitive vector SPL sum
- Energetic SPL sum
- Total loudspeaker impedance
- Configurable plot colours
- Project PDF export with network and response plots
The vector sum is useful around crossover regions where relative phase matters. The energetic sum provides a complementary view without cancellation from phase opposition.
All curves are calculated on a fixed logarithmic frequency grid of 150 points starting at 20 Hz with 50 points per decade, which currently ends at approximately 19.1 kHz. Pressure and impedance are held as 150 complex samples per driver.
Since Patch 300 the vented rolloff in the simplified path is formed as a complex transfer function instead of a magnitude-only expression. The magnitude of an individual vented driver is mathematically unchanged; the vector sum across a crossover involving that driver changes, because it was previously missing the rolloff phase.
Measurements and correction curves¶
KFilter6 can import absolute SPL measurement files and convert them into relative correction curves using calibration and a selectable correction window.
Supported workflow includes:
- absolute SPL measurement import
- 0 dB calibration
- selectable correction-frequency range
- optional logarithmic fades
- editable correction curves
- per-driver measurement hide state
- optional merge of measurement corrections into individual and summed SPL results
- FRD export of stored relative correction points
Measurement correction is applied after the complex active-filter, baffle and floor stages.
Active filters¶
Each driver can have an ordered complex active-filter chain.
Supported sections include:
- Butterworth low-pass and high-pass, order 1–8
- Bessel low-pass and high-pass, order 1–8
- Linkwitz-Riley LR2, LR4, LR6 and LR8 low-pass/high-pass
- second-order generic/Q low-pass and high-pass
- Butterworth band-pass
- Notch
- Parametric / Peaking EQ
- Low Shelf and High Shelf
- first- and second-order All-pass
- Gain
- Delay
- Polarity
Both magnitude and phase are retained in the complex response. An invalid or unsupported enabled section causes the complete active-filter stage to be bypassed rather than silently applying only part of the requested chain.
Baffle / diffraction¶
Two productive baffle models are available per driver:
Simple Baffle Step¶
A width-based engineering shelf with approximately:
- 0 dB at low frequency
- +3.01 dB around
115 / width[m] - +6.02 dB at high frequency
Rectangular Edge Diffraction¶
A geometry-aware on-axis edge-diffraction model using:
- baffle width and height
- driver centre position
- finite-piston spatial averaging (
M = 73) - optional full-height 45° chamfer on the left and/or right edge
For the productive free-field response, the low-frequency magnitude is blended conservatively toward the Simple Baffle Step result while retaining the geometry-driven rectangular phase. This avoids encouraging excessive electrical compensation of low-midrange cabinet gain.
A separate Rigid floor contact (diffraction only) boundary model is also available for an idealized cabinet standing directly on a rigid floor.
Floor Reflection — Experimental¶
KFilter6 also contains a separate first-specular floor-reflection stage using image-source geometry. It is deliberately marked Experimental because the resulting comb filtering changes strongly with listener and loudspeaker position and therefore is not a good target for fixed loudspeaker equalization.
Current surface choices include:
- Hard / rigid floor
- experimental porous-floor Miki reference
This feature is retained as a useful analysis tool, but it is intentionally isolated from the core baffle/diffraction model.
Project and driver files¶
.kfp projects¶
- current JSON format: version 10
- legacy text-based
.kfpfiles remain readable - current projects persist driver, network, measurements, active filters, baffle and floor-reflection settings
.kfd driver slots¶
Driver format version 2 stores a complete driver slot, including:
- driver and enclosure values
- passive crossover network
- measurement/correction curve and hide state
- active-filter chain
- baffle settings
- floor-reflection settings
- relevant dialog metadata
This makes it possible to move a complete configured driver between projects instead of exporting only its raw Thiele/Small parameters.
Parameter validation on load¶
All three deserialization paths — JSON .kfp, legacy text .kfp and .kfd — share one authoritative rule set that is checked before any value reaches a driver instance. It guards exactly the divisions performed by the acoustic core, so a file carrying a zero or negative Rdc, Qts, Qes, Qms or Vas is reported instead of silently producing non-finite SPL and impedance samples.
The rules are deliberately conditional: Fs = 0 bypasses the acoustic path, so the quality factors are then unused, and Vas is only required where a tuned enclosure actually divides by it. Qts is not cross-checked against 1/Qms + 1/Qes, because published manufacturer data is routinely inconsistent in that respect. No file that produced finite results before this validation was introduced is rejected by it.
Desktop workflow¶
KFilter6 is a native Qt6 desktop application. No account, cloud service or online connection is required for simulation work.