Acoustic toolkit

SN Acoustics Lab — acoustic calculation suite

The results of this toolkit are design predictions calculated with published acoustic models, not on-site measurements or a certified study. Check dimensions, materials and anchoring before fabricating or installing; fabrication and installation are the responsibility of whoever carries them out. Terms

Build a kit for your studio

Enter your space’s dimensions (rectangular) — they sync automatically with Room modes, 3D map + Sabine and Irregular room — and, based on your level, we’ll recommend an acoustic treatment kit calculated to fit your room.

Wall area: — m² · Ceiling area: — m² · Volume: — m³

Room materials

Tell us what your room is made of: the material changes a lot how much reverberation it has today and, therefore, which kit you need. If you are not sure, knock on the wall with your knuckles: if it sounds hollow it is drywall; if it sounds solid, it is brick or concrete.

These are the same materials as in “3D map + Sabine” and “Irregular room”: they stay in sync.

Choose your category

Design tailored to your room, with a floor plan and installation guide, specifications for each element, and downloads of their cut and assembly files. It’s a separate purchase from the plans (it doesn’t use your subscription’s downloads). Price by category, taxes included: Amateur $9.99 USD · Semi-pro $14.99 USD · Professional $19.99 USD · Engineer $23.99 USD.

Calculate
Practice

Room dimensions

—
volume (m³)
—
Schroeder frequency (Hz)

Below this frequency the behavior is modal (individual resonances, like the ones below) — above it, statistical (formulas like Sabine apply well there). fs = 2000×√(RT60/V), with RT60 in seconds (250 ms = 0.25 s) and V in m³.

Room modes (0 Hz — Schroeder frequency)

Axial Tangential Oblique

How to read the table: (l,w,h) tells how many half-waves fit along the length, width and height of the room in that mode. Axial modes bounce between two opposite surfaces and are the strongest; tangential ones between four; oblique ones between all six. The Note column shows the closest musical note to that frequency (¢ = cents, hundredths of a semitone): these are the bass or kick notes the room will boost or cancel.

Zones highlighted in the table: modes that fall within 5 Hz of each other, regardless of type. The filter above only changes what is shown here — the Schroeder frequency and the Bonello criterion below always use the full set of modes, filtered or not.

Bonello criterion

Counts how many modes (axial + tangential + oblique) fall in each third-octave band, up to 500Hz. The rule: the count should never drop when moving up a band — if it does, there is a modal gap right after a pile-up, and the room will sound different in those two zones.

Proportions vs. published references

Compares your room’s proportions (Length/Height, Width/Height) against proportions historically associated with good modal distribution. It’s not a pass/fail zone — it’s a reference for how close you are to each one.

3D map
Sabine by band

Dimensions and mode

Pressure zones (drag to rotate)

Minimum pressure (node)Maximum pressure (antinode)

The red/yellow zones are where that mode concentrates the most energy — that’s where a bass trap performs best for that specific frequency. Corners concentrate high pressure from practically all modes at once, which is why they are the default location.

Floor plan shape

Corner cuts (optional, up to 4)

Each corner has its own fixed letter on the plan below, so you know exactly which one you’re going to cut.

Corner A (0,0)
Corner B (L,0)
Corner C (L,W)
Corner D (0,W)

Height (optional sloped ceiling)

If the ceiling is flat, leave both heights equal. If it’s sloped, indicate which wall (identified by its 2 corners, e.g. “A–B”) is the lowest — it’s marked on the plan with an arrow. The calculation gives you a frequency range for the vertical modes instead of an exact number.

How to read this

This calculation solves the real floor plan shape (including angled corners) with a numerical finite-difference method — it’s not an adjusted rectangular-room formula, it’s a direct solution over the geometry you drew. The grid resolution controls accuracy: finer (smaller number) is more accurate but slower to calculate; if the shape has small details (very small corner cuts) and you use a coarse grid, those details may not be represented well.

The sloped ceiling uses a deliberate approximation: instead of inventing an exact number that the physics doesn’t fully support, it shows the full range between the frequency given by the minimum height and the one given by the maximum height. Physically this is honest — a sloped ceiling doesn’t resonate at a single frequency, it spreads that energy across a band, which is why ceilings are sloped.

What do “Horizontal” and “Vertical n=1,2…” mean?

In a rectangular room, a mode can be described with 3 numbers (one per axis: length, width, height), which gives rise to the classic classification: axial (only one axis active), tangential (two axes) and oblique (all three). That classification depends on the room having exactly 3 straight axes — in an irregular floor plan, with cut corners or angled walls, those 3 axes no longer exist, so “axial/tangential/oblique” has no exact translation here.

What always exists, regardless of the floor plan’s shape, is the separation between the horizontal pattern (how pressure varies when looking at the room from above, in plan) and the vertical variation (how it varies from floor to ceiling) — and those two combine independently:

Some modes have a frequency range (instead of a single number) because the ceiling is sloped — that mode doesn’t resonate at one exact frequency, but spreads its energy across a band between the minimum and maximum height. That is physically correct, not an inaccuracy in the calculation.

Volume and Schroeder frequency are calculated with the average height — exact for a rectangular floor plan with a straight sloped ceiling; an approximation (quite good in practice) when the floor plan has cut corners, because there the room’s real center shifts slightly from the geometric midpoint.

Skyline

Checking your access…

This design tool is part of the subscription. With an active plan you can edit all its parameters, see the full design and download its cut files, assembly guide and 3D model.

If you bought a Semi-pro, Professional or Engineer kit, its elements open here after you download the kit document.

Design target

—
actual max. freq. (Hz)
—
max. length (cm)
—
panel (cm × cm)

Length grid

Each cell is a square-section post (the width you set above), seen from the front of the panel (the side the post tips point toward, not the back where they are glued). The number is the cut length in cm. Longer posts stick out farther toward the front and look lighter; shorter ones sit deeper, near the back, and look darker.

Cut list — posts

Grouped by length so you can cut in batches — fewer saw stop readjustments.

—
linear meters of material
—
total posts

Back board

The posts are glued by one end onto this board — it holds the whole grid together and is what you fix to the wall or furniture.

—
board size (cm × cm)
—
area (m²)

It can be MDF, plywood, or any rigid board from 9 to 12 mm — it doesn’t need to be thick, just rigid and flat, since it carries no structural load beyond holding the posts. It doesn’t go through laser cutting or sheet nesting — it’s a single flat piece cut to size, so it only appears as a separate line in the cut list, with its actual width and height.

It’s added as an almost fully reflective wall (typical wood coefficient), so the RT60 in 3D map + Sabine counts its actual area without attributing absorption it doesn’t have — its job is to diffuse, not absorb.

3D model

Exports the complete post grid as a 3D model (.dae — units in mm already embedded in the file) to import as a true visual reference in your SketchUp render — File > Import, select “COLLADA Files (*.dae)” as the file type.

Cut list and assembly guide

Generates a document with the list of posts to cut (grouped by length) and a grid map showing where each one goes, so you can assemble without mix-ups.

QRD

Checking your access…

This design tool is part of the subscription. With an active plan you can edit all its parameters, see the full design and download its cut files, assembly guide and 3D model.

If you bought a Semi-pro, Professional or Engineer kit, its elements open here after you download the kit document.

Design target

—
actual max. freq. (Hz)
—
max. well depth (cm)
—
total panel width (cm)

It’s added as an almost fully reflective wall (typical wood coefficient), so the RT60 in 3D map + Sabine counts its actual area without attributing absorption it doesn’t have — its job is to diffuse, not absorb.

Well profile (side cross-section)

Cross-section view of the diffuser, as it would look from the side — each bar is a well with its actual depth.

Sequence

The sequence is symmetrical: n and N−n give the same depth. s(n) is the quadratic-residue sequence number (n² modulo N): on a scale from 0 to N−1, it tells how deep each well is.

Material and cutting

Builds a real box: perimeter frame + dividers between wells (no notches — in 1D they are parallel strips and don’t need to interlock) + back panel + one face per well. The deepest well has no face — the back is left visible there, just like in the QRD 2D.

For the rest of the wells, each one gets 2 “depth spacers” — they go vertical, just like the dividers between wells (not lying flat): one long edge glued against the back panel, the opposite (parallel) edge against the face. One goes on each side of the well, against the dividers or the side frames — this way they hold the face exactly at its target depth, leaving an air gap behind without needing a full solid piece.

The kerf is the width of material the laser burns away when cutting; it’s compensated so the pieces come out at their exact size (0.1–0.2 mm is typical in MDF with a CO2 laser; cut a test piece before the batch). The clearance is a small extra gap so the pieces go in by hand and there’s room for the glue: with 0.15 mm there’s no need to force or sand. If the pieces come out loose, lower it; if you have to force them, raise it. With a CNC router, your machine software already compensates for the bit.

With a laser, pieces are nested sharing the cut between them — no wasted space, not even between different groups. The kerf already compensates the notches, so 0mm spacing is safe.

Material thickness per piece (mm)

Each piece can be a different material/thickness — useful if you want, for example, a thicker, structural frame (9mm) with lighter dividers and faces (6mm). Each well’s spacer already accounts for the actual thickness of its face. The cut file groups the pieces by thickness: each thickness comes out on its own sheets, so a piece is never cut from the wrong material.

—
total pieces
—
material area (m²)
—
sheets per material thickness

Sheet nesting is the heaviest calculation — it doesn’t run on its own when you change a value above. Adjust what you need first and, when you’re done, click here.

—

SVG and DXF files are always in millimeters, at full scale: that is what laser cutters and CNC machines read. When importing them, choose millimeters as the unit.

3D model

Exports the complete row of assembled wells as a 3D model (.dae — units in mm already embedded in the file) to import as a true visual reference in your SketchUp render — File > Import, select “COLLADA Files (*.dae)” as the file type.

QRD 2D

Checking your access…

This design tool is part of the subscription. With an active plan you can edit all its parameters, see the full design and download its cut files, assembly guide and 3D model.

If you bought a Semi-pro, Professional or Engineer kit, its elements open here after you download the kit document.

Design target

—
actual max. freq. (Hz)
—
max. well depth (cm)
—
outer panel (cm × cm)

It’s added as an almost fully reflective wall (typical wood coefficient), so the RT60 in 3D map + Sabine counts its actual area without attributing absorption it doesn’t have — its job is to diffuse, not absorb.

Material and cutting

The frame and back can be a thicker/stronger material than the internal dividers (typical: frame and back in 9mm, dividers in 6mm) — the cut file groups the pieces by thickness: each thickness comes out on its own sheets, so a piece is never cut from the wrong material.

The kerf is the width of material the laser burns away when cutting — without compensating for it, the notches would come out wider than the material’s actual thickness. If you don’t know your machine’s exact kerf, 0.1–0.2mm is a typical range for MDF with a CO2 laser; cut a test piece before the full batch to confirm.

Clearance is separate from kerf, and it’s what really decides how easily the pieces go in: compensating the kerf perfectly gives a zero-clearance press fit in theory, but in practice real MDF varies by a few tenths between sheets and your machine’s kerf isn’t an exact number either — with many repeated pieces (like the dividers in this QRD2D), those small differences add up, which is why the last piece is almost never the one that goes in without planing. With 0.15mm of clearance the pieces go in by hand, without forcing or planing anything, and there’s real room for a thin layer of glue — it works well with clear contact cement (thinner, dries fast) as well as with white glue. If the pieces feel loose, lower the clearance; if you have to force them, raise it.

With a laser, pieces are nested sharing the cut between them — no wasted space, not even between different groups. 0mm spacing is safe.

Depth grid

Each cell is a well seen from the front. The number is that well’s actual depth in cm (measured from the front face inward).

How it goes together

Piece names: “Perim. V” and “Perim. H” are the pieces of the perimeter frame (vertical and horizontal); “Div. V int.” and “Div. H int.” are the internal dividers that slot into each other; “Sep-R” are the wide depth spacers (they span the full width of the well) and “Sep-B” the short ones that go between them.

1) Build the outer box: the 2 “Perim. V” pieces run the full length (corners included), and the 2 “Perim. H” pieces are shortened to butt-join between them — so they don’t overlap and leave no gap at the corners. Then the grid of internal dividers (they interlock through the notches, and butt against the inner face of the perimeter pieces). 2) Glue on the back panel. 3) The deepest well gets no face or spacers — the back panel is already the visible bottom surface, so there’s nothing else to glue there. 4) For the rest of the wells: first glue the 2 “wide” spacers (the ones as long as the full width of the well) against two opposite walls of the bottom. Then glue the 2 “short” spacers fitted between those two, against the other two walls. 5) Glue the well’s face piece on top — this way it sits exactly at the target depth. Everything is glued, with no additional cuts after the laser.

Materials summary

—
total pieces
—
MDF area (m²)
—
sheets per material thickness

Pieces of the same type and size are laid out in strips sharing the side cut between them, and when more than one row of the same type is needed, those rows are also stacked with no gap — sharing the top/bottom cut just like the ones beside them. On notched pieces, some rows come out “flipped” (marked on the label) so the smooth edge sits against the smooth edge of the next row — it doesn’t affect assembly: it’s the same physical piece, just drawn upside down on the plan. All this cuts cutting time considerably compared with cutting each piece separately. Each material thickness (frame, back, dividers, faces, spacers) is nested on its own sheets.

Sheet nesting is the heaviest calculation in this tool — that’s why it doesn’t run on its own when you change a value above. Adjust what you need first and, when you’re done, click here to generate it.

—

SVG and DXF files are always in millimeters, at full scale: that is what laser cutters and CNC machines read. When importing them, choose millimeters as the unit.

Each sheet is an independent SVG or DXF file, at real size (mm), ready to import straight into your laser’s software — already trimmed to the size of your cutting bed. Download them one by one by changing the number above.

3D model

Exports the complete assembled grid of wells (not the cut nesting) as a 3D model (.dae — units in mm already embedded in the file) to import as a true visual reference in your SketchUp render — File > Import, select “COLLADA Files (*.dae)” as the file type.

Absorber panel

Porous absorber — fill material with an optional air gap behind it. Same Delany-Bazley-Miki model we use in Helmholtz and BAD.

The equivalents (Owens Corning and similar) are approximate, based on density and flow resistivity (σ). If your material’s data sheet lists σ, choose “Custom” and enter that value: the result will be more accurate.

The air gap behind the fill improves bass absorption without using more material — it’s the same idea as spacing the fiberglass away from the wall instead of gluing it directly.

—
total area, all panels (m²)
—
absorption peak
—
total thickness (mm)

It isn’t added automatically — click the button when you want this design to count in the RT60 of 3D map + Sabine. You can add several different designs, one by one.

Absorption curve

Sabins = α × panel area, in m² of equivalent absorption — ready to add straight into a Sabine calculation.

How it goes together

Build a frame (wooden frame) of 60 × 120 cm with an inside depth of 50 mm, so the fiber at the calculated thickness fits snugly without being compressed. Cover the front and sides of the frame with acoustic fabric (a fabric you can blow through without effort: if it doesn’t let air through, it won’t let sound through either) and put the fiber inside.

If the design includes an air gap behind the panel, stand it off the wall by that distance using blocks or brackets; there’s no need to fill that space.

This tool doesn’t generate a cut file for the frame: just cut the slats to the panel dimensions.

Helmholtz

Checking your access…

This design tool is part of the subscription. With an active plan you can edit all its parameters, see the full design and download its cut files, assembly guide and 3D model.

If you bought a Semi-pro, Professional or Engineer kit, its elements open here after you download the kit document.

Target and panel

The target frequency is only a visual reference (red line on the chart) — the actual peak depends on the parameters below and on the layers.

Box shape

—
total box depth — perforated face + fill layers (cm)
—
center-to-center spacing (mm)
—
effective neck length (mm)

Center-to-center spacing: distance between the centers of two neighboring holes (what you mark before drilling). Effective neck length: the sheet thickness plus a small correction for the air that vibrates on each side of the hole; together with the % perforation and the cavity depth it sets the frequency of the trap.

—
total perforations
—
perforations per m²

Cavity fill (1 to 5 layers)

Each layer is stacked from the perforated sheet toward the rigid back. The total cavity depth is the sum of the thicknesses of the active layers. It can include air (empty cavity), MDF/wood (solid mass, no porosity) or an intermediate perforated sheet (a second resonator inside the same trap).

—
total cavity depth (mm)
—
actual absorption peak

It isn’t added automatically — click the button when you want this design to count in the RT60 of 3D map + Sabine.

Frequency response

Absorption coefficient α calculated with the Delany-Bazley-Miki model extended to multiple layers (transfer matrix), combined with the mass reactance and viscous resistance of the perforated sheet. It’s a physically based prediction, not a typical range — but it’s still a normal-incidence model, not a measurement; in a real chamber (with diffusion and varied angles) the measured curve is usually a bit wider and smoother than this one.

Cross section

How it goes together

Build a closed box (back plus four sides) in wood or MDF. Cut the sides to the cavity depth calculated above, so the back sits exactly that distance from the perforated face.

Put in the fill layers in the order shown (the first goes against the perforated face) and close the box with the perforated face (SVG/DXF file below). Seal all joints with glue or silicone: an air leak detunes the trap.

Dimensioned front face

SVG and DXF files are always in millimeters, at full scale: that is what laser cutters and CNC machines read. When importing them, choose millimeters as the unit.

Full actual grid at real size (mm) — the simplest cut in the kit: just uniform circles on the sheet, no pieces and no nesting.

3D model

Exports the perforated face at the real material thickness, with the actual holes cut into the geometry — 3D model (.dae — units in mm already embedded in the file) to import into your SketchUp render. File > Import, select "COLLADA Files (*.dae)" as the file type. Each hole is described as a native opening within a single polygon (without triangulating the face), so it leaves no seam lines when importing into SketchUp.

The triangulated version is an alternative in case your version of SketchUp shows errors when importing the seamless version.

BAD panel

Checking your access…

This design tool is part of the subscription. With an active plan you can edit all its parameters, see the full design and download its cut files, assembly guide and 3D model.

If you bought a Semi-pro, Professional or Engineer kit, its elements open here after you download the kit document.

1. Choose the pattern design

The holes are placed exactly according to each design’s reference pattern — only the size of each hole and the panel dimensions change according to the parameters below.

2. Perforated face

The margin is added as extra solid material around the pattern (without moving any hole) — useful for having an edge to glue the face to the box. With a 1.5cm margin, a 120×60cm panel comes out of 123×63cm of actual cut size.

—
perforation (%)
—
average pitch (cm)
—
solid/void contrast

Pitch: average distance between neighboring holes; it sets the frequency at which the pattern starts to diffuse. Solid/void contrast: how marked the difference is between wood areas and perforated areas; with low perforation the contrast is high and the face reflects and diffuses more, with high perforation it behaves almost like fabric and absorbs more.

3. Rear cavity

Perforated face → front air gap → layers of absorbent material → rear air gap → rigid back.

—
total cavity depth (cm)
—
actual absorption peak

It isn’t added automatically — click the button when you want this design to count in the RT60 of 3D map + Sabine. This adds only the panel’s incidental absorption — it doesn’t represent the diffusion effect, which Sabine can’t model.

4. Diffusion

When the wavelength approaches the size of the pattern (average pitch between holes), the face stops behaving like a uniform surface and starts scattering energy instead of absorbing it or reflecting it like a mirror. A lower perforation % leaves more solid wood visible between holes — more contrast, more diffusion.

—
estimated diffusion onset
—
contrast quality

5. Frequency response

α absorption (Delany-Bazley-Miki, multilayer) dominant diffusion zone (geometric estimate)

As with Helmholtz, α is calculated with a transfer matrix (mass + viscous resistance of the perforated sheet, reactance of each layer including the air gaps). The diffusion band is a separate estimate, based on the pattern pitch — it doesn’t come from the same absorption model.

6. Hole pattern for cutting

SVG and DXF files are always in millimeters, at full scale: that is what laser cutters and CNC machines read. When importing them, choose millimeters as the unit.

The pattern uses the actual position of each hole from the reference pattern, scaled to the panel size and diameter you defined above — it’s not a generic pattern.

7. 3D model

Exports the perforated face at the real material thickness, with the actual holes cut into the geometry (not just drawn on top) — 3D model (.dae — units in mm already embedded in the file) to import into your SketchUp render as a true visual reference. File > Import, select "COLLADA Files (*.dae)" as the file type. Each hole is described as a native opening within a single polygon (without triangulating the face), so it leaves no seam lines when importing into SketchUp.

The triangulated version is an alternative in case your version of SketchUp shows errors when importing the seamless version.

Questions about how to use the toolkit? As a subscriber you can write to us at sn.acoustics.lab@gmail.com and we’ll help you with using the tools.