The real business reason behind the decision is to push people towards streaming services to please those vendors, out of fear that those with large libraries attained those libraries by illegally pirating.
Such as? What pitfalls?
For speed purposes as well, the chosen approach was considered the most suitable back in the early 2000s.
1) SMB 1.0 is horrendously outdated
2) index file is not required
There is also a big contradiction in your line of reasoning: the advantage of setting a playlist and let it play even if the phone dies applies to local content only.
If I set a playlist of local content on my phone, then my phone dies, goes out of range, is destroyed by aliens or whatever, the Sonos speakers will still play that playlist even after losing connection to the phone. Is this correct?
How about a playlist from Tidal or Spotify? If I make one on the go, or load one I had previously saved, will Sonos continue to play it even after the phone dies or goes out of range?
As to the original query "why do speakers index music?", the origins of this architecture have already been explained by a Sonos representative. Speed -- time to music -- was a key driver. There's a major difference in response time between fetching a few kB or MB of index from RAM, and having to potentially retrieve, collate and sort metadata from up to 16 separate network storage locations (Sonos supports up to 16 shares), many of which could have spun disks down when idle.
But come one, how many people have music across 16 shares, but not enough to breach the 65k limit?
It seems it mostly comes down to Sonos' decision of having a player-based, rather than server-based (like Roon) or controller-based (like Chromecast) solution.
Clever theory, except the limit existed long before streaming services even existed, and was actually increased after Sonos added the first streaming service, not decreased. Nice try, though.
It has nothing to do with speed - that is a lie. It is bad software, plain and simple.
Blah, blah, blah, stuff about SMB.
Blah, blah, blah, stuff about SMB.
The app contacts the players, and pulls the index every time. It's a small html file that's text only.
I'm not sure I am following. "It" is the index? By 'remotely' you mean on the phone or PC controlling Sonos?
How do all the competitors that do not store indices on the speakers manage it, then?
This is a really easy problem to solve. Not sure why Sonos doesn't address. Network share paths can be stored on the controller app (rather than full library metadata). An active playlist , can also be stored on teh speaker, with the necessary metadata, to ensure a controller app going offline doesn't interrupt playback. [...]
Hey, another idea - open source the non-proprietary code for the app. This would allow the community to contribute rather than just complain...
Hey, another idea - open source the non-proprietary code for the app. This would allow the community to contribute rather than just complain...
I was not aware. Thanks for raising. I did a quick search for 3rd party android apps a couple fo days ago and came up dry. Are you aware of any poweamp type players that work with sonos?
Thanks