Split Channel Stream


Hi All,

Im receiving my stuff today to create the DIY SONOS speaker.
My question is, im planning on creating mono speakers, so a pi per speaker.
Can we split the audio stream and stream left and right channel separately to speakers? like the SONOS “Stereo Pair”?




Assuming you can (not sure how myself), how will you keep them in sync?


not sure how SONOS does,
if it aint possible i just need to live with a bit of overhead on traffic and connect one speaker to the left output and one to the right output :smile:


If you are using a pi per speaker have a look at snapcast to keep it in sync -but you will still need to split the audio, not sure what kind of audio card you are planning on using.


Actually Yeh if using snapcast you can send the same stereo stream to both remote pis and then just mute the side you don’t want on each pi.


not sure yet. i have bought myself a RPI0 to see if it is fast enough otherwise i have a RPI3 laying around.
I would like to go for the Allo Piano 2.1 because it has a programmable DSP in it (so i have a crossover for my 2 way speakers). but it is not available for the RPI0, but assuming it only uses the voltage, ground and i2c pins i can wire it myself i guess to make it work.


but muting still has overhead on my network stream right?
so then it doesnt make a difference if i use LR audio or L with R muted or R with L Muted.


Yes but if your network can’t handle small amount of data that then I think I’d try improving that first.

I guess it depends if you want mono at both speakers or a single stereo channel at each one. It’s not the same thing.


Well network bandwith is not going to be a significant problem, got plenty of AP’s hanging around the house but why having double data while we can be able to reduce overhead.

but to answer your question. i want split stereo, not mono. so stream left stereo channel to speaker 1 and stream right stereo channel to speaker 2

this is what sonos uses: https://sonos.custhelp.com/app/answers/detail/a_id/1077/~/creating%2C-separating%2C-and-placing-a-stereo-pair


when i pick up my stuff today ill start exploring snapcast! thanks for the tip


I’ve found both pi0w and rpi3 are suitable, most important thing is a very good wifi connection otherwise you will get dropout’s.
I’m running mopidy, snapcast and homeassistant on a rpi3 sending it to 5 different rpi around the flat and it’s very good.
I did find the pi0w struggled with homeassistant, but ran mopidy, snapserver and snapclient to 5 outlets quite well.

If looking into snapclient check out homeassistant as well, it’s fiddly to set up, but integrates very well.


I only want to use the pi0w as client.
i can virtualize the server system, or run it on another pi.


If you deinterlace the stereo stream into two independent left and right streams on the source pi then snapcast can’t sync between them. I also didn’t think it is currently possible for a snapcast client to request just one channel, but I might be wrong there since you can imagine that being a good feature for exactly this sort of setup. Either way, if you want to get something working as a proof of concept then I would start with simply muting the channel you don’t want at each sink pi.


that was more or less my plan already.
since im not connecting left and right on the same speaker i dont even have to mute it :slight_smile:
but thank you so much for the help so far!


An excellent point. Do let us know how you get on.


I will! thanks so far!


Start is there,

Going to install my Pi2 which now runs Domotocz with Home Assistent, my Pi3, with SnapCast and Mopidy as ‘Bridge’, also installing babeld to be able to create private mesh network for my speakers, and use the Pi0W with Mopidy SnapClient and participate in the wifi mesh network. Also going to run ECASound to us the Left and Right Channel from the Allo Boss MINI to be a low pass output and high pass output instead of left and right.

unfortunatly only they pi and the speakers are in so i can only setup software so far


May I ask what’s the advantage of the mesh network?


ofcourse you may,
For me the advantage is that i have a separate network for my audio (so it won’t pollute the WiFi AP’s with audio streams)
and it provides me with a greater range, since every speaker(node) is a access point for other nodes.
For me the isolation is the most important thing. The mesh thing is just a feature for future use but i would like to experiment with it.

My actual goal is to create a SONOS like solution but with lower cost and better quality. TBH, the SONOS speakers sound OK-ish, not good.


i’m alos curious, is there a way to create multiple snapcast server ‘channels’ so speaker 1 and 2 in room 1 can connect to snapcast server channel casting spotify, speaker 3 and 4 in room 2 can connect to snapcast server channel casting a internet radio?

or do i need an instance of snapcast server for each thing to cast. if thats the case i can make every speaker a snapcast server and client and group speakers in a room based on that (but theni still need to find a way to control the speakers and let them connect to the right snapcast server :P)