How to use it
- Choose 2D blocks (skyline-style: square sticks of different heights on a backer, or an egg-crate of slotted strips) or 1D wells (a row of wells between fins, as in a classic QRD).
- Pick the sequence. Quadratic residue with N = 7 is the usual DIY choice; larger primes give a finer pattern with more different heights.
- Enter the panel size and the actual width of your stock: a 2x2 is about 1.5 in square. Leave the strip thickness at 0 for solid blocks.
- Enter the maximum depth (the tallest block), or a design frequency to work it out. Optionally round the heights to fewer steps, which makes cutting quicker.
- Check the map and the counts, then download the build sheet (summary, glue map and cut list), the map as an image, or the parts as DXF/SVG for a laser or CNC.
- Every setting is in the page address, so you can bookmark your plan or send it to someone.
Worked example
The plan this page opens with is a 24 × 24 in panel of 2x2 blocks (1.5 in actual), quadratic residue N = 7, 8 in deep. That is 16 × 16 cells: 4 stay empty and the other 252 get blocks in 6 heights from 1.333 in (≈ 1 5/16″) to 8.000 in (8″). With 5% spare and a 1/8 in kerf, the 267 pieces come out of 14 sticks of 8 ft, and the blocks weigh about 47 lb. The design frequency of this geometry is about 723 Hz, and the upper limit set by the 1.5 in cells is about 4.5 kHz.
How the heights are worked out
DIY "skyline" and QRD diffusers use Schroeder's number sequences. For a quadratic residue diffuser each well's depth is proportional to n² mod N (1D), or (m² + n²) mod N over an N × N block of cells (2D), with N a prime. The depth step is λ0 / 2N, so the deepest well is (N − 1) × λ0 / 2N and the design frequency is f0 = c × s_max / (2 × N × depth). For N = 7 the 2D values run 0 to 6 in a symmetric pattern with 0 in the centre:
4 6 3 2 3 6 4 6 1 5 4 5 1 6 3 5 2 1 2 5 3 2 4 1 0 1 4 2 3 5 2 1 2 5 3 6 1 5 4 5 1 6 4 6 3 2 3 6 4
The heights are these values times (maximum depth ÷ 6). Mirroring them (6 − value) gives the same diffusion pattern; some builders prefer it because the centre cell becomes the tallest block. A primitive-root sequence (g^k mod N) uses N − 1 different heights with no empty wells, folded into a rectangle of cells when N − 1 splits into two co-prime factors (7 → 2 × 3, 11 → 2 × 5, 13 → 3 × 4). The commercial skyline-style products use the same idea with a much larger prime.
The QRD diffuser design guide works the well depths and frequency limits through for N = 7 and N = 13.
Blocks, egg-crate or wells
- Solid blocks (strip thickness 0): cut sticks to the listed lengths and glue them to a backer following the glue map. Empty cells get no block.
- Egg-crate (strip thickness above 0): slotted strips interlock to make the cells, and a well bottom sits at each depth. The planner lists the strips with their slot positions, and the heights become spacer heights measured from the back.
- 1D wells: fins run the full height of the panel, and each well bottom sits at its depth. The planner gives the fin count and sizes and the depth of every well.
For a complete worked build (heights, sticks to buy, glue map and build order), see skyline diffuser plans.
What frequency should I enter?
There are two conventions, which is why calculators seem to disagree. The QRD formula above gives the design frequency; many DIY calculators instead quote c / (2 × depth), which is lower for small primes. The planner shows both. The upper limit is roughly where the cell width is half a wavelength, c / (2 × cell); above it the panel scatters less evenly. These are textbook estimates (c = 343 m/s), not measurements, and a diffuser works best when you sit at least a few wavelengths away.
Examples to start from
- A 4 × 3 ft panel of 2x2 blocks, 8 in deep (how many 2x2s?)
- A 7 × 7 egg-crate of 70 mm cells in 3 mm MDF, 110 mm deep
- A 13-well 1D QRD with 10 mm depth steps
- A 48 cm primitive-root panel of 40 mm blocks in 4 heights
Limitations
- The acoustic figures are estimates from the geometry. Real performance depends on the room, the mounting and the build; nothing here is measured.
- The cut list is near-minimal (first-fit decreasing), not guaranteed optimal; it never uses fewer sticks than the lower bound it shows.
- Weights are for the listed parts only, from typical densities. Heavy panels need fixings into studs or masonry.
- Random layouts are decorative: they break up reflections but no frequency band can be stated for them.
Frequently asked questions
- How many 2x2s do I need for a skyline diffuser?
- Enter your panel size, 1.5 in cells and your stick length; the cut list gives the number of sticks, allowing for the kerf and the spare you choose.
- Does it work in centimetres?
- Yes. Switch to millimetres; all sizes convert, and the cut list uses your metric stock length.
- Why are some cells empty?
- In a quadratic residue pattern some cells have the value 0, which means no block (or, mirrored, the tallest block). For N = 13 and 17 about one cell in seven is empty, which saves wood.
- Is anything I enter sent to a server?
- No. The plan, the map and the files are made in your browser. Your settings are kept in the page address so you can share them; see privacy for what the host and analytics receive.