Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com) TLS_AES_256_GCM_SHA384
7 of 10 dentists agree: better than a kick to the teeth!

Introducing… Free & Open Rave Technology!

Mon, Apr 18 2022 - 17:47

Hey y'all – we have a new project. Because it's not like we don't have too many already (and we haven't even told you about the semi-procedural world creation Blender addon or the secure XMPP service for dissidents yet).

As we're not homeless anymore and have one of those dreadful things called a job*, we can finally afford luxury goods again. So we thought for about a quarter of a second and decided that what we need most was to have phat sound again. As most of our audio equipment was probably™ lost to the chaos and fuckups that comes with homelessness, we were confronted with a certain question for the first time in over a decade:

Do we just buy a ready-made sound system – or do we roll our own?

*: Not to bitch too much – we only do part-time, are being paid in large part for FOSS work and get to set our own schedule. ;)

As we are staunch proponents of free raves, an idea began to form:

What if we can design a sound system that is…

  • DC-powered
    • This would enable running it from battery – perfect for free raves that are (more) environmentally acceptable as no generator is needed.
  • Modular
    • In particular with:
      • one backpack-compatible configuration
      • one small configuration for tiny raves
      • one medium-sized configuration for smallish raves
      • one big configuration for when you absolutely need to get crazy
  • Incrementally buildable
    • Configurations should be build- and usable one after the other so people don't have to invest into the full thing all at once, but can rather grow their system as they grow their events.
  • Free & Open Hardware
    • With proper, parameterized CAD designs for easy reproduction without having to scrape things together from a dozen different sources.
    • This would also allow people to share back their improvements easily without adding yet another source of information to check out and weigh against the others.

So, is it doable?

That's a very emphatic fuck yeah, it is!

The concept we came up with goes as follows:

Speakers

backback-compatible configuration

Two 2-way speakers with one 2" tweeter and 8" midbass woofer each. This is supposed to give us dedicated woofers for kickbass when upgrading to the next configuration.

small configuration

The backback-compatible configuration plus two subwoofers with 12" drivers, probably using "tapped horn"-style enclosures. Basically we're building 3-way speakers with the components split over two enclosures for better transportability and modularity.

In traditional PA lingo, the backpack-compatible configuration makes up the tops that are completed by the subwoofers.

medium configuration

The small configuration, but double the speakers. So you end up with four 2-way tops, and four subwoofers to double the output of the small configuration.

big configuration

The medium configuration plus two subwoofers with 18" drivers for that really low subbass. Probably the preferred configuration for really kick-ass dub raves. We're not sure whether we need additional tweeters. Time will tell.

Crossover & Amplification

Crossover (filtering frequencies for components, i.e. tweeters don't get bass and woofers don't get treble) and amplification is a bit of a sore topic.

Ideally, we want custom DSPs for the filtering and one DC amp board per woofer/tweeter. Our long-term goal for this project is a modular 19" rack component housing all the filtering and amplification needed.

The former because A) more FO[S|H] = more good and B) most if not all proprietary DSPs require shitty Windows software to set and adjust the filtering while we think that's unacceptable and want to do these things from our homely BSD or Linux machines.

The latter because A) again, more FO[S|H] = more good and B) because it's more efficient, which is a factor of concern when you want to run your system from battery.

Alas, the chip market is currently completely and utterly fucked and ADCs and DACs needed to build custom DSPs are practically impossible to get.

Turns out, this is mostly just the case for ADCs, so if we forego analog input, we might be able to sidestep this issue. :)

Thus, for now, we settled on using a pre-made passive crossover and a cheap-ish car amplifier as that's the cheapest way to get into DC-powered audio that's widely available right now.

Where do we stand right now? Is it done yet?

Currently, we have the first configuration kinda-sorta done – so let's dive into the specifics, shall we?

For the actual components, we settled for these:

Component Product Cost
Tweeter Beyma CP 16 49€
Woofer Eminence Beta 8A 85€
Crossover Monacor DN-2618P 34€
Amplifier Raveland XCA 400 99€

The tweeters are internally sealed so no chamber calculations were necessary. The woofers are not, so what we ended up doing was throwing all the pertinent values from their datasheet into the speaker enclosure calculator at diyaudioandvideo.com to calculate the optimal volume for sealed enclosures.

We opted for sealed enclosures because those are smaller and offer a faster and flatter response than ported enclosures and we wanted to make sure we get nice, crispy kickbass.

If you're wondering, a ported enclosure has a big ol' hole in it – that's the port. Sealed enclosures in contrast have their inner volume closed off.

It came out at 9.47l, or 9470cm³, and from there we only had to define a minimum reasonable size for the front panel to fit tweeter and woofer, do a tiny bit of math (V = whd → d = V/w/h) and we had the inner dimensions of our enclosure.

What we ended up with was this:

Dimension Length
width 23.0cm
height 32.5cm
depth 12.7cm

In these calculations, we ignored extra internal components like crossover (frequency filter) or the volume displaced by the components, so we would have come out at slightly less effective internal volume than calculated – but we also rounded up the outer measurements to 5mm increments during manufacturing, so we guess it probably kinda-sorta evens itself out.

The material we chose for the enclosures is MDF, which has long been the de-facto standard in the hifi audio community. We initially planned on using 22mm strength since that was the highest strength advertised at the local hardware store, but had to pick 19mm because of availability issues. The resulting enclosures are still a good deal chunkier than they probably need to be.

For the wood joints, we opted to angle every single edge of the wood at 45° in order to increase the glued area and thus how solid the connection between the boards are.

The finished tops look like this:

The finished speakers weigh in at about 7kg apiece – so when we say backpack-compatible, we don't necessarily mean that it's comfortable to wear with a normal backpack – but more that from measurements and weight it can be carried on your back without exceeding the carrying capacity of a soldier.

Our approach to get this actually backpack-compatible is to design a custom backpack that can hold amp and batteries and has mounts for the speakers on its sides. Structural parts of this backback will have to be bent and/or welded from sheet metal and the compartment for batteries and capacitors will also have to be separated with extra insulation so people don't kill themselves with random discharges. This is still a future project and we hope to get started on it in earnest around June.

Getting to the amplifier, our choice fell on the XCA 400 for two reasons:

Firstly because it can drive two speaker pairs, with one of them having an adjustable low-pass filter. This means that we can hook up both the tops and the two subwoofers of the small configuration to the same amp and we don't need additional crossovers for the subwoofers with our interim solution for amplification & crossover.

Secondly because it offers an adjustable high-pass filter that goes down to 80Hz. We intended to use this to protect the tops (whose woofers only work well down to 80Hz). This turns out not to work because the 80Hz seem to reference the point where the filter filters out all of the signal, not where it begins to descend. It also seems to be largely unneeded, too.

Lessons learned

Tape is actually a good option to fix wood in place while gluing

When we first planned putting together the tops, we didn't think much further than sawing all the MDF boards to fit together and then "something something, clamp it". This turned out to be another rookie mistake as you can't clamp 45° joints without also making some clamping aids.

We did however learn about a neat trick to use tape to fix pieces of wood together for angled joints. Essentially, you just put your pieces of wood together flush to each other on the ground, tape them together in this position, flip them over, apply glue, fold them into their final position and then wrap tape around the whole construct to keep it under tension. You can find a more detailed how-to over yonder.

This would've worked to do one joint after the other, but as we were paranoid about the accuracy of this method, we wanted to do all the joints at the same time to make sure all angles actually fit – and we figured out a way to pull this off, too!

We present: The taped 5-way hinge method:

You start with the backpiece and add tape hinges for the left, right, top and bottom sides – everything except the front. We opted to first tape vertically to the planned joints in three places per joint and then strengthen the hinges by taping horizontally along the planned joint. This gives you something that looks like this:

Once you have this done, you flip the whole thing over and add glue to all involved surfaces of two adjacent pieces. Spread the glue and fold the two sides up into their final orientation. When this is done, you can apply tape to the new corner you just created to keep both pieces up and under tension. The remaining two sides you can do one after the other, taping up each newly created corner. Make sure to put lots of tension on the tape when doing this.

After this is done, add another strip of tape near the top and around the whole thing to make sure you have good tension all around. If you did everything right, you should have something looking like this:

Now it's time to put on the front. Simply apply and spread glue on all eight involved surfaces, fit the front piece in its place and tape it down. Add some more tape around all 4 sides for good measure and you're done.

Wait for the glue to set (24h with the glue we used) and you can start placing your components in the enclosures. Oh, and protip if you forego terminals on your speakers: Add a simple knot just after the main speaker cable enters the enclosure to make sure pulling on the speaker cable from the outside can't put tension on the input connectors of the crossover.

How the fuck do these tweeters even fit?

While we do like the sound of the Beyma CP 16 tweeters, we have to say that their installation was pretty un-fun. First of all, the leads to connect the cables are above the magnet. For sealed, glued enclosures, this means that if you cut out a perfectly round hole into the front for them, they won't fit anymore if you actually connect cables to them.

We solved this in a pretty dirty way by filing out some recesses by hand so we can actually fit the cables:

This also ties into our next gripe: The space between the leads and the tweeters front panel is so small that you can't actually put a crimp connector onto them – much less one that actually has a cable in it.

We're sure there's a solution to this that doesn't completely suck, but the only way we found to work was to just solder the cables to the leads and put some shrink tube on the solder joint – and goddess be damned if that doesn't completely suck and is entirely frustrating to pull off with a cheap 10€ soldering iron. Accordingly, we created the literal worst solder joints of our entire life, but hey whatever, it works (for now, at least).

And this is already the one where the solder joints suck less…
And this is already the one where the solder joints suck less…

L pads are important

When we first hooked everything up, we immediately noticed that the tweeters were way too loud compared to the woofers. A quick bit of research later, we found out that what we need is a tweeter attenuation circuit, or L pad.

An L pad is a circuit consisting of just two resistors, one connected in series and one in parallel. The point of this is to lower the current (i.e. Amperes) arriving at and thus the volume coming out of the tweeter while keeping the same resistance/impedance for the overall circuit.

We opted for a -15dB circuit as calculated by the L pad calculator at soundcertified.com which came out at 6.6Ω for the resistor connected in series and 1.7Ω for the one in parallel.

Initially, we also wanted to try a -12dB circuit, but the local electronics store didn't have the right parts, so we didn't even try that.

We also chose to use resistors rated for 25 watts, which are technically oversized but come in nice cases you can screw straight into the enclosure walls.

The final components are two 3.3Ω Widap 160012 resistors in series to get one 6.6Ω resistor and one 1.8Ω (close enough) Widap 160009 resistor.

The final assembly of it looks like this:

Since installing this, mids and highs seem to be well balanced – even though judging by the datasheets, the actual volume difference should be around 11dB, which brings us straight to…

That whole EQ mess

Even with the L pad, the current version of the speakers – or the amp or the crossovers, we don't yet have the equipment to properly debug this – were performing pretty poorly concerning bass.

The fix we have going right now is using the rear pair of the amp with that nebulous "Super Bass" thing yanked to 12dB as well as turning the bass to 100% in the OS eq included with FreeBSD.

We can get pretty decent sound with this, but it's a really bad "solution" as we only have two knobs to twiddle and both are simply "bass" without differentiation of which frequency bands actually get boosted how much.

What this ends up doing is the following:

  • boosting some but not all frequencies twice
  • boosting some frequencies only once
  • boosting some frequencies that shouldn't be boosted
  • not boosting some frequencies that should be boosted

To fix this, we will soon integrate Behringer BEQ700 bass equalizers. This will enable us to boost the frequencies we need boosted by the specific amount needed and also help us figure out what frequency bands are a problem for the current equipment – not only a better fix but also the first step in figuring out what's causing this lack of bass.

Additionally, for the backpack-compatible configuration, it seems like the Eminence Beta 8A might have been the wrong choice of woofer since it effectively only reaches down to 80Hz.

Looking at the resistance/impedance curves of different woofers, it seems like amplifying bassy frequency ranges is inherently needed, if you know more about that, feel free to drop a comment down below.

With all of this, we still need to get more equipment and do more testing before we can make any concrete statements. Also, most of these problems will be easily solvable once we do our filtering with DSPs.

Don't underestimate costs for components other than the drivers

Initially, we tended to assume actual speaker components, i.e. tweeters and woofers to make up virtually all of the budget we had to allot for this project. This turned out to be an extremely wrong assumption.

We initially allotted 600€ for the implementation of the small configuration. With 49€ for each tweeter, 85€ for each 8" midbass woofer and 138€ for each 12" subbass woofer, we came out at 544€ for the bare components. This might even have worked out if we immediately went for the DSP + DC amp board route, but with the interim car amp solution we needed to buy a pretty big car amp up front, get a PC power supply to be actually able to run it and get hardware crossovers as well. Then of course there was wood, cables, workshop use, glue, resistors for the L pads and various other small things.

All in all, we used around 580€ of the budget just to get the backpack-compatible version working. And we still need to get the equalizers for more well-rounded sound.

We currently estimate that to get to the small configuration, we will need to put in another 600€ – tho that also factors in that we opted for more expensive 12" drivers for the subwoofers since we can't afford to build both in the same month anyhow.

We hope that when we approach the DSP + DC Amp boards thing and the medium configuration, we figure out some ways to make the whole thing cheaper yet.

Roadmap

So, we got a first setup up and running – where do we go from here?

Well, as we're in the habit of dreaming big, we of course have a bit of a major concept queued up.

First of all, May will bring the equalizers as well as the first subwoofer. This should™ give us a pretty well-rounded sound with the interim amp & crossover solution. The subwoofer is planned to use a THAM12 "tapped horn" enclosure. If we actually do get good sound out of this, we're also planning to create CAD models of the tops and woofers in that month, as well as putting together the first version of a complete build documentation to allow people to reproduce the setup.

June will be when we do battery power, hopefully outdoor testing and possibly also start work on the custom backpack to actually lug amp, batteries and tops around without using our hands.

After this, things get more nebulous. Of course the second subwoofer will come at some point, but more importantly, this is when we want to start experimenting with DSP and DC amp boards.

Our end goal is building a 19" rack component with a whole bunch of connectors for extension cards holding one DSP and amplifier each. This component should be connectable via USB, acting as USB soundcard but also allow setting DSP and amplification parameters on the fly and without shitty proprietary software.

By the time this is done, hopefully the market for ADCs will have recovered a bit so we can add one or more input channels for measurement mics. This will enable the final planned form of this system: One with the ability to automatically adjust audio filtering to optimize sound and elminate room modes at the push of a button, in any environment.

Go to rave location. Throw up speakers. Push button. Perfect Sound™.

That's the plan. Feel free to accompany us on our journey there.