Speaker Box Designer — Manual

The full explanations behind every field and chart in the app, organized the same way the app itself is.

Driver

Mode

Choose whether this is a single-driver (Subwoofer) design, or a multi-driver Two-way/Three-way system. This decides which extra drivers you configure below — a Tweeter for Two-way, or a Midrange and Tweeter for Three-way — and which fields the Crossover card further down shows for setting the actual filter frequencies, alignment, and level trims.

Parameter calculator

Enter whatever Thiele/Small parameters you already know and leave the rest blank, then click Calculate — the app fills in as many of the missing ones as the underlying physics allows, using the standard relationships between Fs, Qts, Qes, Qms, Vas, Re, Sd and the mechanical parameters Mms, Cms, Rms, Bl. Xmax, Pe, and Le aren't part of this system (they describe excursion/thermal/inductance limits, not the small-signal circuit above) and always need a datasheet or a bench measurement.

Saving a preset

Optional - feeds the preset picker's Manufacturer/Type/Size filter dropdowns and table columns above. Loading an existing preset fills these back in from what it was saved with, so editing and re-saving under the same name keeps them (or lets you correct them).

Unified driver search

Choose which slot - Woofer, Tweeter, or Midrange - the highlighted search's own Load button writes into; the search box, filters, and results stay exactly as they are when you switch roles, so checking the same candidate driver against more than one slot doesn't mean searching for it again from scratch.

Loading a Tweeter/Midrange preset

Loads that preset's Fs directly and rounds its resistance to the nearest common nominal impedance (4/6/8/16 Ω). Sensitivity is only filled in when the preset's Vas/Qes give a plausible estimate (70-105 dB) — many published tweeters and midrange drivers don't have a meaningful Vas, in which case set sensitivity manually from the datasheet instead.

Tweeter impedance model

Optional. When Re, Le, Qes, and Qms are all filled in (loading a preset with published values does this automatically), the impedance chart below uses a real modeled curve for the tweeter instead of a flat line at its nominal impedance. Leave any of these blank to fall back to the flat-line assumption.

Tweeter Sd

Optional, and usually blank - few tweeter datasheets publish an effective radiating area. When filled in, the polar response chart above plots a tweeter curve alongside the main driver's.

Tweeter reference fields

These five are reference only - nothing in this app's calculations reads them (the tweeter has no enclosure of its own to size, and its MOL ceiling stays thermal-only). Filled in wherever the source datasheet happens to publish them, left blank otherwise.

Midrange impedance model

Optional. When Re, Le, Qes, and Qms are all filled in (loading a preset with published values does this automatically), the impedance chart below uses a real modeled curve for the midrange instead of a flat line at its nominal impedance. Leave any of these blank to fall back to the flat-line assumption.

Midrange Sd

Optional, and usually blank - few midrange datasheets publish an effective radiating area. When filled in, the polar response chart above plots a midrange curve alongside the main driver's.

Midrange reference fields

BL, Cms, Mms, and Xmax are reference only - nothing in this app's calculations reads them, and the midrange's MOL ceiling stays thermal-only either way. Vas is different: it's used below (along with Qes/Qms above) to work out how the midrange's box loads it - see the Enclosure card for whether that's the shared woofer box or the midrange's own separate one. Filled in wherever the source datasheet happens to publish them, left blank otherwise.

Enclosure

Baffle width

Baffle width only affects the Room placement directivity estimate below — it's the enclosure's front panel width, not the driver's own cone size. A baffle wider than the driver stops sound diffracting around to the rear/sides at a lower frequency than the bare driver would.

Baffle step in the response

Folds the baffle step into this design's modelled response, instead of only drawing it in the Tools calculator. A driver on a finite baffle radiates into half-space at high frequency, where the baffle is large compared with a wavelength, and into full space at low frequency, where the wave wraps around the cabinet as though the baffle were not there. That transition costs 6 dB plus a few dB of diffraction ripple, it lands in the midrange on a normal-sized box, and it is one of the largest single effects on a real loudspeaker's response. Off by default, and that is a real choice rather than just backwards compatibility: the infinite-baffle curve is what you want when comparing a driver against its own datasheet or a box alignment against a textbook one, because that is the reference those were produced in. The step is what you want when predicting what you will actually hear. It applies to the SPL and Maximum Output Level curves and to every way of a two- or three-way, each with its own cone area so a tweeter's directivity taper bites much higher than a woofer's. It deliberately does NOT touch cone excursion, port velocity or impedance: the baffle step is a radiation effect, so the cone still moves exactly as far, and what changes is how much of that becomes pressure at your ears - which is why the excursion-limited part of the MOL curve correctly gets harder to meet in the bass rather than showing headroom that is not there.

Baffle step correction network

Solves a classic passive baffle step correction network for this design's own baffle: an inductor in series with the driver, with a resistor across it. At low frequencies the inductor is close to a short circuit, so the driver sees full level; at high frequencies the inductor forces current through the resistor instead, which forms a divider with the driver's nominal impedance and pulls the treble down by the attenuation you ask for. That is how correcting a baffle step works - a passive part cannot lift the bass, so it lowers everything above the step instead, and 6 dB of correction costs you 6 dB of sensitivity. Most real designs settle for less once room gain is accounted for. Advisory only: these components are NOT applied to the modelled response, because they are parts you would build and wire yourself, so the chart shows the baffle step, what the network does on its own, and the two summed, and leaves the decision to you. The step frequency starts from this design's own baffle and follows it as you change the shape, size or chamfer, but you can type over it - and for a real speaker you often should, since the formula cannot see an off-centre driver, a baffle that is not really the plain rectangle this assumes, nearby furniture, or a corner you have measured. Clearing the field, or the reset link beside it, hands it back to the baffle. Nominal impedance is asked for rather than taken from Re: Re is the DC resistance, typically around 6.4 ohm on an 8 ohm driver, and using it would undersize the resistor by about a fifth.

Applying the correction network

Folds the suggested network's own shelf into the modelled SPL and maximum output curves, instead of only drawing it. Off means "what does my bare driver on this baffle do, and what would a network fix?"; on means "what does the finished speaker do?". Neither is more correct - the second is only honest once you have actually built the network. It is applied to every way rather than the woofer alone, which is worth understanding: a real passive correction sits in the woofer's leg only, but above the step frequency the network is just a flat attenuation, so applying it to a tweeter that only operates up there is arithmetically the same as padding that tweeter to match - which is what the level-matching stage of any crossover does anyway. Correcting the woofer alone would model an unfinished crossover with the tweeter left too loud. Expect a decibel or so of remaining bump around the corner frequency: a first-order shelf does not exactly mirror the acoustic step's slope, which is a real property of the topology and the reason real designs get tweaked by ear. Two things it does not model: the network's series impedance is not added to the impedance curve, and the reduced drive voltage is not carried into cone excursion - the latter is small and errs on the safe side, since the shelf only attenuates above the step frequency where excursion is already falling.

Bandpass enclosure

Bandpass model: a sealed rear chamber loads the back of the cone; a vented front chamber loads the front of the cone and radiates through the port. Only the port output reaches the room. This is a simplified exploratory model — for a precisely tuned build, cross-check against a dedicated bandpass alignment table.

Transmission line enclosure

Modeled as a proper quarter-wave transmission line (a distributed duct with its own resonance), not the compliance/mass model used for the other enclosure types. Tuning frequency Fb sets the target quarter-wave resonance; stuffing density controls both internal damping (how peaky the resonance looks) and the effective speed of sound inside the duct (how long the physical line ends up). Box volume and leakage Ql don't apply here — net internal volume is derived from the line's length and cross-section instead, shown below once you calculate.

TL quick calculator

A quarter-wave transmission line uses a completely different acoustic principle (a distributed duct with its own resonance, not the lumped mass-spring-damper model used for Sealed/Vented/Bandpass). This quick calculator previews the same duct geometry this enclosure type is built from — use it to sketch dimensions, then Apply to fill in the fields above and Calculate & graph (in the Results card) for the real simulated SPL/impedance response. Unlike a horn, a TL's cross-section stays close to the driver's own Sd, so it results in a much smaller box for the same low tuning frequency.

TL stuffing density

0 is an undamped, empty duct (a sharp, ringy resonance) and 1 is heavily stuffed (a smoother, well-damped response). Denser stuffing also slows the effective speed of sound inside the duct, shortening the line needed to hit the same target frequency.

TL calculator: Apply

Apply sets the Enclosure card above to Transmission Line with this tuning frequency, area ratio, and stuffing density, ready to Calculate for the full simulated response. A real cabinet will fold this straight-line length to fit, and stuffing density is worth fine-tuning by ear/measurement once built.

Sealed box volume calculator

Suggests the sealed-box volume that puts this driver at a chosen target system Q (Qtc), from Fs/Qts/Vas: Vb = Vas / ((Qtc/Qts)² - 1). Common targets: 0.707 (Butterworth/"maximally flat," the most commonly cited textbook-ideal alignment — the -3 dB point lands exactly at the resulting Fc), 1.0 (more forward/slightly boomy, more output right above Fc at the cost of overshoot), or 0.5-0.6 (flatter group delay/more polite, at the cost of a higher Fc for the same driver). A larger box always pushes Qtc down toward the driver's own Qts; if the target is at or below Qts, no finite box can reach it.

Vented box design suggestions

Three historical closed-form estimates for box volume (Vb) and tuning frequency (Fb) from just this driver's Fs/Qts/Vas — quick starting points, not a substitute for iterating with the actual graphs above. They all target a roughly maximally-flat-style alignment and don't account for box losses, voice-coil inductance, or driver-specific quirks. Values update automatically as you edit the driver's Fs/Qts/Vas above.

Midrange: shared box

Unchecked (the default): the midrange sits in the SAME box as the woofer above — whatever type that is (Sealed, Vented, Bandpass, or Transmission Line), since most 3-way builds mount both drivers on one baffle with no dividing wall between them. The midrange's own loading math still assumes that shared volume acts as a sealed chamber for it specifically (see the checked-state note below for why that's a reasonable simplification even when the woofer's own box is vented).

Midrange: separate box

Checked: the midrange gets its own separate box instead, set below - and that separate box is always modeled as sealed, regardless of the woofer's own Enclosure Type. A midrange doesn't benefit from venting the way a woofer does (there's no useful bass tuning happening at midrange frequencies), so an isolated midrange sub-chamber is essentially always sealed in real builds.

Midrange box (missing data)

Not enough data yet to calculate the midrange's loaded resonance — Vas and both Qes/Qms (in the Driver card's midrange fields) all need a value first. Until then the midrange is treated as free-air, regardless of the box setting above.

Crossover

Switching modes

Switch between Subwoofer, Two-way, and Three-way — and pick/configure the Tweeter and Midrange themselves — at the top of the Driver card above. This card only shapes the filter for whichever mode is currently selected there: cutoff/crossover frequency, order, alignment, and level trims.

Subwoofer lowpass

An optional lowpass filter, modeled as an active/electronic crossover placed ahead of the power amplifier (as in a powered subwoofer or an active crossover) — not a passive LC network wired in series with the driver. Because it sits upstream of the amp, it scales the voltage that reaches the driver above cutoff (and therefore SPL, excursion, and port/line-outlet velocity) without adding to the driver+enclosure's own electrical impedance.

Subwoofer lowpass: effect

Uses the exact Butterworth lowpass response for the chosen order — always -3 dB right at the cutoff frequency, rolling off at 6 dB/octave per order above it. Shown as a "With crossover" comparison curve alongside the unfiltered response on the SPL, excursion, and port/line-outlet velocity graphs. Not reflected on the Impedance or Group delay graphs, since an upstream/active filter like this doesn't change the driver+enclosure's own electrical load or add its own delay to that curve.

Two-way crossover

Splits the amplifier's signal at the crossover frequency below: a lowpass to the woofer (the main Driver/Enclosure) and a matching highpass to the tweeter — both picked/configured up in the Driver card — then sums the two into one combined system curve, shown in the chart further down.

Driver offset

Path-length difference between the woofer and the tweeter, which adds a phase difference when the two are summed - how a real two-way gets a dip or a lobe near its crossover frequency. 0 treats them as coincident. The sign has no effect for a two-way: only the magnitude of the summed pressure is reported, so +12 cm and -12 cm give identical output. You normally never type this in: dimension the cabinet in the Enclosure step and it is worked out from the baffle for you, and the field goes read-only. That is worth doing, because the number you would measure between the two drivers is NOT the path difference unless you listen from directly above or below the pair - measuring centre-to-centre and typing that in is usually a large overestimate.

Where the driver offset comes from

The driver offset is worked out from where the drivers actually sit on this design's baffle (the box in the Enclosure step) and where you listen from, rather than being typed in. There is no switch for this, and that is deliberate: the offset is a consequence of the cabinet, not a crossover setting, so once the box is dimensioned the placement is known and the crossover has nothing to add. What gets computed is the difference in PATH LENGTH from your listening position to each driver - which is what actually causes the interference near the crossover - rather than the distance between the two drivers on the baffle. Those are only the same number if you listen from somewhere on the line running through both drivers. Sitting roughly level with the tweeter a couple of metres back, a 20 cm woofer-to-tweeter spacing gives a path difference of under a centimetre, and at a 2.5 kHz crossover that is the difference between the two drivers summing to +5.8 dB and cancelling to -10.7 dB. So the number you would measure off your baffle is the one thing almost guaranteed to be wrong here. The derived value can never exceed the spacing between the drivers, so this can only reduce the modelled interference, never invent some. Until a design has a dimensioned box there is nothing to derive from and the typed-in value is used instead - the field says which state you are in. Toe-in is accounted for, though it only matters for a driver mounted off to one side: rotating a speaker about its vertical axis cannot change a purely vertical woofer-over-tweeter separation.

Filter alignment

Shapes the crossover's filter curve. Butterworth (Q ≈ 0.707) is maximally flat with no peaking, -3 dB at the crossover frequency. Linkwitz-Riley (Q = 0.5) is -6 dB at the crossover frequency - twice the acoustic power there of Butterworth's -3 dB - and sums the woofer and tweeter back to a flat, in-phase response through the crossover region. Custom lets you set the Q directly: higher than ≈0.707 peaks near the crossover frequency before rolling off, lower rolls off earlier with no peaking. In Passive LC mode the real inductor/capacitor values below change to match whichever alignment is selected.

Odd filter orders

Order 1 and 3 have no single well-defined Q in this simplified model, so they always use the plain Butterworth curve regardless of which alignment is selected here. Switch to order 2 (or order 4 in Electronic mode) to make alignment/Q take effect.

Level attenuation

Pads down that driver's level before the two are combined, on top of the crossover filter - use this to level-match a woofer and tweeter whose real sensitivities differ (a tweeter is often a few dB hotter than a typical woofer). Attenuation only (0 and up), like a real L-pad or a channel's gain trim - neither can boost a driver past its own natural sensitivity, only bring it down closer to the other one.

Electronic vs. Passive LC

Both crossover types shape the woofer/tweeter output with the same curve, whichever alignment is selected below — Electronic just doesn't show component values and allows order 3-4; Passive LC is capped at order 1-2 since higher-order passive networks need topology choices this simplified calculator doesn't model.

Passive LC components

Component values assume both drivers are purely resistive loads at their nominal impedance - a real driver's impedance varies with frequency, which this simplified calculator doesn't account for. Treat these as a starting point for a real passive crossover build, not a finished design.

Auto-derived components

These are the idealized textbook values for the chosen frequency/order/alignment. Check the box above to type in the real parts you're actually using (e.g. rounded to standard values) and simulate from those instead.

Custom components

Simulating from the values you've typed in above, not the idealized textbook ones - the frequency/order/alignment fields further up are only used to seed a starting point when you first check this box. Every row is shown and editable, each with its own checkbox: only a checked row's typed value actually participates in the simulation, so you can override just one or two components (e.g. only the L-pad resistors) and leave the rest on their auto-derived value, or include a component the auto design doesn't normally have at all (like an L-pad even with no level trim set). Each pair still assumes a purely resistive driver load (see the help text above), so a real driver's own impedance swings still aren't modeled.

L-pad components

A level trim only shows real component values here in Passive LC mode - a constant-impedance L-pad (two resistors) rather than a plain series resistor, so it attenuates that driver without also detuning the crossover filter above (the filter still sees exactly the nominal impedance its L/C values were calculated for). Wire the series resistor between the filter and the driver, and the shunt resistor directly across the driver's terminals.

Notch EQ

Optional corrective EQ, per driver - each band is a notch (cut only, never a boost) centered at a frequency you choose, modeled on a real passive LC "trap" resistor network wired across a driver. Useful for taming a narrow resonance or breakup peak a plain crossover filter can't reach. Applies on top of everything else above, in both Electronic and Passive LC mode, and doesn't change the L/C/R values shown below - it's a separate corrective stage, not part of the crossover network itself.

Notch EQ topology

How a notch trap connects: its resistor, inductor, and capacitor are wired in series with each other, and that whole R-L-C branch is wired in shunt (parallel) across the driver's own terminals. Each enabled band above adds one such branch, sized for its own frequency/depth/Q - see the Trap R/L/C columns for the actual values.

Three-way crossover

Splits the amplifier's signal at two points: a lowpass at the low-mid frequency below to the woofer, a highpass-plus-lowpass band between low-mid and mid-high to the midrange (a bandpass), and a highpass at mid-high to the tweeter — woofer, midrange, and tweeter are all picked/configured up in the Driver card — then sums all three into one combined system curve, shown in the chart further down.

Crossover frequencies

The low-mid frequency splits the woofer's lowpass from the midrange's highpass; the mid-high frequency splits the midrange's own lowpass from the tweeter's highpass — together they shape the midrange into a bandpass. Mid-high should be set well above low-mid, or the midrange's passband collapses to almost nothing. Both crossover points share the same order/alignment/Q below.

Midrange bandpass components

The midrange's bandpass is modeled as two cascaded single-frequency sections — a highpass at the low-mid frequency (closest to the amplifier) followed by a lowpass at the mid-high frequency (closest to the driver) — each sized independently against the midrange's own nominal impedance. A real cascaded 4-component bandpass network's per-section impedance isn't quite identical to a truly isolated single section, so treat these as a starting point for a real build, not a finished design.

Shelf filters

Bass and treble shelf filters - unlike the notch EQ above, these are active (can boost as well as cut) and reach half their total gain at the frequency you set, then level off further away. Useful for tilting the whole low or high end, or for manually compensating the broadband baffle-step rise this app doesn't model on its own (a few dB cut on a shelf centered around the baffle-step region can flatten it out). Requires an active EQ stage ahead of the amplifier - not a passive network like the notch traps above.

Shelf/Linkwitz availability

Not available in Passive LC mode - a passive crossover has only one shared amplifier feeding the whole divider network, so there's no way to insert an active gain stage for just this one driver's own branch. Switch this crossover to Electronic mode to use it.

Linkwitz transform (driver)

Electronically cancels this driver's own sealed-box rolloff (its natural Fc/Qtc) and replaces it with a target Fc/Qtc you choose - the classic way to extend a sealed box's bass electronically. Only meaningful against a real 2nd-order rolloff, so it's offered here for a sealed box only. Extending the bass costs amplifier headroom and cone excursion at the extended frequencies, and requires an active EQ stage, not a passive network.

Linkwitz transform: enclosure

Only available for a Sealed enclosure - a Vented/Bandpass/Transmission-line box's real low end is a higher-order, differently-shaped system this single pole-swap can't correctly cancel.

Linkwitz transform (midrange)

Reshapes the midrange driver's own natural low-end rolloff (its sealed-box response if boxed, or its free-air response otherwise) to a target Fc/Qtc you choose - handy for flattening an early rolloff or shaping it to simplify the handoff to the subwoofer/woofer. Costs amplifier headroom and excursion at the extended frequencies, and requires an active EQ stage.

Room

Room placement model

Models the room's six boundaries (front wall, both side walls, floor, ceiling, back wall) together with the speaker's and listener's exact 3D positions using the image-source method (Allen & Berkley, JASA 1979) — the same approach REW (Room EQ Wizard)'s own Room Simulator uses, summing reflections up to mode order 20 per axis. This one calculation reproduces near-field boundary reinforcement/nulls, whole-room low-frequency buildup, and room-mode resonances together, as a single physically consistent result instead of three separately hand-tuned pieces. Sources are treated as omnidirectional, also matching REW. Reflectivity is the share of arriving energy each surface bounces back rather than absorbs: bare wall/tile/glass ≈ 90-98%, painted drywall ≈ 85-95%, carpet or heavy curtains ≈ 60-85%, dedicated bass absorption lower still.

Room shape and the floor plan

The room's floor plan is always a polygon, edited in the plan view: drag a corner to move it, drag a wall to move that whole wall, double-click along an edge to add a corner there, or double-click a corner to remove it (at least 3 corners required). Dragging a wall moves it parallel to itself - both of its corners travel together, at right angles to the wall - so resizing a room is one gesture rather than two corner drags, and a rectangle dragged this way is still exactly a rectangle, so it keeps being computed with the fast box math. A drag that would flatten the room or turn it inside out stops instead. There is no separate rectangular mode — a rectangle is just a 4-corner plan, and whenever the shape you have drawn IS a plain axis-aligned rectangle it is detected automatically and computed with the exact, deep, efficient box math rather than the general polygon method, so an ordinary room loses nothing. While the plan is a rectangle you can also type its width and length directly, and its four edges are named Front, Back, Left and Right. Every plan extrudes straight up to one shared ceiling height, so only the side walls become an arbitrary number of edges — the floor and ceiling stay flat planes. The general method is Borish's 1984 extension of the same image-source model to arbitrary (including L-shaped, concave) plans: each candidate reflection is checked for validity (does it land on that wall's real length, not just its infinite extension) and visibility (is another wall in the way — only possible in a concave room), checks a rectangular room never needs. Its reflection order is necessarily much shallower, because the box math applies its order independently per axis while the polygon search has one flat total across every edge — which is exactly why the rectangle case is detected and routed away from it. Each edge carries its own reflectivity, and on a rectangular plan its own material and thickness too; on a non-rectangular plan the material is stored but not yet applied, and the editor says so. The floor and ceiling keep the full material/thickness option whatever the shape.

Editing the footprint

Drag a corner to move it. Double-click anywhere along an edge to add a corner there, or double-click an existing corner to remove it (at least 3 corners required).

Typing wall lengths

Wall lengths can be typed as well as dragged, and the two do different things on purpose. Dragging a wall moves that wall bodily, so it keeps its length and the two walls meeting it get longer or shorter. Typing a length changes THAT wall's length, so the far corner has to slide instead. Editing a length in a closed footprint means something else has to move, so the far corner of that wall slides along the wall's own direction and each following corner is carried with it for as long as the wall joining them is at right angles to the one being edited. On a rectangular or L-shaped room that keeps every right angle: setting a 4.00 m wall to 4.50 gives a 4.50 m room rather than a trapezoid, and the opposite wall follows. On a footprint with no right angles only the far corner moves, so the wall you edited gets exactly the length you asked for while the next one along changes as a side effect. A length that would push a corner outside the editable area is refused and the box snaps back.

Reflectivity per wall

Each edge of the polygon gets its own reflectivity, the polygon equivalent of the named Front/Back/Left/Right walls a rectangular plan shows below.

Markers in the plan view

S/S2 marks the speaker(s), L marks the listener, and each carries its own X, Y readout in centimetres - the same centimetres the number fields below take, so the plan can be read as well as dragged, and a drag can be aimed at a value instead of eyeballed. The readout follows a drag as it happens. Corners, whole walls and the markers themselves are all draggable here; the number fields below remain the way to type an exact position. A position dropped outside the room - in the notch of an L-shape, say - is moved to the nearest point genuinely inside it, and so is one typed into the X/Y fields, since those can only express a numeric range and that range is the footprint's bounding box rather than the footprint itself.

Panning and zooming the plan

Drag the plan to pan. Click it once to arm the wheel (it takes an outline), then scroll to zoom about the pointer; click away to release the wheel back to page scrolling. Ctrl/⌘ with the wheel still zooms the page, not the plan. On touch: one finger pans, two fingers pinch to zoom, and double-tap does what double-click does — add a corner on an edge, remove one you tap directly. Reset view returns to the auto-fitted framing; it changes nothing about the room itself.

Back wall accuracy

Earlier versions of this app singled out the wall behind the listening position as a weaker fit for a near-field approximation, since it sits on the far side of the room from the speaker. (That wall used to be called the "front" wall here; it is now the back wall, matching how rooms are normally described.) That caveat no longer applies: the image-source method has no near-field assumption to stretch in the first place — every wall, the back one included, is a genuine boundary contributing exact mirror-image reflections at its exact geometric distance. The back wall is exactly as reliable as the other five.

Wall reflectivity

All six surfaces (front wall, both side walls, floor, ceiling, back wall) are always modeled, each fully independent — bare wall/tile/glass ≈ 90-98%, painted drywall ≈ 85-95%, carpet or heavy curtains ≈ 60-85%, dedicated bass absorption lower still. The image-source method used here has no near-field/far-field assumption at all, so every wall's actual contribution reflects its exact real geometry regardless of how far the speaker or listener sit from it.

Absorbent material

An optional absorptive treatment layered on top of a boundary's own bare-surface reflectivity above — bare surfaces ("None") are unaffected, and this treatment only feeds the calculation once "Use frequency-dependent absorption" below is switched on. Real porous absorbers only work well once their thickness is a meaningful fraction of the wavelength they're trying to absorb, so a thin treatment barely touches the bass even with a highly-rated material, while a thicker one reaches further down — set both the material and its thickness for each boundary, not just one or the other.

Frequency-dependent absorption

REW's own Room Simulator uses one flat, frequency- and angle-independent reflectivity coefficient per wall — that's this app's default too (the Reflectivity % field for each wall below, used directly). Switch this on to use this app's own Delany-Bazley porous-absorber physics instead (each wall's Material + Thickness below), which makes that wall's reflectivity genuinely fall off with frequency the way a real absorptive treatment does.

Surface scattering

Surface scattering is the one physical mechanism a plain image-source model has no representation of at all, and the reason a modelled curve keeps its interference ripple to the top of the sweep while real measurements show it fading away above a kilohertz or so. Left off, every reflection is a perfect mirror at every frequency: a 40th-order bounce is still a coherent copy of the source at 16 kHz and interferes with everything else exactly as it does at 40 Hz. Real surfaces are not like that - a wall's irregularities are nothing beside a 8-metre bass wavelength but comparable with a 2-centimetre treble one, so above the midrange an increasing share of each reflection leaves in directions other than the specular one. The physics used here is the classical Rayleigh-roughness result for a randomly rough surface (Beckmann and Spizzichino; Ogilvy): the specularly reflected ENERGY is reduced by exp(-g), where g is the square of twice the wavenumber times the RMS surface roughness, so the scattered fraction is 1 - exp(-g). It is evaluated at normal incidence, because the model tracks each image's emission angle at the source but not its incidence angle at each of the up to forty surfaces it bounced off. The energy scattered out of the specular direction is added back to the response as POWER rather than discarded, which is what keeps the model energy-conserving: specular plus scattered is exactly what the reflections started with, so switching this on removes ripple without dropping the level. What it cannot reproduce is the fluctuation a real diffuse field has - the scattered share arrives here as a smooth floor, so at the very top of the sweep the model is slightly flatter than a measurement. The four levels were calibrated against six real in-room measurements by comparing peak-to-peak ripple in five bands from 60 Hz to 16 kHz; Medium reproduced the measured fall-off best and is the level to use when comparing against a measurement. Note that the per-surface coefficients look tiny in the midrange - under one percent at 1 kHz for Medium - because it is the compounding over the ten-plus bounces making up a room's reverberant field, not the single-surface figure, that does the work. For the same reason these numbers cannot be compared directly with published ISO 17497 scattering coefficients. Off is the default: it costs real calculation time (a frequency-dependent per-image amplitude forces the banded transform path, like frequency-dependent absorption and speaker aiming already do), REW does not model it, and every design predating this option was computed without it.

Per-driver mounting height

By default the whole speaker sits at one height, so the tweeter borrows the woofer's room gain - which is wrong in exactly the band it matters for, since floor and ceiling reflections are what driver height changes and a tweeter a metre up does not share a woofer's floor bounce. Turning this on builds and sweeps a complete room geometry at each differing height, which is exact but costs another full room calculation per height. Worth knowing what to expect: the correction is not a gentle tilt but a different interference pattern, tens of dB peak-to-peak at high frequencies with a mean near zero, so after 1/3-octave smoothing most of the visible change lands between about 100 and 800 Hz where the comb is coarse enough to see and the mean shifts by a couple of dB. The correction is taken from the first speaker; in a stereo pair both boxes rise together, so the vertical geometry change is the same for each, and what is not captured is the change in the interaction between the two speakers' reflections. These are absolute heights above the floor, the same reference as the speaker's own Height above floor field - not offsets from the woofer. The woofer keeps using that field, so only the ways that sit somewhere else need a number here.

Driver heights from the box

The same per-driver room calculation as "Per driver", but the heights come from this design's own cabinet instead of being typed in. The box already records where each driver sits on the baffle, and the speaker position already says where the woofer's acoustic centre is in the room - between them those two facts fix the other ways' heights exactly, so entering them again is both tedious and a chance for the two answers to disagree. Nothing previously checked that a tweeter declared to be 100 cm up was consistent with a tweeter mounted 20 cm above a woofer at 25 cm; in this mode it cannot not be. Derived as the woofer's room height plus the way's own separation from it on the baffle, and clamped into the room, since a cabinet taller than the ceiling is something you can type. It needs a dimensioned box: until the Enclosure step has one, the typed-in heights are still used and the field says so. Costs exactly what "Per driver" costs - this changes where the numbers come from, not how they are used.

Driver directivity in the room model

The room calculation normally treats the speaker as an omnidirectional point source - REW's own simplification, and what every design in this app was computed with before this option existed. That is a good assumption in the modal region, where the room model is actually meant to be read: a woofer radiates equally in all directions until the wavelength drops toward its own size. It stops being a good assumption higher up. By 3 kHz a side-wall reflection that leaves the driver 60 degrees off-axis is more than 10 dB down in reality, and 0 dB down without this switch, so the omnidirectional model systematically overstates how much reflected energy reaches you above roughly 1 kHz. Switching this on applies the same Bessel piston model the polar response chart already uses, to the direct sound and to every one of the hundreds of thousands of image sources, each at its own emission angle - worked out by mirroring the speaker's aim direction the same way the image itself was mirrored. Anything leaving behind the baffle is held at the model's own -20 dB floor rather than trusting the piston formula there, where it is not physically justified. One caveat worth knowing. Which driver is radiating follows the crossover - the pattern blends from woofer to midrange to tweeter by the crossover's own power response, so a 1-inch dome is modelled as a dome above the crossover rather than as a 6.5-inch cone, a difference worth more than 15 dB on a wide-angle reflection at 5 kHz. A tweeter that publishes no Sd falls back to its nominal size and then to a plausible 1-inch dome, since most tweeter datasheets omit Sd entirely. It does cost real time, because a per-image amplitude that varies with frequency forces the slower banded calculation path. Both are why it is off by default rather than simply always on.

Speaker radiation pattern

Omnidirectional is the default and matches REW: the speaker radiates equally in every direction, so every reflection leaves at full strength. The other two give it a real piston pattern - the same one the polar chart uses - applied to the direct sound and to every reflection at the angle it actually leaves the driver. Straight ahead fires from the front wall toward the back, so the direct sound is itself off-axis by however far you sit to the side; toed in points each speaker at the listening position, putting the direct sound exactly on axis. Below a few hundred Hz none of this matters much, but by a few kHz an omnidirectional model overstates the reflected field considerably. The radiating driver follows the crossover, and it costs noticeably more calculation time.

Room is sealed

REW's own "Room is Sealed" option increases the response boost at the lowest frequencies for a well-sealed room, without publishing its exact formula. This is a small, deliberately approximate stand-in matching only that documented direction (a modest boost below the room's own whole-room transition frequency, capped at 6 dB) — not a precise match to REW's own internal calculation. Off by default, matching REW's own unchecked default.

Position diagrams

Both views are editable. In the plan view, drag a corner or a whole wall to reshape the room and drag a speaker or the listener to move it; in the side view, drag the ceiling to set the room height and drag a marker to set its own height. Wall and ceiling are the same gesture in the two views: grab the surface, move it, and the room resizes. The side view deliberately moves nothing sideways — where a speaker stands is a plan question, and two views owning the same coordinate is how they drift apart. The sliders and number fields below do the same job when a precise value is easier to type than to drag.

Second speaker position

The second speaker's own full 3D position, same coordinate convention as the first speaker above (and freely independent of it — a stereo pair doesn't have to sit at the same depth or height per side). Their two, generally different, path lengths to the listener combine coherently rather than as one flat gain, so a real comb-filtering pattern (constructive at some frequencies, destructive at others) can show up on the graphs above once the two positions differ.

Room calculation performance

Very reflective rooms (most or all walls above roughly 90%) give the calculation's own pruning very little to prune, so a single recalculation can take a noticeably longer moment in that regime. If that makes dragging a slider feel sluggish, turn off Auto-update in the Results card further down and use the Calculate button instead.

High-resolution sweep

Sweeps 3000 frequency points instead of 300 — ten times the frequency resolution, at almost no cost on most settings. This switch used to choose reflection depth instead, and was repurposed on measured grounds: the rectangular model at its standing order 16 per axis is already within about 1 dB worst case and 0.20 dB RMS of a converged reference, so buying order 24 was worth very little, and reflection depth is now fixed per room shape rather than being a choice. Frequency resolution was the real shortfall. At 300 points a 10 Hz to 500 Hz sweep spaces samples about 0.8 Hz apart near 60 Hz, which puts only two or three of them across a Q=30 room mode, so narrow modes read shallower than they are; and it left every fraction-of-octave smoothing setting finer than roughly 1/12 octave with too few neighbouring points to change the curve at all. At 3000 points a mode gets about twenty-five samples across its peak and every smoothing setting down to 1/48 octave becomes usable. It is close to free on most configurations because a flat-reflectivity room builds one impulse response and one transform that serves every frequency, so reading more points out of it costs almost nothing, and the banded paths are priced by their band count rather than by how many frequencies they cover. The exception is a full-range sweep with speaker aiming set to anything other than omnidirectional: there the transform is pinned at its size limit and each band falls back to summing frequencies one at a time, so the cost really is ten times higher — roughly four seconds instead of roughly half a second. A warning appears next to the switch in exactly that combination. Charts are drawn from at most 800 points regardless, taking the minimum and maximum of each group rather than every Nth point, so no narrow peak or null is hidden by the reduction.

Listening position variation

Room boundary/mode gain (see the Room Gain card's own image-source model) can change noticeably over just a few centimeters, since it comes from many reflected copies of the source interfering with each other at the listener — move the listener and the interference pattern shifts, which can shift your actual SPL response too. This tool samples the full simulated response — driver and enclosure alignment plus room gain, exactly what the main SPL chart shows — at up to six extra positions offset from the actual listening position (AdvancedPlacement's own Listener X/Y/Z), one per direction checked below, and shows how much it actually varies nearby rather than only reporting the single exact point; its own listening-position curve is in fact the same curve the main SPL chart plots, not a separate approximation of it, so the two always agree exactly at your actual seat. Directions are defined along the room's own axes — Front/Back toward the front/back walls, Left/Right toward the left/right walls, Above/Below toward the ceiling/floor — matching the Room Gain card's own wall naming, not the listener's facing direction, so they stay meaningful no matter which way the speaker sits relative to the listener. Distances default to 60cm for the four horizontal directions and 30cm for the two vertical ones (a seated head moves more side-to-side and forward-back than up-down), each capped at the room's own size along that axis, and an offset that would land outside the room is pulled back to the wall instead. A "Show as difference from listening position" checkbox re-references every curve to the listening position instead (0 dB there), isolating just the dB difference moving your head makes — a smaller, single-digit-dB view some may prefer for judging head-movement sensitivity in isolation, at the cost of hiding each position's own absolute SPL shape. Either way the chart shows the shaded spread (min/max) across the listening position plus whichever offsets are checked — the listening position is included in that min/max on purpose, so its own curve never renders outside the band — the average of that same set, and the listening position's own curve for reference. Each individually checked offset position also gets its own curve on the chart, hidden by default — click its name in the chart's own legend to show or hide it, the same way you can click any other chart's legend in this app to toggle a series. Always uses the same lower-order ("fast") image-source approximation the Room Gain card's own Fast calculation option uses for the offset positions' own room-gain component, regardless of that option's own setting — sampling up to six extra positions here is meaningfully more work than the single sweep everywhere else in this app, so this tool doesn't offer the slower, more exact option for them at all (this doesn't affect the listening-position curve itself, which is reused directly from the main simulation exactly as calculated there). A two-speaker "Separate" setup's own coherent stereo comb-filtering is reproduced for the listening position itself (borrowed from the main result) but not for the offset positions, a known scope limit. When a Two-way or Three-way crossover is enabled, every sampled position — the listening position and each checked offset — reflects the full combined system response (woofer plus tweeter, or woofer plus midrange plus tweeter, the same combination the main SPL chart and the dedicated Two-way/Three-way charts show), not the bare main driver alone; the tweeter and midrange have no independent position of their own to sample room gain at, so they share the woofer's own room-gain-and-distance effect at every position, including the offsets — a known, documented scope limit, consistent with the two-speaker one above. The current SPL curve smoothing setting applies to every curve here too, keeping them all consistent with the listening-position curve and the main SPL chart — and unlike the room-gain sampling itself, smoothing is applied live: moving the smoothing selector updates this chart immediately, without needing Calculate pressed again and without it being flagged as out of date. This calculator needs a design already calculated above, and otherwise only updates when you press Calculate — it does not recalculate automatically as you change room, placement, wall, or driver/box/crossover settings elsewhere, so a warning appears next to the chart whenever an input other than smoothing has changed since the last calculation.

Tools

Lobing calculator

Predicts the off-axis "lobing" (comb-filter) pattern a two-driver crossover produces, from just the drivers' center-to-center spacing and the crossover's own frequency/order/alignment — a standalone reference tool, independent of whatever driver/enclosure/crossover is currently loaded above. Each driver is treated as an ideal flat source through the chosen crossover filter, and both the extra path length at each angle AND each filter's own phase shift are modeled, so even-order (Butterworth/Linkwitz-Riley) crossovers predict a symmetric pattern between a given angle and its mirror image, while odd orders — 1st order especially — predict a genuinely tilted, asymmetric one, matching real crossover behavior.

Tweeter delay

A separate electrical/DSP delay applied to the highpass (tweeter) branch only, on top of the geometric spacing/angle phase above - the same knob a real active crossover's own time-alignment delay turns. Positive delays the tweeter, shifting which frequencies interfere constructively vs. destructively without having to change the spacing itself. 0 (default) behaves exactly as before this existed.

Driver polarity

Models swapping that driver's own +/- leads (or flipping a DSP crossover's polarity switch) - a full 180° flip of that branch's phase, on top of everything else above. Doesn't change either driver's own on-axis level, only how the two branches add or cancel off-axis; a handy way to see how much worse (or occasionally better) lobing gets if a driver ends up wired backwards.

Lobing chart symmetry

Solid lines are positive angles, dashed lines are the mirrored negative angle of the same colour — for even crossover orders these overlap exactly; for odd orders (1st order especially) they genuinely differ.

Lobing polar chart

The chart above sweeps frequency at a few fixed angles; this one instead sweeps angle continuously at a few fixed frequencies relative to the crossover frequency (¼×, ½×, 1×, 2×, and 4× fc) — the same complementary pair the Polar and Isobaric directivity charts elsewhere in this app form. The yellow (1× fc) curve is always the crossover frequency itself, whatever it's set to above.

Slot port calculator

Works out the physical length a rectangular slot port needs to hit a target tuning frequency, given the box's net internal volume and whatever width/height the port cross-section is limited to — a standalone reference tool, independent of whatever enclosure is currently loaded above. Uses the same Helmholtz resonance relation this app's own round Vented-box port already uses, so it's a genuine build-ready number, not a separate unrelated estimate.

Slot port velocity

Peak port velocity is computed from the driver currently loaded above, using the same real port-velocity model this app already applies to a round Vented enclosure — via the equivalent diameter, since that's the round port of the same cross-sectional area as this slot. Load the driver you actually plan to use before calculating for an accurate reading.

Baffle step calculator

Estimates the frequency where a driver's on-axis output starts rising as the front baffle stops being acoustically "invisible": below this frequency, sound wraps all the way around the enclosure (radiating into the full sphere around it); above it, the baffle reflects sound forward instead, concentrating the same acoustic power into a narrower forward hemisphere, which reads as roughly a 6dB on-axis rise. Suggests a first-order passive baffle step correction (BSC) network — an inductor in series with the driver, shunted by a resistor — sized to counteract that rise by the chosen amount. A standalone reference tool, independent of whatever driver/crossover is currently loaded above.

Baffle step correction network

This models a first-order (single-pole) shelf network: flat at low frequencies, reaching the full chosen correction well above the baffle step frequency. Like any real shelf of this kind, the point where it's actually halfway to that target sits roughly an octave above the frequency shown here, not right on top of it — normal behavior for this network shape, not a sign anything is wrong. Nominal impedance is treated as a fixed resistance for this estimate, same simplification most published baffle step calculators make; a real driver's impedance rises with frequency too, so the true in-circuit result will differ somewhat from this idealized figure.

Perimeter diffraction model

This integrates the diffracted contribution all the way around the baffle's real rectangular perimeter — every direction from the driver getting an equal share of the total, each delayed by that direction's own distance out to the edge — combined coherently as complex (phase-and-magnitude) waves rather than one averaged number, the same coherent direct-plus-reflected technique this app's own Room placement tool already uses for room boundaries, just applied to a driver's own baffle perimeter instead of room walls. That matters because a real baffle's on-axis response isn't a clean single-corner step: it rides on comb-filter ripples from the many different arrival times of the perimeter's diffracted wave — worse the more the baffle departs from square — which this reproduces (verified against a published diffraction-simulator example) and a single idealized averaged radius never could. A chamfer (or rounded-over edge) softens the whole perimeter's contribution: the wider the chamfer, the lower the frequency where the ripple starts rolling off, which matches how rounding or beveling a cabinet edge is actually used in real speaker design to tame diffraction. The suggested correction network's own target frequency is found by searching this same real, rippled curve directly, and the "With correction" curve is drawn against that real response — but a single resistor-and-inductor network can only chase the overall rise, not cancel per-edge ripples, so that curve is expected to still show some residual ripple rather than settling into a perfectly clean line.

Edge chamfer

A chamfer rounds over the sharp edge that would otherwise reflect sound sharply into the diffracted field — all four perimeter edges for Rectangular, or the single circular rim for Circular (Spherical has no edge at all, so it has no chamfer field). The wider the chamfer, the lower the frequency where the ripple starts rolling off, matching how rounding or beveling a cabinet edge is actually used in real speaker design to tame diffraction — both shapes apply this as the same corner-frequency low-pass factor against the chamfer's own width. A chamfer can't physically exceed half of the narrower relevant dimension: min(Width, Height) for Rectangular (a wider chamfer would cut each corner's notch past that edge's own midpoint, colliding with the notch coming from the adjacent corner along the same edge) or the Diameter for Circular (rounding in past the baffle's own center makes no physical sense) — so this field is automatically capped there as Width, Height, Diameter, or Shape change, and the underlying calculation clamps to that same bound as a last resort.

Circular baffle shape

A true flat circular baffle with the driver mounted exactly at its center is the one case where AdvancedBaffleStepResponseDb's rectangular perimeter integral collapses to an exact closed form: every point on the edge sits at precisely the same distance (the radius) from the source, so the entire diffracted field reduces to one delayed, phase-inverted impulse rather than a spread of many different edge-to-driver distances. That produces a distinctive comb-filter pattern - sharp peaks at f=(N+0.5)*speed_of_sound/delay and dips at f=N*speed_of_sound/delay, for delay=radius/speed_of_sound - verified in Python to reproduce the exact published reference frequencies for this classic textbook case. Unlike the rectangular Advanced model, there's no separate simple/advanced split here: because the closed form is exact, this is simply the correct answer for a circular baffle, calculated directly rather than approximated by any averaged radius.

Spherical baffle shape

A driver mounted flush on a sphere - rather than a flat baffle of any shape - behaves fundamentally differently, per Harry Olson's 1950 AES paper "Direct Radiator Loudspeaker Enclosures" (reprinted J. Audio Eng. Soc., 1969), the classic reference measuring diffraction from twelve different enclosure shapes. Olson found the sphere's transition "uniform and free of peaks and dips... because there are no sharp edges or discontinuities to set up diffracted waves of a definite phase pattern" - still rising the same ultimate ~6dB every centered-driver shape does, but far more gradually and without any comb-filter ripple. Olson's own paper documents this only as a graph, without a published equation, and this app's own perimeter-integration approach can't derive one either (its whole frequency dependence comes from edge-phase interference, which a continuously curved surface has none of). Absent a closed form, this uses a smooth, monotonic curve calibrated to two landmark points commonly cited from Olson's data: roughly 1dB of rise once the sphere's diameter reaches about a fifth of the wavelength, and the transition essentially complete by about three times the wavelength. This is a calibrated approximation matched to those landmarks, not a first-principles derivation - treat it as indicative of the sphere's much gentler transition shape rather than a precise prediction the way the Circular and Rectangular Advanced models are.

Driver directivity taper

An idealized point source's diffraction ripple genuinely doesn't decay with frequency - confirmed directly from the Biot-Tolstoy-Medwin edge-diffraction formula this app's Advanced/Circular models are built from, where the per-edge-point weighting is a purely geometric term and frequency enters only through phase, never amplitude. That matches published point-source diffraction simulators exactly, which is why the untapered curve rings at a roughly constant magnitude all the way up. A real driver isn't a point source, though: once its radiating diameter approaches a wavelength it increasingly beams forward, so less of its output reaches the cabinet edges to diffract in the first place. This reuses the same idealized circular-piston-in-infinite-baffle directivity model this app's own polar-response chart already uses (PistonDirectivityAttenuationDb), evaluated at 90 degrees off-axis - since every point on a baffle's edge sits almost exactly in the driver's own mounting plane regardless of which perimeter direction it's in, this taper works out to depend only on frequency and driver size, not on edge direction, so it can be applied once rather than per-angle. It shrinks the whole diffracted contribution, not just its ripple, at high frequency: physically, a driver beaming forward strongly also isn't sending much energy backward either, so the in-front/behind-the-baffle distinction stops mattering once the driver is directional enough - which is also why real passive BSC networks are normally only designed for a few kHz, not the full audio band. Off by default, so every existing curve (and its validation against a published diffraction-simulator worked example and a closed-form check) is unaffected unless turned on. The field below asks for an effective driver diameter in inches rather than Sd (cm²) directly - the unit most people actually think of a driver's size in - and is converted to Sd internally right before it reaches the physics; it's directly editable and can also be pulled (as an equivalent diameter) from whichever driver is currently loaded above.

Correction network target frequency

The real per-shape model above (perimeter integration for Rectangular, the exact closed form for Circular, the calibrated curve for Spherical) is still an estimate - a real enclosure's own measured or by-ear-tuned baffle step frequency can land somewhere else entirely, for reasons the formula can't see: a driver mounted off-center rather than centered on the baffle, a baffle that isn't a plain rectangle, nearby furniture or boundaries changing the effective diffraction, or simply a preference discovered by listening. This field is the correction network's own target frequency - there's no separate checkbox gating it, it's always directly editable. It mirrors the current shape's own real-model estimate, re-syncing itself every time Width, Height, Chamfer, Shape, Diameter, or the driver-taper fields change, so it's never a stale number left over from a previous geometry. Typing over it lets it diverge from that mirrored estimate for a real enclosure's own measured or by-ear-tuned figure - but the next edit to any of those fields re-mirrors it back to the fresh automatic estimate, so a hand-tuned value is a nudge for right now, not a permanent override. Nothing else about the calculator changes when this field diverges from the auto estimate: the resistor/inductor values are still solved the same way from whatever frequency ends up feeding them, and the idealized "with baffle step" reference line and the real per-shape curve are both untouched - only the correction network's own aim point (and the vertical marker line on the chart) follows this field.

Box building calculator

Turns a box's outer dimensions and wall thickness into a physical cut list — the six flat panels a real build needs, plus the resulting internal cavity size and net volume. Enter all three external dimensions to check them against your target volume, or pick one to solve for exactly instead.

Solve for a dimension

"Solve for" computes that one external dimension from the other two plus the target volume above, overwriting whatever was in its field — the other two stay exactly as entered. Leave it on "enter all three" to just check a fully-specified box against the target volume instead.

Cutout and port fields

Driver cutout is a starting estimate from the driver's own Sd (real mounting holes usually need to be a bit larger to clear the basket/surround) — edit it by hand if you know the real hole size. Port fields default to whatever round port is set on the Enclosure card, with length taken from the last calculated Result, but are fully editable here; leave port diameter or count at 0 for a Sealed box with no port to check.

Multi-way cutouts

This design is Two-way/Three-way, so the Tweeter (and Midrange, for Three-way) get their own cutout and offset fields alongside the main driver's — "Use current driver/enclosure setup" above fills in a starting diameter from each one's own Sd when it's set, falling back to its nominal size (SizeIn, e.g. a "1-inch" tweeter) whenever Sd isn't available — a common case, since most tweeter/midrange datasheets don't publish Sd at all. Only left at 0 for manual entry when neither is set.

Driver depth

Depth is how far each driver's own basket and magnet structure sticks back into the box, checked below against the internal depth so it doesn't run into the back wall. No driver spec here tracks a real depth figure, so it defaults to half the matching cutout diameter — a rough but common rule of thumb for a basket-frame driver — whenever "Use current driver/enclosure setup" fills in that diameter; edit it by hand once you know the real number from a datasheet or a tape measure.

Placement check

Checks the exact positions above against the baffle's own edges and against each other — not a search for any layout that happens to work, so moving an offset can turn a passing check into a failing one and vice versa.

Offset origin

Purely a display convenience for entering the offset fields below — switching it doesn't move anything or change how a layout is calculated, it just changes what number each offset field shows/expects. "Panel center" (the original, still-default behavior) means 0,0 is the middle of whichever baffle that opening is on. "Top-left corner" means 0,0 is that panel's own top-left inner edge, X increasing rightward and Y increasing downward — matching the same direction the diagrams below already draw a negative Y offset as "above" center.

Port wall

Which panel the port group actually fires from — Front (the default, and the only option before this field existed) shares the baffle with every driver and is included in the placement/overlap check against them; Back and Bottom are their own separate panel, checked for fit against that panel's own plane instead (Width×Height for Back, Width×Depth for Bottom) with no overlap check against the drivers, since they're not on the same surface. Switching this doesn't convert any offset already entered — Front/Back share the same Width×Height plane so those carry over unchanged, but Bottom's own Y axis means depth-position instead of height-position, so re-check or re-run Auto-arrange after switching to or from Bottom. Top/Left/Right aren't offered since a sideways- or upward-firing port isn't a practical real build.

Port length from tuning

The round-port length needed to tune this box to the Fb above, given the net internal volume the cut list computed, the port bore and the number of ports - the same Helmholtz relation the simulation itself uses. There is no button: the length simply follows those four inputs, because a tuning frequency has exactly one answer once you know them. The length field stays editable, so you can override it with a length you can actually buy or cut; a typed value stands until you change one of the four. Inside the Enclosure step the volume, tuning, bore and count are the design's own - set them in the enclosure fields and everything here follows. The Tools copy owns its own scratch values instead, so you can work a box out without touching a design.

Box diagrams

Front view (left) shows every driver cutout and, if front-mounted, the port(s) at the positions set below. Side view (middle) and top view (right) show every driver's own depth as a solid bar reaching back from the front baffle, plus the port's own bar (or, for a bottom-mounted port, a plain circle in the top view) — all drawn in the warning color and left un-clipped, so anything too deep/long for this box visibly pokes through the far wall. A back- or bottom-mounted port is skipped in the front view since it isn't on that panel. Each view uses its own independent scale, not a shared one.

Cut list assumptions

Cut list assumes simple butt-joint construction: Left/Right panels are the full external Height × Depth (the two "bookend" panels); Top/Bottom fit between them but still run the full external Depth; Front/Back fit within both, flush at the two ends. This is one common, easy-to-explain build approach, not the only valid one — swap which pair you treat as the bookends by hand if your own joinery differs.

Port fit check

Whether the port(s) above physically fit this box — depth clearance behind the opening. This is a practical building rule of thumb, not part of AcousticsEngine's own acoustic model, which only cares about the port's length/area, not its physical surroundings.

Driver depth check

Whether each driver's own depth (basket + magnet structure) fits within the internal depth set above, using the depth fields below — a separate check from the port's own above, since a driver's real depth isn't tied to its cutout diameter the way a port's clearance is tied to its own diameter.

Results

Simplified mode results

Showing only what Fs/Qts/Vas alone can determine (SPL shape, group delay, F3/Fc/Qtc). Impedance, excursion, absolute SPL, port/line velocity, and Maximum Output Level need the driver's real Qes/Qms split, Sd, Re, Xmax, and Pe — turn off Simplified mode and fill those in to see them.

SPL smoothing

Smooths the displayed SPL curve (the ones affected by room placement/gain/modes) using a fractional-octave running average, so genuine narrow room-mode peaks don't look spikier than they'd actually sound. It only changes what's plotted — F3, MOL, and the free-field curve (the driver/box's own inherent shape, including a vented box's port notch) are computed from the unsmoothed data. Psychoacoustic uses a variable window (1/3 octave below 100 Hz, 1/6 octave above 1 kHz) and weights peaks more heavily than dips within it, matching how forgiving the ear actually is toward a narrow notch versus a narrow peak, rather than averaging both evenly like the other options. Some settings appear greyed out, and which ones depends on the frequency range: the sweep computes 300 points spread evenly in log frequency (3000 with the room card's high-resolution sweep on), so at the standard count a 10 Hz–500 Hz sweep gets about 53 points per octave but a 10 Hz–20 kHz one only 27. A smoothing window narrower than the gap between neighbouring points contains just the point at its own centre, so it would average that point with nothing and leave the curve untouched — at the standard 300 points over the full range, 1/24 octave and finer do exactly that. Rather than offer settings that silently do nothing, the ones that can't resolve anything are disabled, and narrowing the frequency range brings them back. If the range widens under a setting that no longer resolves, the selection moves to the finest one that still does. ERB is the heaviest smoothing on offer at low frequencies, and the only one specified in Hertz rather than in octaves: its window follows the ear's Equivalent Rectangular Bandwidth, (107.77f + 24.673) Hz with f in kHz, which is nearly constant at roughly 25–35 Hz through the deep bass and therefore covers a large fraction of an octave down there and a small one higher up — about 1 octave at 50 Hz, 1/2 octave at 100 Hz, 1/3 octave at 200 Hz, settling near 1/6 octave above 1 kHz. That makes it the closest match to how poorly the ear actually resolves frequency in the range a woofer works in, so use it when you want to see the trend a listener would notice rather than every individual mode. Below about 23 Hz its window is capped at two octaves, because the ERB band's own lower edge would otherwise fall below 0 Hz.

Frequency range starting at 0 Hz

0 Hz is treated as ~1 Hz internally — a logarithmic sweep can't start at exactly zero.

Overlaying a measurement

Loads a real measurement and draws it over the frequency-response chart, so the model can be read against what a room actually did. Two formats are read: REW's own binary .mdat, and plain text exports from any tool (.txt, .frd, .csv, .dat - whitespace, comma, semicolon or tab separated; comment lines, a header row and European decimal commas are all handled). Which one a file is gets decided by sniffing its bytes, not its extension. Curves are drawn exactly as measured - no level alignment, no resampling onto the model's frequency grid - because a measurement's absolute SPL depends on drive level and mic calibration, and shifting it to fit would be inventing an offset. For that reason overlays appear only on the absolute-SPL view; on the relative view a ~90 dB SPL measurement would sit far off the top of a chart that peaks at 0 dB. An overlay is also clipped to the swept range, since the chart pins its frequency axis to the widest series on it and a 20 kHz export would otherwise stretch a 20-500 Hz chart by a factor of forty. Overlays live for the session only: they are not saved with the design and not carried in a share link, because a measurement belongs to whoever took it rather than to the box being designed. Expect the measurement to show less ripple than the model above roughly 1-2 kHz - a real room has scattering, absorption that varies with frequency and furniture, none of which this simplified image-source model includes. Each overlay also has a level offset, because absolute SPL is the one thing about a measurement that is not a property of the speaker - it moves with drive level, mic sensitivity and calibration file. The offset shifts the drawn curve only, never the imported data, and the "Auto" button sets the median difference between model and measurement over the range both cover; a shifted overlay is labelled with its offset in the legend. The SPL smoothing setting applies to overlays too, on the measurement's own frequency grid and before the range clip, so the model and the measurement are always compared at the same resolution - an unsmoothed measurement beside a 1/3-octave model curve looks hairy for reasons that are purely about processing. Note that a file exported with smoothing already applied is smoothed again rather than re-smoothed, which widens the effective window; export unsmoothed and let this setting do the work for a true like-for-like comparison.

Measurement level offset

Shifts an overlay up or down without touching the imported data. Absolute SPL is the one thing about a measurement that is not a property of the speaker - it moves with drive level, mic sensitivity and calibration file - so an offset lets the SHAPES be compared without pretending the levels agree. No offset is applied on import, and "Auto" sets the median difference between the model and the measurement over the range both cover (a median, not an average, so the deep narrow nulls where the two disagree most do not drag the result). A shifted overlay says so in the chart legend, so it is never mistaken for a raw measurement.

Predicting the in-room curve from a free-field measurement

Treats an imported measurement as the speaker's FREE-FIELD response and draws a second curve predicting what it would measure in the room, by adding the boundary gain the room model computes for the current placement. The engine keeps those two separable - every placed curve it builds is the free-field response plus a room term - so feeding a measured response in where the modelled one would go is simple arithmetic, and it removes the driver and box model from the comparison entirely: what is left on screen is the room model being tested on its own. Note it predicts the response SHAPE, not absolute level: the term being added cancels out listener distance and the flat multi-speaker gain by construction, so level stays wherever the overlay offset puts it, which is appropriate since absolute SPL is the one thing a measurement cannot tell you about a speaker. Two limits worth knowing. The reflections inherit the MODELLED directivity, because a single on-axis sweep carries no off-axis information - the same approximation the room model already makes everywhere else. And a coherent two-speaker pair's comb filtering IS included in what gets added, which is right for a measurement of one speaker against a modelled pair and double-counts if both speakers were playing during the measurement.

Operating power

Cone excursion and port/line air velocity are normally shown at the driver's full rated power (Pe), because that's the worst case the driver is designed for. In practice a lot of drivers are run well below Pe, and excursion/velocity at that lower level are what actually matters for that use. This setting lets you pick the power level those curves are computed at, either directly in Watts, as an RMS voltage (converted through the driver's Re), or as a percentage of Pe. It only affects the excursion and port/line velocity curves and their related warnings; it deliberately does not change Max Output Level (MOL) or the SPL curve at rated power, since those still describe the driver's absolute ceiling regardless of how it's actually being driven. The same setting is used by the Comparison feature so multiple drivers can be compared at a consistent, realistic operating level rather than always at their (possibly very different) rated powers.

Room mode lines

Dashed vertical lines mark each active room mode frequency, so a peak or dip can be read directly against the mode causing it. Colored by which room dimension the mode comes from - see the key below. They are drawn on the Room response chart, not on the frequency-response chart: a room mode is a fact about the room, and the speaker charts are free-field, so marking one there would invite reading a dip that is not on the curve.

Driver vs. port chart

How much of the free-field output comes from the driver's direct radiation vs. the port/line, and how their phase relationship shifts across frequency.

Polar response chart

How the loaded driver's own idealized piston-in-baffle radiation pattern narrows with frequency, at a fixed set of representative frequencies (color-coded, same key as the legend below) — 0° (top) is straight ahead/on-axis, ±90° (left/right) is directly to the side. Only that ±90° front hemisphere is shown (the rear is where an infinite baffle would block radiation entirely, so there's nothing meaningful to plot there). This is informational only: it's independent of the box, room, and crossover, and doesn't feed into any other chart. In Two-way/Three-way mode, also plots the tweeter (dashed) and/or midrange (dotted) whenever that stage's own optional Sd field is filled in — see its help text below.

Isobaric directivity chart

The same idealized piston-in-baffle directivity model as the Polar response chart above, plotted a different way: frequency (200 Hz-20 kHz, log) on one axis and angle off-axis (-90° to +90°) on the other, colored by attenuation in dB, with isobar lines traced across it at -3/-6/-10/-15 dB (see the color key and line-style key below) — the same kind of frequency-vs-angle "directivity balloon" contour plot loudspeaker measurement software usually shows. One panel per plotted stage: the main driver always, plus the tweeter and/or midrange in Two-way/Three-way mode whenever that stage's own optional Sd field is filled in. Also informational only, same as the Polar response chart: independent of the box, room, and crossover, and doesn't feed into any other chart.

Two-way system chart

Woofer (with the lowpass above), tweeter (with the highpass), and the combined system response — all absolute SPL @ 2.83 Vrms / 1 m, so the two drivers' relative levels stay comparable. The tweeter picks up the same room placement/room gain the woofer gets (same cabinet, same position in the room), so this reflects Room placement settings the same way the main SPL chart does.

Two-way MOL chart

Each driver's own Maximum Output Level ceiling (excursion+thermal for the woofer, thermal-only for the simplified tweeter), with the crossover filter and any level trim applied, plus the system's combined ceiling (the lower of the two at each frequency — whichever driver clips first). Deliberately excludes Room placement's own gain, same as the main MOL chart: a driver's physical ceiling doesn't move just because placement adds "free" SPL that costs no extra excursion or power.

Two-way impedance chart

Woofer and tweeter impedance together, so both branches of the Two-way system can be read on one chart. The woofer curve is the same modeled impedance as the single-driver Impedance chart; the tweeter curve uses its own Re/Le/Qes/Qms when those are filled in above, otherwise a flat line at its nominal impedance. In Passive LC mode a System curve is added too — what an amplifier actually sees with both branches' crossover components (inductors/capacitors, plus any L-pad) in circuit. Electronic mode has no shared electrical node between the two channels, so no System curve is shown there.

Three-way system chart

Woofer (with the low-mid lowpass), midrange (with its bandpass), tweeter (with the mid-high highpass), and the combined system response — all absolute SPL @ 2.83 Vrms / 1 m, so all three drivers' relative levels stay comparable. Every driver picks up the same room placement/room gain (same cabinet, same position in the room), so this reflects Room placement settings the same way the main SPL chart does.

Three-way MOL chart

Each driver's own Maximum Output Level ceiling (excursion+thermal for the woofer, thermal-only for the simplified midrange and tweeter), with its crossover filter and any level trim applied, plus the system's combined ceiling (the lowest of the three at each frequency — whichever driver clips first). Deliberately excludes Room placement's own gain, same as the main MOL chart: a driver's physical ceiling doesn't move just because placement adds "free" SPL that costs no extra excursion or power.

Three-way impedance chart

Woofer, midrange, and tweeter impedance together, so all three branches of the Three-way system can be read on one chart. The woofer curve is the same modeled impedance as the single-driver Impedance chart; the midrange and tweeter curves use their own Re/Le/Qes/Qms when those are filled in above, otherwise a flat line at nominal impedance. In Passive LC mode a System curve is added too — what an amplifier actually sees with all three branches' crossover components (inductors/capacitors, plus any L-pad) in circuit. Electronic mode has no shared electrical node between the three channels, so no System curve is shown there.