Wednesday, February 27, 2019

MYWIFIHIFIBIPI (Wi-Fi and bluetooth playing bi-amped hi-fi system based around a raspberry pi and 5.1 receiver) or: Another abandoned project

I first was given my aunts old Onkyo TX-SD696 5.1 receiver. Then I found a pair of JBL ARC 1000's on the local classified ads. Then I went crazy.

See the rub was that several reviews of the loudspeakers mentioned that they really shine when bi-amped. I did a little research and learned what that means and that most people who think what that means don't actually know what that means.

Since I can't help but show off my new-found knowledge I'll share it. Bi-amp, etymologically just means 2 amps, but there are bountious ways to use 2 amps incorrectly. Bi-wiring is an orthogonal idea where you run 2 lines (4 conductors) instead of 1 (+- only).  You really need both to gain any advantage AND you need a preamp crossover. This is where the real advantage is to be gained: by allowing the amps to focus on amplifying their respective audio band (woofer or mids & tweeter) without the other band taking any headroom. Also the amp drives the horns directly without the other drivers electrically coupled in. The passive crossover is still there, but since all the content managed by each amp is in the passband of the channel its driving, it shouldn't have much any effect on phase or amplitude of the signal reaching the speaker. I'm not an audio expert but that jives well with the signal processing & circuit theory I learned in school. Interestingly they say these crossovers are always active, though I don't see any reason why they HAVE to be (as long as your input source has enough oomph).

Since its probably a stereo system (though I did recently acquire the traditional mono version of Pet Sounds) you actually need 2 crossovers, 4 amps, and 8 wires (4 +- pairs)! Not to mention you need speakers with 4 posts on the back and not just 2.

Well, with these new (to me) speakers, the 5.1 receiver, and some salvaged speaker wire I have most of those things. I don't actually have 4 amps, but I have 5 amp channels, which I can utilize.

What about the crossovers?!



Well, first I needed to identify where the crossover point was, else you'll send information to a channel that will get filtered out by the passive crossover in the loudspeaker. Well a quick look at the manual says the sub and mids are separated at 930 hz. So now I just need an inexpensive crossover at 930 hz....

Still looking...

umm...

Nope.

I did a lot of searching for a lot of keywords but "active crossover" was the only thing that brought the right idea. After searching Linkwitz-Riley (a crossover filter design) I found 1 product on amazon that would do what I needed, but it would more than double the cost of the project and it only had 100hz resolution. There were many others that were even more expensive or near the same price that I didn't look at much, and there were many cheap crossovers that are just not anywhere close to the frequency I need, but nothing cheap seemed like it would work. I toyed with just designing my own and trying to build it out of spare parts (since it only deals with the pre-amped signal, it doesn't need the power capabilities of those built into loudspeakers), but that seemed like more work and more prone to error/mismatches due to part tolerances etc.

So (perhaps unsurprisingly) I turned to software. I could just use a raspberry pi zero W with a usb soundcard that uses an optical link to the receiver which is a win on many fronts:
1. Arbitrary crossover cutoffs, and easily interchangeable filter designs.
2. Optical connection uses a plastic cable eliminating any ground loop concerns
3. It can serve as a bluetooth receiver (I do a LOT of listening streaming bluetooth from my phone).
4. It can serve as a wifi controlled DNLA renderer allowing me to play any files on my media server without my phone's lousy bluetooth connection, but still controllable from my phone.
5. Possibly might be able to stream spotify directly on the device, again skipping my ageing phone's processor.
6. Cost comparable to the cheaper options for hardware crossovers
7. Better hacker blog cred. I guess.

I looked at some other alternative SBC boards, but it seemed the pi zero w was the most cost effective and well supported.
That said though, after some discussion with the Mrs. I decided to combine this with another project and upgrade from the zero to the full pi 3 model B, which has 4 cores and a  faster clock. This should allow for lower latency with the same filtering, and then we can play some video games on it on occasion too. This makes it more an HTPC than a dedicated audio streaming device.

I also gave up on this project because the blueooth audio streaming didn't workout on the pi, nor did the games (no openGL ES support in the game engine). Now I just use the speakers with single wiring because misusing the 5.1 for bi-amping meant I had to disable the EQ for the front channels and it just didn't seem worth it. Its nice to just have a quick knob to crank the bass or treble. I could still do the pi as a crossover, but I'd have to connect my TV and blueray player audio to the pi.
I just posted this for completeness.

1 comment:

PipeManMusic said...

Interesting post, sometimes it's the projects that don't work out that we learn the most from.