from one_knight_scripting@lemmy.world to selfhosted@lemmy.world on 26 Mar 16:46
https://lemmy.world/post/27420398
Hey Self Hosted!
Got a shower thought I wanna bounce off youse guys. It’s half-baked but itching to become real: DIY Sonos-like surround sound using Raspberry Pis (or maybe other SBCs if Pi’s not cut out for it). Need your brains to kick things off!
The Vision:
Server Pi
- Acts as the brain. Takes 5.1 audio input from the TV (SPDIF? HDMI? Still figuring that out).
Client Pis
Wireless speakers running balenaSound or similar. Each handles a specific channel (front left, rear right, etc.). I do picture each of these being connected to a amplifier board. With some fancy wiring to give Raspberry pi voltages and power required for the amplifiers. (Something like this: a.co/d/fwkXuCm)
The Hurdles:
5.1 Audio Input
Can a Pi even handle 5.1 audio input? Do I need a fancy sound card/HAT? Or should I ditch the Pi for something beefier?
Channel Remapping Sorcery
Wiring all speakers the same (e.g., left channel only) but using Linux wizardry to assign which channel each speaker plays. Like, plug in a “rear right” speaker, tell the Pi “yo, you’re rear right now,” and boom—it works. Possible? Or am I dreaming?
Why? Swapping speakers without rewiring = less headache. Plus, modularity.
First roadblock: Getting clean 5.1 into a Pi. Second headache: Software channel routing.
Anyone tackled something like this before? Am I reinventing a wheel that’s already on fire?
Edit: I think I may actually have found a solution even cheaper and I intended. Has anyone here ever heard of WiSa? Long story short it is a solution for Wireless Audio Cinemas. Mostly it is used in very expensive speakers, I’m talking like $5K USD for a whole system. However. I have found a much cheaper solution: a.co/d/fXkaMEX. This would be a good starter point for me because the server side already does everything that I want it to. The client side(speakers) are just about there… But I want to see better drivers and amplifiers. If I were to purchase this, I would use it as is initially, but eventually cannibalize the WiSa adapter, attach it to a strong amplifier, and mount the result in a better set of speakers.
threaded - newest
@one_knight_scripting Don't forget about latency and keeping speakers in sync with each other and the TV. It's surprisingly hard, even on a flat, local, wired network.
I haven't tried this in a few years, but my last attempt made me appreciate the simplcity and reliability of a speaker cable. 😅 I'm eager to hear experiences from you and from others, because it would absolutely be cool!
Well… From the very small amount that I’ve gathered from balenaSound, timing is mostly handled. If the software I want to write for it becomes a thing, then the Server PI will have a microphone to detect how much latency there is and adapt. That is a step way down the line though.
Biggest hurdle would be timing, if you want it sound right… Every speaker should be in sync as much as possible
Balena sound was the first thing to come to mind. I’m not sure if it’s still being worked on but it seems to do the trick.
Snapcast might fit the bill, not sure about the 5.1 bit.
Does multi room sync
If you don’t want to worry about latency/etc - you should consider doing it with lasers 😈.
youtu.be/1H4FuNAByUs
Straight up, that is awesome. I absolutely love it.
I don’t know how he comes up with his ideas, but they are all pretty phenomenal and novel. Great channel to subscribe to for some creative fuel every once in a while!
This is a cool idea! This sounds a lot like what DANTE and AES67 or AVB are used for in pro audio (mixing console sends multichannel and outputs can subscribe to one or more channels), maybe they have some ideas on timing sync which I think would be the hardest part as others have said, it is crazy how small of a jitter your brain can hear.
Pi's built in audio is terrible. Even if it works you will want a better audio interface. The PI only has digital inputs (I think there is a mic input), so you need something to get audio in. If you can get the digital audio that is best, but often that is behind encryption and so you end up with analog inputs. (I'm not sure what the options here are, worth looking deeper).
Once you have the audio in, there are a number of Jack (which port audio supports) to network low latency products that will work. Configuration will be hard but that is something you only do once. (configuration is hard because almost everyone who uses this wants a different complex setup and so there is no way to make it easy in a way that would help anyone else)
Look at www.picoreplayer.org using some sort of dac for the raspberry pi. Something like www.hifiberry.com or raspberrypi.com/…/iqaudio-is-now-raspberry-pi/ . Easy to install, works pretty flawless and with LMS server can be used as a single full home audio or play zones independently. Not sure if it can do the single speaker type syncing but you can set one left and the other right and sync them to play a single audio source. The only thing I have not done is take an input from a device like a tv as stream source.But with a pi that has bluetooth you can use bluetooth as an input and stream to all other pcp devices in your network. I use raspberry pi 4 1Gig memory with an external poe injector which simplifies powering them and gives consistent network. But 12v input from a power outlet and wifi works well enough in some spots too. It is essentially as close as you can get to plug and play squeezelite as I have found
Interesting. One other option is to use OrangePi for the server. OrangePi has ARC over HDMI and that would count as an input.
I did choose the WiSa surround sound system linked. I’ll cannibalize it later to make better speakers. I like it because it is audio at 24 bit/96kHz. It also just uses the HDMI ARC.
Radio signal(I’m a comm/nav aircraft mechanic, I had to know):