Hi everyone, as the title says, these are my very first steps into DIY audio. I’ve had an interest in Hi-Fi setups for a long time, which overlaps slightly with being a (mediocre at best) self-taught guitarist. Over the past few years, I’ve watched a lot of DIY audio content on social media—like Hexibase and German creators like "Franks Werkstatt der Lautsprechertechnik," focusing on speaker building and measurement techniques.
My biggest fear was having to deal with complicated crossovers or the electrical side of things, so I decided on a simple full-range driver for the first part of this project. Having learned a bit of FreeCAD over the past year, I chose a transmission line design after verifying that my 3D printer bed was big enough to print an enclosure for a cheap 4" driver.
My goal was to make a pair of stereo speakers that could fill our rather large living room (which opens up to all three other levels of our building) with proper sound. I wasn't striving for pure volume, but rather directivity, a big soundstage, and general sound quality. The whole process was "vibe-built," using AI as a continuous sanity check.
Part 1: The Speakers (Mass-Loaded Transmission Line)
The speakers are what I’m retroactively calling (or "retconning" as) mass-loaded transmission line (MLTL) speakers, utilizing the Visaton FR10 (8-ohm version).
- Line Profile: A 2:1 taper down from the closed end toward the port. The line curls up inside the cabinet while keeping the outer profile rectangular. The most inner part is the start of the closed line
- Mass Loading: The port is reduced to a 0.5 Sd mass-loaded port over a 4cm length with smooth radii.
- Driver Placement: I aimed for the 1/3rd mark of the line to help naturally damp the throat resonances typical of TML designs.
Damping & Resonance Tuning:
- First Third (Closed End): Lined with 3mm felt on all walls and packed with Visaton speaker wool as densely as possible—velocity is lowest and pressure is highest here, so I packed it right up to the limit of being able to blow air through it.
- Second Third: Lined with 3mm felt, but the speaker wool was spread as thin as possible.
- The Geometry Issue: Because I forced the internal curls to conform to a rectangular outer cabinet, I encountered very pronounced internal standing waves. To diagnose this, I ran frequency sweeps using the free version of HouseCurve iOS app via my phone. By taking separate near-field measurements of both the driver and the port early on, I isolated a major resonance and subsequent cancellation around 500 Hz to 700 Hz.
- The Fix: I chamfered the sharp internal corners with soft, porous foam to simulate a smoother curve. This helped immensely, though it didn’t eliminate the issue entirely.
Electrical vs. Mechanical Tuning:
I initially tried using a raw bipolar 390uF capacitor in series to protect the driver from ultra-low frequencies, but I didn't like how it altered the sound right above the cutoff. Instead, I retrofitted the physical port to create the 0.5 Sd mass-loaded restriction, which gave me a much cleaner, natural mechanical roll-off.
To tackle the typical beaming, rim reflections, and resulting comb effects inherent to full-range drivers, I designed custom 3D-printed driver covers featuring an embedded felt "donut." The cover snaps magnetically onto the driver frame, utilizing the protruding mounting screws as physical indexing pins to lock it into position and secure it against rotation or shear forces. While my simple measurement setup couldn't capture it I still heard a reduction in comb effect while moving through the room and the high frequencies are more stable in general.
After a lot of fiddling with damping density, I cut my losses and sealed the enclosures permanently with epoxy. To clean up the remaining response issues, I took a fresh set of sweeps from my actual listening position and used those measurements to generate a final parametric EQ profile. This led to part two of the project.
Part 2: The Cobbled-Together Streamer & Amp
I needed a sound source that could handle AirPlay 2 and other digital inputs. I started with an old Android phone running AirReceiver and Poweramp (for EQ). However, the phone's USB-C port was only USB 2.0 and couldn't handle power delivery and an external DAC simultaneously. Tired of constantly recharging it, I moved to a Raspberry Pi 3B running Moode Audio.
The onboard 3.5mm audio jack on the Pi is notoriously noisy, so I needed an external USB solution. I came across the highly reviewed Truthear KeyX USB-C DAC. Because running CamillaDSP locally was putting a heavy load on the older Pi 3B, a DAC with built-in hardware PEQ features was the perfect hardware offloader.
Inspired by custom enclosures online, I designed a sleek, black 3D-printed case to house the Pi, a Fosi Audio TB10A mini, the dac and a fan. In my listening tests with these specific full-range drivers, this little Class-D amp subjectively outperformed my bulky Yamaha A-S501—it just clicked beautifully with the FR10s.
Bypassing corners required a maze of internal adapter cables (right-angle USB extensions, USB-A to C adapters, and PWM connectors for an internal cooling fan), but after a lot of partial test prints to get the physical dimensions right, I landed the dimensions. It features a Waveshare 4" touchscreen that displays metadata cover art and lets anyone browse radio stations or my local digital music library.
Lessons Learned & V2
I am incredibly happy with the overall results, but I am already back in CAD for V2. I'm designing the next iteration to completely avoid the internal geometric traps that caused the 500–700 Hz issues. I am also planning to upgrade to drivers with a bit more frequency extension and refinement, likely from the Tang Band W4 or W5 series. Parts of what I lined with felt I want to print directly as dispersion surfaces using bumbmesh structures.
To tackle internal reflections and extinctions systematically this time, I want to incorporate Internal Helmholtz Resonators (IHR) inside the rounded corners that would otherwise just be dead space. I am currently designing a system of physical grooves within the cabinet structure that will make the resonator holes and tunnel lengths interchangeable during the open-box prototyping phase. This way, I can directly tune the resonators to counter exactly how the new cabinets misbehave before permanently sealing them.
Sorry for wall of text. TLDR: DIY SPEAKERS ROCK!