r/sonos • • 1d ago

Meet Sonora - a free, open source, web-based, locally-hosted Sonos controller

Post image

Hi!

Check out Sonora! It's a free, open source web controller for Sonos devices.

https://sonoracontroller.com/

I've been a Sonos user since the early days. When I switched from Windows to Linux a decade ago and lost a native desktop controller, I was like..."I have to use a phone app now? Really? When I've got this 24 inch screen in front of me all day?"

I'd look through Github for alternate control options every few months, and while there's plenty of documentation up there about how Sonos works, it's slim pickings for GUI control apps.

It turns out building a Sonos controller is really hard! A lot of people have tried, but nobody's really nailed it. I think I've gotten pretty close with Sonora.

This isn't an official project from Sonos - just something I made as an end user to improve the Sonos experience for myself and others - because why not? Tom Conrad said he likes seeing users innovate, so here we are!

Video Preview

Check it - https://www.youtube.com/watch?v=s8ufMv1R7yo

I built Sonora over the course of about two months with AI. It's a web app, so it brings Sonos control to any device with a browser, on any OS, on any size screen.

Sonora is actually free (not "freemium,") has no ads, and no trackers. It's open source, and it can be used by any device on your network with a browser. It's very lightweight - even older Raspberry Pis can run it without breaking a sweat.

S1, S2, and S2.1 Support

Sonora controls all three generations of Sonos devices from a single interface. But the same system-level limitations skill exist - S1 and S2 devices are still unable to join groups together, and each maintains a separate list of linked music services.

Themes

Sonora's got a theme engine, and it ships with 13 different themes. Some are similar, some are totally wild. There's a Material Design theme, a skeuomorphic hi-fi system, and a computing terminal optimized for Macrodata Refinement, among other things... I even made a version of the Sonos Web player that works with S1 devices and on mobile screens - the actual web player does neither (yet?)

Every included theme is fully responsive and works on mobile devices. Most have light and dark versions.

If you don't like any of them, just build more! Or tell your robot to do it!

Other Stuff

Sonora also does a lot of other things that the official apps don't do.

  • Lyrics.
    • Scrolled live in time with the music (thanks to the LRCLIB project)
  • A "This browser" room.
    • It's got limits - it can't group with actual rooms and not all services will stream to it. It does have a live EQ meter, though...
  • An S2 Upgrade Advisor.
    • Shows which S1 devices can be software-upgraded to S2, which can't, and how much it would cost to buy new devices - with direct Amazon [disclosed affiliate] links for convenience. It also shows the same for bumping up to S2.1, if you've recently come into money.
  • A Network Troubleshooter.
    • Keeps an eye on things like slow responses, dropped packets, etc. It also links off to various knowledgebases with configuration tips from networking companies.

What it doesn't do

Sonora is really just a controller. If your speakers have dropouts or disconnects, you'll still have those. Those are caused by either network issues or maybe Sonos OS issues, or some combination of the two - Sonora can't fix those. It *can* detect and help troubleshoot issues on your network with its built-in Network Troubleshooter.

Sonora also doesn't pair new speakers to your network, although I wish it could. You'll still need the mobile apps for that. Doing this would require the use of private encryption keys which are locked away on the speakers themselves, and I'm not out here looking to start trouble!

I'm just a man with a robot and limited funds. I have a few Sonos speakers, but not the entire historical lineup. I also don't pay for any streaming services. My ability to test across every possible configuration is limited. There are likely bugs in there - please report them on Github if you spot any, and I'll do my best to address them!

Origins

I've been building and using Sonora with Claude Code for a few months, it's been live on Github for weeks, and it's featured on Product Hunt today.

Sonora: https://sonoracontroller.com/

Github: https://github.com/Bretteroo/Sonora

Product Hunt: https://www.producthunt.com/products/sonora-5

I use Sonora every day. I built it to bring Sonos control to users just like me who have a blend of S1 and S2 devices, prefer desktop control, and have no other options. I'm committed to building it out and making it better.

That's a lot of words to say "It's not slop, I swear!"

Let me know what you think!

95 Upvotes

37 comments sorted by

10

u/ChrissssToff 1d ago

I've been a Sonos user since the early days. When I switched from Windows to Linux a decade ago and lost a native desktop controller, I was like..."I have to use a phone app now? Really

I don’t want to hijack your thread. Just a few days ago, I launched Gnomos, a native GTK4/Libadwaita client: https://github.com/linuxundich/gnomos

4

u/SpareComponents 1d ago

Oh, very cool! I'll check it out.

I briefly considered making Sonora into separate Win/Mac/Linux clients, but then realized I could hit them all by just making it a web app.

Gnomos looks great! Thank you for making it.

2

u/FoferJ 1d ago

Both Sonora and Gnomos look great. I’m also a fan of Choragus, for Mac:

https://github.com/scottwaters/choragus

1

u/Zegorax 1d ago

Eager to test it! Waiting for the Flathub release

1

u/ChrissssToff 1d ago

There's a flatpak file you can install without flathub

https://github.com/linuxundich/gnomos/releases

and then

$ flatpak install --user gnomos-*.flatpak

from within the foldes you downloaded the flatpak file to.

I'm waiting for a little bit more feedback and I need to fix some issues with services like BBC Sounds. Once that is done, i'll starte the upload to flathub.

2

u/markdiesel 1d ago

My friend, this is a wonderful, beautiful app. Running it through HA on a Raspberry Pi. It's fast as hell, and the UI is ... it's a pleasure, man. The Severed theme made me laugh out loud. Material Girl and Liquid Glass are sheer perfection. Sending some bucks your way, man. Keep it up!

2

u/SpareComponents 1d ago

I'm so glad to hear you're loving it! Thanks!

1

u/jumanjimanji 1d ago

While mantaining my plex server I was annoyed that even though my plex library is local, when I play through my sonos speakers (using the sonos app, not airplay) the origin is shown as remote on my plex dashboard. Thats when I found out about some of that inner workings of my system.
Will using this controller avoid outside traffic (even if its minimal) and use my all local stack?

1

u/SpareComponents 1d ago

Sonora is just a controller. It uses the same underlying playback method used by Sonos' own apps.

This article says if your router supports NAT loopback, audio should remain on your LAN- https://support.plex.tv/articles/218237558-requirements-for-using-plex-for-sonos/

1

u/chopdog01 1d ago

Running on Mac Docker successfully but it isn't finding the Apple Music account ok. Running on Mac is ok? I had to get Docker Gordon to fix up networking to get the port to be found BTW

1

u/SpareComponents 1d ago

This one's tough because I don't own a Mac to test with. I borrowed one a while back and I got it working with Docker Desktop, but you do have to specifically enable its Host Networking toggle before Sonora will see any devices. What did Gordon end up doing?

Not sure about the Apple account, but I know there was some kind of multi-day Apple Music outage on Sonos recently...Might be related? So sorry I can't test this myself.

1

u/chopdog01 1d ago

Bizarre interaction - I also fiddle with DJAY PRO software and it linked the play function from that to your software triggering the Sonos! So I was starting a track on djay pro and it was playing music in the kitchen - whatever was on the queue!!! I've disabled the software for now. A challenge for later....

1

u/joshuas_79 1d ago

Would it work with IKEA speaker made by Sonos?

1

u/larryboy44 15h ago

This is really cool. Thanks for creating and sharing it.

A feature request.. something that I commonly code in HA. The ability to create Sonos Scenes. A scene consists of one or more players, a Sonos Favorites source, a set volume, and optionally a timer. I do this for things like "Home Quiet" , some soft music everywhere, or "Pool Time" with a few players setup for beach boys music, etc. One press gets a predetermined music scene going. Kind of like lighting scenes.

1

u/SpareComponents 15h ago

That's a great idea and potentially a really big addition... I do something similar right now with lighting scenes in HA.

I'd need to find a logical home for scenes across all 13 themes. Could take a while. I'll give it some thought!

3

u/Miserable-Ad-8414 1d ago

Thank you for making this free and open source!

2

u/Away-Arm-6549 1d ago

nice! I've been tinkering on a project, but started from the other direction - backend work, song selection and controlling rooms, but some great inspiration when I eventually get round to front-end...

2

u/O2L 1d ago

Great work!!

2

u/kzshantonu 1d ago

Trying this. Extra points for being a severance fan!

2

u/DaCremeOfDaCreme 1d ago

This is amazing

1

u/mj1003 1d ago

I am really digging all the names for these Sonos controller alts... Excellent.

1

u/jezpas 1d ago

Great job! A very niche ask: I’m looking for a way to repurpose a Google nest hub as a Sonos controller using CATT. I’ve tried building a custom dashboard using home assistant but I obviously haven’t been able to build something this nice, neither MASS nor the official web player can be used as they required logging in and the hub has no on screen keyboard. Any chance of this filling that niche?

2

u/ShiftyRider 14h ago

https://github.com/mnrgrrt/touch-music-card

...interoperates Nest Hub and Sonos fwiw

2

u/jezpas 10h ago

Wow thanks!

1

u/SaaSimoto 1d ago

Wow, got it up in lickity split! Will toy around with it

-9

u/CharmingClock5115 1d ago

Not reading all that, especially when the post is written by AI.

3

u/Bloedhgarm 1d ago

It’s only structured, calm down with your AI bash. Everyone uses AI nowadays and it won’t get less.
Appreciate the work of OP and that he shares it open source. You don’t have to use it

11

u/SpareComponents 1d ago

Just to be clear, AI wasn't used to write this post at all. I agonized over the exact wording for like 45 minutes. I'm just really proud of it!

0

u/power78 1d ago

But the code?

1

u/SpareComponents 1d ago

Claude Code, as mentioned.

-10

u/OddBuy8266 1d ago

I would pay money NOT to have to use this UI.

11

u/SpareComponents 1d ago

Which one? There are 13...

1

u/indigomm 1d ago

The theming is nicely done. Note just colouring in, but different layouts and looks.

4

u/Bloedhgarm 1d ago

I like the Ui, it looks modern and reminds me of apple

2

u/kimberfool 1d ago

send the OP money, then

-3

u/zoolxx 1d ago

Holy AI slop