Open pascalopitz opened 7 years ago
Can we checkout where this is under development?
How do you plan on integrating this specific function? I just created a java program indexing my music files and upon request hosting the file in a shared network folder to be able to play them back on sonos devices. While working this seems like a lot of hassle though and I look for a better solution.
@KilianB i would suggest not indexing, but simply listing the folder structure. The user could then just play a single file, a folder, or add a file or folder to the playlist?
@eitch I indexed the music files in order to be able to search for artists, album names, title etc. (Info taken from the id3 tags). I haven't taken a look at how this specific library plays back files but as for the dependency I currently am using https://github.com/vmichalak/sonos-controller music files have to be supplied as URI which sonos speakers have access to (a shared resource on the network or internet). Therefor playing back files wasn't as trivial as I first though. I haven't taken a look at this repository though. Maybe node or electron is doing the entire work already.
Ahh, ok, that makes it a bit more interesting. A first thought would be to simply start a simple HTTP server locally (this is trivial in Node, no?). Then create an URI which points to this local server and the server knows then how to handle the URI request to stream a local file. I'm not familiar with the streaming specifics, so i'm not sure if just passing the file to the client as a FileStream would suffice.
@KilianB I was investigating indexing as well ... problem I hit was that the available node packages were slow. Then I haven't looked at it in forever as well ... Maybe I could bundle your java service or at least have a look at it? Is it on github?
It's in a private repository at the moment. The first index run for 8235 files on a network drive takes roughly 5 minutes. The information is saved into an embedded SQL database. Subsequent runs, just looking at the delta, take roughly 15 seconds. I can upload it later this week if you wish but I am not sure if you can easily integrate it into node though.
Node maybe not, but we could investigate if it's something we could bundle with electron. AFAIK it can include other binaries.
Hi, it's been a while. How's progress?
Recently Sonos has been requiring that people update their Sonos to the latest version which has the code for implementing (the dreaded) Alexa. I refuse to update my perfectly working Sonos with this (in my opinion) malicious software. Really hoping to see something develop with local music library playback. Right now I can only use my Sonos with Spotify. I appeciate this unofficial controler though! Thanks for all the work on this!
I don't know how I forgot about this issue. I am really sorry. Hopefully this weekend I'll upload a small sample application showing how we can playback local music files. I threw together a small demo player to demonstrate the procedure. (just need to populate the table with the indexed files and it's ready to be uploaded here (maybe later today more likely tomorrow).
The overall procedure:
Took a bit longer than expected but here you go:
Here is a small example how to play back text to speech on any speakers. Which basically plays back a local file but leaves out all the gui parts as well as indexing. Probably a good way to start. https://github.com/KilianB/Java-Sonos-Controller/tree/master/src/main/java/com/github/kilianB/example/voiceToTextPlayback
Maybe time to roll a release?
@davidpgil A release with no proper pull request?
@KilianB Great work. I did have a look through that, but right now have no time to integrate it into the player. I'd be keen to not mix JS and Java tbh, but most of it makes sense from a conceptual POV. Interesting that you use a SQL DB ...
I just noticed that the sonos controller allows to add local folders to the music library. Not sure how this is managed but maybe sending the correct upnp events and hosting the files is all that is needed. Maybe we don't need the indexing?
Take a look at the mdns and http requests, especially the content directory event.
Someone would need to investigate what exactly is going on there, I on my part do not have time to do this anytime soon.
Maybe time to roll a release? To be honest the code I have posted is a big mess and would take at least a few days to integrate into this project. Different language, just partially created so it "works".
I am not sure if I really like the SQL database. Indexing music files, the way it's currently done is pretty expensive and should not be done multiple times if not necessary. A persistent storage is a must. On the other hand SQL queries in the source code look tedious. It is great to map relationships between interprets album and tracks, but a database works well if you hit it to request data, in my case most of it is kept in memory all the time and just used to store it between the runtime instances. It is a design decision which shouldn't be taken lightly.
@pascalopitz nevermind, i didnt realize this was not done yet.
Was there any progress on this one?
Thanks!
I didn't do any additional follow up on this so far.
Why not use an integrated express webserver (or even the standard node http server), hosting the mp3 dynamically? Then you can add the local url like http://ip_of_local_computer:8000/music/mp3_filename.mp3
as long as it end with .mp3
Sonos will just allow you to add it to any playlist, no indexing required and no messing around with some file share.
@svrooij The serving of the file isn't the problem here, but the generating an index and displaying that so that it integrates well with the browser panel, displays album arte etc.
That said, having played with Electron for a bit now, another measure we could take is a system file browser, select file, play. That would be very easy to achieve.
The other thing I would be concerned about is making sure to only serve music files and info about them, as this is a bit of an attack vector onto the local machine otherwise.
Ok guys n gals. I have implemented a version without indexing, which basically just serves up folder contents. Still pondering what to do about the search. Anyone want to check this out locally and give it a quick test for feedback?
https://github.com/pascalopitz/unoffical-sonos-controller-for-linux/tree/local-music-server
I'm getting a 404 upon clicking on your link.
Yes, sorry, the branch was removed, as this is now rolled into the new alpha releases. v0.2.1-alpha1 implemented a local music server and a local smapi compatible service visible in the browser panel. In v0.2.1-alpha2 I have added a local file indexer and a text search.
https://github.com/pascalopitz/unoffical-sonos-controller-for-linux/releases/tag/v0.2.1-alpha2
I just installed it and pointed it to my massive folder of music. So far it does not seem to work for finding my local music. 1) I go to "On this Deviceu" > "Set Local Music Folder" 2) I select my music folder which is in "/home/username/Audio/Music" 3) I go to "On this Device" > "Enable Local Files" 4) I go to "Library" >"Start Indexing" and wait 5) I go to "Select a Music Source" and click on "On this device" 6) Nothing happens
Ok, so "Library"->"Start indexing" issues an indexing request to the music library connected to your Sonos devices, i.e. a network share.
Selecting your music folder does fork a local indexing process inside the electron app.
Even without that you should be able to browse the folder structure of your music folder via the "On this device" source. If that doesn't work for you, I am not sure what could be amiss.
How have you installed the app? What OS etc are you running? Can you fire up the process via command line and see if there's any meaningful output like error messages?
Can anyone else give this a try and report back please?
I am moving this weekend, so my network is in pieces currently. I'll try it out early to mid next week and report back!
How have you installed the app? Deb file installation.
What OS etc are you running? I'm using Trisquel 9 -- based off of Ubuntu 18.04
Can you fire up the process via command line and see if there's any meaningful output like error messages?
username@mycomputer:~$ sonos-controller-unofficial
Gtk-Message: 19:23:20.016: Failed to load module "canberra-gtk-module"
Gtk-Message: 19:23:20.016: Failed to load module "canberra-gtk-module"
Gtk-Message: 19:23:20.016: Failed to load module "topmenu-gtk-module"
Handle new path /home/username/Audio/Music
Server starting
events.js:200
throw er; // Unhandled 'error' event
^
Error: listen EADDRINUSE: address already in use :::13453
at Server.setupListenHandle [as _listen2] (net.js:1306:16)
at listenInCluster (net.js:1354:12)
at Server.listen (net.js:1442:7)
at Application.listen (/opt/sonos-controller-unofficial/resources/app.asar/node_modules/koa/lib/application.js:82:19)
at startServer (/opt/sonos-controller-unofficial/resources/app.asar/localMusic/server.js:610:16)
at process.<anonymous> (/opt/sonos-controller-unofficial/resources/app.asar/localMusic/server.js:638:7)
at process.emit (events.js:223:5)
at emit (internal/child_process.js:876:12)
at processTicksAndRejections (internal/process/task_queues.js:82:21)
Emitted 'error' event on Server instance at:
at emitErrorNT (net.js:1333:8)
at processTicksAndRejections (internal/process/task_queues.js:81:21) {
code: 'EADDRINUSE',
errno: 'EADDRINUSE',
syscall: 'listen',
address: '::',
port: 13453
}
Okay, that looks like the port for the local server is taken by another process.
Can you do lsof -i :13453
That'll tell us what process. I might either make it configurable or alternatively select another port.
On Fri, 10 Jul 2020, 08:57 davidpgil, notifications@github.com wrote:
How have you installed the app? Deb file installation.
What OS etc are you running? I'm using Trisquel 9 -- based off of Ubuntu 18.04
Can you fire up the process via command line and see if there's any meaningful output like error messages?
username@mycomputer:~$ sonos-controller-unofficial Gtk-Message: 19:23:20.016: Failed to load module "canberra-gtk-module" Gtk-Message: 19:23:20.016: Failed to load module "canberra-gtk-module" Gtk-Message: 19:23:20.016: Failed to load module "topmenu-gtk-module" Handle new path /home/username/Audio/Music Server starting events.js:200 throw er; // Unhandled 'error' event ^
Error: listen EADDRINUSE: address already in use :::13453 at Server.setupListenHandle [as _listen2] (net.js:1306:16) at listenInCluster (net.js:1354:12) at Server.listen (net.js:1442:7) at Application.listen (/opt/sonos-controller-unofficial/resources/app.asar/node_modules/koa/lib/application.js:82:19) at startServer (/opt/sonos-controller-unofficial/resources/app.asar/localMusic/server.js:610:16) at process.
(/opt/sonos-controller-unofficial/resources/app.asar/localMusic/server.js:638:7) at process.emit (events.js:223:5) at emit (internal/child_process.js:876:12) at processTicksAndRejections (internal/process/task_queues.js:82:21) Emitted 'error' event on Server instance at: at emitErrorNT (net.js:1333:8) at processTicksAndRejections (internal/process/task_queues.js:81:21) { code: 'EADDRINUSE', errno: 'EADDRINUSE', syscall: 'listen', address: '::', port: 13453 } — You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/pascalopitz/unoffical-sonos-controller-for-linux/issues/14#issuecomment-656398797, or unsubscribe https://github.com/notifications/unsubscribe-auth/AACCK7FXU36V7HKKEGJ45R3R2ZG5NANCNFSM4C2O47OA .
username@mycomputer:~$ lsof -i :13453
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
sonos-con 30174 username 42u IPv6 27698157 0t0 TCP *:13453 (LISTEN)
:hankey: Ok, looks like the spawned sub process is not getting cleaned up properly when you're exiting the program. I'll work on that then.
Can you kill the process via kill -15 30174
and restart? Does it work then?
Does not seem to respond. I'm clicking "On this device" in the "Select a Music Source Column" and nothing happens.
Is there anything meaningful in the developer console?
Any output when you run the process via command line and re-select your music folder location?
Any output when you run the process via command line and re-select your music folder location?
username@mycomputer:~$ sonos-controller-unofficial
Gtk-Message: 09:12:05.021: Failed to load module "canberra-gtk-module"
Gtk-Message: 09:12:05.022: Failed to load module "canberra-gtk-module"
Gtk-Message: 09:12:05.022: Failed to load module "topmenu-gtk-module"
Handle new path /home/username/Audio/Music
Server starting
events.js:200
throw er; // Unhandled 'error' event
^
Error: listen EADDRINUSE: address already in use :::13453
at Server.setupListenHandle [as _listen2] (net.js:1306:16)
at listenInCluster (net.js:1354:12)
at Server.listen (net.js:1442:7)
at Application.listen (/opt/sonos-controller-unofficial/resources/app.asar/node_modules/koa/lib/application.js:82:19)
at startServer (/opt/sonos-controller-unofficial/resources/app.asar/localMusic/server.js:610:16)
at process.<anonymous> (/opt/sonos-controller-unofficial/resources/app.asar/localMusic/server.js:638:7)
at process.emit (events.js:223:5)
at emit (internal/child_process.js:876:12)
at processTicksAndRejections (internal/process/task_queues.js:82:21)
Emitted 'error' event on Server instance at:
at emitErrorNT (net.js:1333:8)
at processTicksAndRejections (internal/process/task_queues.js:81:21) {
code: 'EADDRINUSE',
errno: 'EADDRINUSE',
syscall: 'listen',
address: '::',
port: 13453
}
Gtk-Message: 09:12:24.672: GtkDialog mapped without a transient parent. This is discouraged.
Error [ERR_IPC_CHANNEL_CLOSED]: Channel closed
at ChildProcess.target.send (internal/child_process.js:678:16)
at Object.handlePath (/opt/sonos-controller-unofficial/resources/app.asar/localMusic/index.js:34:12)
at click (/opt/sonos-controller-unofficial/resources/app.asar/menu.js:302:30) {
code: 'ERR_IPC_CHANNEL_CLOSED'
}
Error [ERR_IPC_CHANNEL_CLOSED]: Channel closed
at ChildProcess.target.send (internal/child_process.js:678:16)
at Object.handlePath (/opt/sonos-controller-unofficial/resources/app.asar/localMusic/index.js:34:12)
at IpcMainImpl.<anonymous> (/opt/sonos-controller-unofficial/resources/app.asar/menu.js:371:26)
at IpcMainImpl.emit (events.js:223:5)
at WebContents.<anonymous> (electron/js2c/browser_init.js:173:7846)
at WebContents.emit (events.js:223:5) {
code: 'ERR_IPC_CHANNEL_CLOSED'
}
Error [ERR_IPC_CHANNEL_CLOSED]: Channel closed
at ChildProcess.target.send (internal/child_process.js:678:16)
at Object.startServer (/opt/sonos-controller-unofficial/resources/app.asar/localMusic/index.js:38:12)
at IpcMainImpl.<anonymous> (/opt/sonos-controller-unofficial/resources/app.asar/menu.js:374:28)
at IpcMainImpl.emit (events.js:223:5)
at WebContents.<anonymous> (electron/js2c/browser_init.js:173:7846)
at WebContents.emit (events.js:223:5) {
code: 'ERR_IPC_CHANNEL_CLOSED'
}
Beginning to index /home/username/Audio
Error: ENOENT, localMusic.sqlite not found in /opt/sonos-controller-unofficial/resources/app.asar
at createError (electron/js2c/asar.js:111:17)
at Object.module.<computed> [as open] (electron/js2c/asar.js:179:23)
at Object.writeFile (fs.js:1243:6)
at internal/util.js:278:30
at new Promise (<anonymous>)
at Object.writeFile (internal/util.js:277:12)
at createIndex (/opt/sonos-controller-unofficial/resources/app.asar/localMusic/db.js:97:37) {
code: 'ENOENT',
errno: -2
}
Error: ENOENT, localMusic.sqlite not found in /opt/sonos-controller-unofficial/resources/app.asar
at createError (electron/js2c/asar.js:111:17)
at Object.module.<computed> [as open] (electron/js2c/asar.js:179:23)
at Object.writeFile (fs.js:1243:6)
at internal/util.js:278:30
at new Promise (<anonymous>)
at Object.writeFile (internal/util.js:277:12)
at createIndex (/opt/sonos-controller-unofficial/resources/app.asar/localMusic/db.js:97:37) {
code: 'ENOENT',
errno: -2
}
/opt/sonos-controller-unofficial/resources/app.asar/node_modules/sql.js/dist/sql-wasm.js:107
function D(a){if(e.onAbort)e.onAbort(a);Ha(a);E(a);Va=!0;throw new WebAssembly.RuntimeError("abort("+a+"). Build with -s ASSERTIONS=1 for more info.");}function pb(a){var b=qb;return String.prototype.startsWith?b.startsWith(a):0===b.indexOf(a)}function rb(){return pb("data:application/octet-stream;base64,")}var qb="sql-wasm.wasm";if(!rb()){var sb=qb;qb=e.locateFile?e.locateFile(sb,z):z+sb}
^
RuntimeError: abort(Error: ENOENT, localMusic.sqlite not found in /opt/sonos-controller-unofficial/resources/app.asar). Build with -s ASSERTIONS=1 for more info.
at process.D (/opt/sonos-controller-unofficial/resources/app.asar/node_modules/sql.js/dist/sql-wasm.js:107:64)
at process.emit (events.js:223:5)
at processPromiseRejections (internal/process/promises.js:201:33)
at processTicksAndRejections (internal/process/task_queues.js:95:32)
Is there anything meaningful in the developer console?
/opt/sonos-controller-unofficial/resources/app.asar/node_modules/react-dom/cjs/react-dom.development.js:88 Warning: componentWillReceiveProps has been renamed, and is not recommended for use. See https://fb.me/react-unsafe-component-lifecycles for details.
* Move data fetching code or side effects to componentDidUpdate.
* If you're updating state whenever props change, refactor your code to use memoization techniques or move it to static getDerivedStateFromProps. Learn more at: https://fb.me/react-derived-state
* Rename componentWillReceiveProps to UNSAFE_componentWillReceiveProps to suppress this warning in non-strict mode. In React 17.x, only the UNSAFE_ name will work. To rename all deprecated lifecycles to their new names, you can run `npx react-codemod rename-unsafe-lifecycles` in your project source folder.
Please update the following components: VirtualList
printWarning @ /opt/sonos-controller-unofficial/resources/app.asar/node_modules/react-dom/cjs/react-dom.development.js:88
/opt/sonos-controller-unofficial/resources/app.asar/ui/services/enhanced/SonosEnhanced.js:85 Object
/opt/sonos-controller-unofficial/resources/app.asar/ui/services/enhanced/SonosEnhanced.js:85 Object
/opt/sonos-controller-unofficial/resources/app.asar/ui/services/enhanced/SonosEnhanced.js:85 Object
/opt/sonos-controller-unofficial/resources/app.asar/ui/services/SonosService.js:417 onVolumeEvent 192.168.1.108 44
/opt/sonos-controller-unofficial/resources/app.asar/ui/services/SonosService.js:407 onMutedEvent 192.168.1.108 false
/opt/sonos-controller-unofficial/resources/app.asar/ui/services/SonosService.js:392 onRenderingControlEvent 192.168.1.108 Object
/opt/sonos-controller-unofficial/resources/app.asar/ui/services/SonosService.js:427 onPlayStateEvent 192.168.1.101 stopped
/opt/sonos-controller-unofficial/resources/app.asar/ui/services/SonosService.js:427 onPlayStateEvent 192.168.1.108 playing
/opt/sonos-controller-unofficial/resources/app.asar/ui/services/SonosService.js:402 onGroupRenderingControlEvent 192.168.1.101 Array(3)
/opt/sonos-controller-unofficial/resources/app.asar/ui/services/SonosService.js:377 onZoneGroupTopologyEvent 192.168.1.106 Array(1)
/opt/sonos-controller-unofficial/resources/app.asar/ui/services/SonosService.js:452 onContentDirectoryEvent SonosEnhanced Object
/opt/sonos-controller-unofficial/resources/app.asar/ui/services/SonosService.js:417 onVolumeEvent 192.168.1.106 46
/opt/sonos-controller-unofficial/resources/app.asar/ui/services/SonosService.js:407 onMutedEvent 192.168.1.106 false
/opt/sonos-controller-unofficial/resources/app.asar/ui/services/SonosService.js:392 onRenderingControlEvent 192.168.1.106 Object
/opt/sonos-controller-unofficial/resources/app.asar/ui/services/SonosService.js:427 onPlayStateEvent 192.168.1.106 playing
/opt/sonos-controller-unofficial/resources/app.asar/ui/services/SonosService.js:377 onZoneGroupTopologyEvent 192.168.1.106 Array(1)
/opt/sonos-controller-unofficial/resources/app.asar/ui/services/SonosService.js:377 onZoneGroupTopologyEvent 192.168.1.106 Array(1)
service-worker.js:11 Cached hit http://192.168.1.101:1400/getaa?s=1&u=x-sonos-spotify%3aspotify%253atrack%253a0C2q5FBAGtuFopEx96ayCf%3fsid%3d12%26flags%3d8224%26sn%3d2
service-worker.js:11 Cached hit http://192.168.1.101:1400/getaa?s=1&u=x-sonos-spotify%3aspotify%253atrack%253a1KnTw354jtQmDvA6b3Fvi0%3fsid%3d12%26flags%3d8224%26sn%3d2
service-worker.js:11 Cached hit http://192.168.1.101:1400/getaa?s=1&u=x-sonos-spotify%3aspotify%253atrack%253a3qp1ushu4Ve2Vl5keFaUDM%3fsid%3d12%26flags%3d8224%26sn%3d2
/opt/sonos-controller-unofficial/resources/app.asar/ui/services/SonosService.js:452 onContentDirectoryEvent SonosEnhanced Object
/opt/sonos-controller-unofficial/resources/app.asar/ui/services/SonosService.js:452 onContentDirectoryEvent SonosEnhanced Object
/opt/sonos-controller-unofficial/resources/app.asar/ui/services/SonosService.js:417 onVolumeEvent 192.168.1.101 44
/opt/sonos-controller-unofficial/resources/app.asar/ui/services/SonosService.js:407 onMutedEvent 192.168.1.101 false
/opt/sonos-controller-unofficial/resources/app.asar/ui/services/SonosService.js:392 onRenderingControlEvent 192.168.1.101 Object
service-worker.js:11 Cached hit http://192.168.1.101:1400/getaa?s=1&u=x-sonos-spotify%3aspotify%253atrack%253a3zkLIQIwUzSVO7BPOiqVSE%3fsid%3d12%26flags%3d8224%26sn%3d2
service-worker.js:11 Cached hit http://192.168.1.101:1400/getaa?s=1&u=x-sonos-spotify%3aspotify%253atrack%253a2cpvqneVD7dxyD2x1Q2N1U%3fsid%3d12%26flags%3d8224%26sn%3d2
service-worker.js:11 Cached hit http://192.168.1.101:1400/getaa?s=1&u=x-sonos-spotify%3aspotify%253atrack%253a60miRS7FrwzvkLRj0Jzlvi%3fsid%3d12%26flags%3d8224%26sn%3d2
service-worker.js:11 Cached hit http://192.168.1.101:1400/getaa?s=1&u=x-sonos-spotify%3aspotify%253atrack%253a0TbUBfDnRESf3Z41MajK2D%3fsid%3d12%26flags%3d8224%26sn%3d2
service-worker.js:11 Cached hit http://192.168.1.101:1400/getaa?s=1&u=x-sonos-spotify%3aspotify%253atrack%253a37ov3WCGKkLizp4ahPHKNR%3fsid%3d12%26flags%3d8224%26sn%3d2
service-worker.js:11 Cached hit http://192.168.1.101:1400/getaa?s=1&u=x-sonos-spotify%3aspotify%253atrack%253a0n7RacgSiGRYOEKysh0glU%3fsid%3d12%26flags%3d8224%26sn%3d2
service-worker.js:11 Cached hit http://192.168.1.101:1400/getaa?s=1&u=x-sonos-spotify%3aspotify%253atrack%253a2yJSmc4zKPW6JHSKTnuwB6%3fsid%3d12%26flags%3d8224%26sn%3d2
service-worker.js:11 Cached hit http://192.168.1.101:1400/getaa?s=1&u=x-sonos-spotify%3aspotify%253atrack%253a7lkkpBe13UFrPIe9Ffn2cb%3fsid%3d12%26flags%3d8224%26sn%3d2
service-worker.js:11 Cached hit http://192.168.1.101:1400/getaa?s=1&u=x-sonos-spotify%3aspotify%253atrack%253a1Ktcsstw5MujUNShL9mskS%3fsid%3d12%26flags%3d8224%26sn%3d2
DevTools failed to load SourceMap: Could not load content for file:///opt/sonos-controller-unofficial/resources/app.asar/ui/app.js.map:
DevTools failed to load SourceMap: Could not load content for file:///opt/sonos-controller-unofficial/resources/app.asar/ui/components/Application.js.map:
DevTools failed to load SourceMap: Could not load content for file:///opt/sonos-controller-unofficial/resources/app.asar/ui/reducers/index.js.map:
DevTools failed to load SourceMap: Could not load content for file:///opt/sonos-controller-unofficial/resources/app.asar/ui/reducers/SonosServiceReducer.js.map:
DevTools failed to load SourceMap: Could not load content for file:///opt/sonos-controller-unofficial/resources/app.asar/ui/constants/index.js.map:
DevTools failed to load SourceMap: Could not load content for file:///opt/sonos-controller-unofficial/resources/app.asar/ui/constants/Constants.js.map:
DevTools failed to load SourceMap: Could not load content for file:///opt/sonos-controller-unofficial/resources/app.asar/ui/reducers/GroupManagementReducer.js.map:
DevTools failed to load SourceMap: Could not load content for file:///opt/sonos-controller-unofficial/resources/app.asar/ui/reducers/CurrentTrackReducer.js.map:
DevTools failed to load SourceMap: Could not load content for file:///opt/sonos-controller-unofficial/resources/app.asar/ui/reducers/VolumeControlReducer.js.map:
DevTools failed to load SourceMap: Could not load content for file:///opt/sonos-controller-unofficial/resources/app.asar/ui/reducers/QueueReducer.js.map:
DevTools failed to load SourceMap: Could not load content for file:///opt/sonos-controller-unofficial/resources/app.asar/ui/reducers/BrowserListReducer.js.map:
DevTools failed to load SourceMap: Could not load content for file:///opt/sonos-controller-unofficial/resources/app.asar/ui/constants/BrowserListConstants.js.map:
DevTools failed to load SourceMap: Could not load content for file:///opt/sonos-controller-unofficial/resources/app.asar/common/helpers.js.map:
DevTools failed to load SourceMap: Could not load content for file:///opt/sonos-controller-unofficial/resources/app.asar/ui/reducers/MusicServicesReducer.js.map:
DevTools failed to load SourceMap: Could not load content for file:///opt/sonos-controller-unofficial/resources/app.asar/ui/services/MusicServiceClient.js.map:
DevTools failed to load SourceMap: Could not load content for file:///opt/sonos-controller-unofficial/resources/app.asar/ui/services/SonosService.js.map:
DevTools failed to load SourceMap: Could not load content for file:///opt/sonos-controller-unofficial/resources/app.asar/ui/helpers/getServiceLogoUrl.js.map:
DevTools failed to load SourceMap: Could not load content for file:///opt/sonos-controller-unofficial/resources/app.asar/ui/services/enhanced/Discovery.js.map:
DevTools failed to load SourceMap: Could not load content for file:///opt/sonos-controller-unofficial/resources/app.asar/ui/services/enhanced/SonosEnhanced.js.map:
DevTools failed to load SourceMap: Could not load content for file:///opt/sonos-controller-unofficial/resources/app.asar/ui/services/enhanced/RenderingControlEnhanced.js.map:
DevTools failed to load SourceMap: Could not load content for file:///opt/sonos-controller-unofficial/resources/app.asar/ui/services/enhanced/ContentDirectoryEnhanced.js.map:
DevTools failed to load SourceMap: Could not load content for file:///opt/sonos-controller-unofficial/resources/app.asar/ui/services/enhanced/ListenerEnhanced.js.map:
DevTools failed to load SourceMap: Could not load content for file:///opt/sonos-controller-unofficial/resources/app.asar/ui/reduxActions/SonosServiceActions.js.map:
DevTools failed to load SourceMap: Could not load content for file:///opt/sonos-controller-unofficial/resources/app.asar/ui/helpers/sonos.js.map:
DevTools failed to load SourceMap: Could not load content for file:///opt/sonos-controller-unofficial/resources/app.asar/ui/selectors/ZoneGroupSelectors.js.map:
DevTools failed to load SourceMap: Could not load content for file:///opt/sonos-controller-unofficial/resources/app.asar/ui/reducers/PlaylistReducer.js.map:
DevTools failed to load SourceMap: Could not load content for file:///opt/sonos-controller-unofficial/resources/app.asar/ui/reducers/EqReducer.js.map:
DevTools failed to load SourceMap: Could not load content for file:///opt/sonos-controller-unofficial/resources/app.asar/ui/services/IpcService.js.map:
DevTools failed to load SourceMap: Could not load content for file:///opt/sonos-controller-unofficial/resources/app.asar/ui/reduxActions/BrowserListActions.js.map:
DevTools failed to load SourceMap: Could not load content for file:///opt/sonos-controller-unofficial/resources/app.asar/ui/selectors/CurrentTrackSelectors.js.map:
DevTools failed to load SourceMap: Could not load content for file:///opt/sonos-controller-unofficial/resources/app.asar/ui/reduxActions/PlaylistActions.js.map:
DevTools failed to load SourceMap: Could not load content for file:///opt/sonos-controller-unofficial/resources/app.asar/common/ipcCommands.js.map:
DevTools failed to load SourceMap: Could not load content for file:///opt/sonos-controller-unofficial/resources/app.asar/ui/components/CurrentTrack.js.map:
DevTools failed to load SourceMap: Could not load content for file:///opt/sonos-controller-unofficial/resources/app.asar/ui/components/CurrentTrackExpanded.js.map:
DevTools failed to load SourceMap: Could not load content for file:///opt/sonos-controller-unofficial/resources/app.asar/ui/components/AlbumArt.js.map:
DevTools failed to load SourceMap: Could not load content for file:///opt/sonos-controller-unofficial/resources/app.asar/ui/helpers/dom-utility.js.map:
DevTools failed to load SourceMap: Could not load content for file:///opt/sonos-controller-unofficial/resources/app.asar/ui/components/CurrentTrackCollapsed.js.map:
DevTools failed to load SourceMap: Could not load content for file:///opt/sonos-controller-unofficial/resources/app.asar/ui/components/CurrentTrackNoMusic.js.map:
DevTools failed to load SourceMap: Could not load content for file:///opt/sonos-controller-unofficial/resources/app.asar/ui/reduxActions/CurrentTrackActions.js.map:
DevTools failed to load SourceMap: Could not load content for file:///opt/sonos-controller-unofficial/resources/app.asar/ui/components/QueueList.js.map:
DevTools failed to load SourceMap: Could not load content for file:///opt/sonos-controller-unofficial/resources/app.asar/ui/components/QueueListItem.js.map:
DevTools failed to load SourceMap: Could not load content for file:///opt/sonos-controller-unofficial/resources/app.asar/ui/reduxActions/QueueActions.js.map:
DevTools failed to load SourceMap: Could not load content for file:///opt/sonos-controller-unofficial/resources/app.asar/ui/helpers/getSelectionSeries.js.map:
DevTools failed to load SourceMap: Could not load content for file:///opt/sonos-controller-unofficial/resources/app.asar/ui/selectors/QueueSelectors.js.map:
DevTools failed to load SourceMap: Could not load content for file:///opt/sonos-controller-unofficial/resources/app.asar/ui/components/BrowserList.js.map:
DevTools failed to load SourceMap: Could not load content for file:///opt/sonos-controller-unofficial/resources/app.asar/ui/components/BrowserListItem.js.map:
DevTools failed to load SourceMap: Could not load content for file:///opt/sonos-controller-unofficial/resources/app.asar/ui/selectors/BrowserListSelectors.js.map:
DevTools failed to load SourceMap: Could not load content for file:///opt/sonos-controller-unofficial/resources/app.asar/ui/components/PlayControls.js.map:
DevTools failed to load SourceMap: Could not load content for file:///opt/sonos-controller-unofficial/resources/app.asar/ui/reduxActions/PlayerActions.js.map:
DevTools failed to load SourceMap: Could not load content for file:///opt/sonos-controller-unofficial/resources/app.asar/ui/selectors/PlayerSelectors.js.map:
DevTools failed to load SourceMap: Could not load content for file:///opt/sonos-controller-unofficial/resources/app.asar/ui/components/PositionInfo.js.map:
DevTools failed to load SourceMap: Could not load content for file:///opt/sonos-controller-unofficial/resources/app.asar/ui/components/VolumeControls.js.map:
DevTools failed to load SourceMap: Could not load content for file:///opt/sonos-controller-unofficial/resources/app.asar/ui/components/MuteButton.js.map:
DevTools failed to load SourceMap: Could not load content for file:///opt/sonos-controller-unofficial/resources/app.asar/ui/components/ValueSlider.js.map:
DevTools failed to load SourceMap: Could not load content for file:///opt/sonos-controller-unofficial/resources/app.asar/ui/reduxActions/VolumeControlActions.js.map:
DevTools failed to load SourceMap: Could not load content for file:///opt/sonos-controller-unofficial/resources/app.asar/ui/reduxActions/EqActions.js.map:
DevTools failed to load SourceMap: Could not load content for file:///opt/sonos-controller-unofficial/resources/app.asar/ui/selectors/GroupManagementSelectors.js.map:
DevTools failed to load SourceMap: Could not load content for file:///opt/sonos-controller-unofficial/resources/app.asar/ui/selectors/VolumeControlSelectors.js.map:
DevTools failed to load SourceMap: Could not load content for file:///opt/sonos-controller-unofficial/resources/app.asar/ui/components/ZoneGroupList.js.map:
DevTools failed to load SourceMap: Could not load content for file:///opt/sonos-controller-unofficial/resources/app.asar/ui/components/ZoneGroup.js.map:
DevTools failed to load SourceMap: Could not load content for file:///opt/sonos-controller-unofficial/resources/app.asar/ui/components/ZoneGroupPlayState.js.map:
DevTools failed to load SourceMap: Could not load content for file:///opt/sonos-controller-unofficial/resources/app.asar/ui/components/ZoneGroupMember.js.map:
DevTools failed to load SourceMap: Could not load content for file:///opt/sonos-controller-unofficial/resources/app.asar/ui/reduxActions/ZoneGroupActions.js.map:
DevTools failed to load SourceMap: Could not load content for file:///opt/sonos-controller-unofficial/resources/app.asar/ui/components/GroupManagement.js.map:
DevTools failed to load SourceMap: Could not load content for file:///opt/sonos-controller-unofficial/resources/app.asar/ui/components/GroupManagementNode.js.map:
DevTools failed to load SourceMap: Could not load content for file:///opt/sonos-controller-unofficial/resources/app.asar/ui/reduxActions/GroupManagementActions.js.map:
DevTools failed to load SourceMap: Could not load content for file:///opt/sonos-controller-unofficial/resources/app.asar/ui/components/MusicServiceManagement.js.map:
DevTools failed to load SourceMap: Could not load content for file:///opt/sonos-controller-unofficial/resources/app.asar/ui/reduxActions/MusicServicesActions.js.map:
DevTools failed to load SourceMap: Could not load content for file:///opt/sonos-controller-unofficial/resources/app.asar/ui/components/PlaylistManagement.js.map:
DevTools failed to load SourceMap: Could not load content for file:///opt/sonos-controller-unofficial/resources/app.asar/ui/components/PlaylistManagementAddTrack.js.map:
DevTools failed to load SourceMap: Could not load content for file:///opt/sonos-controller-unofficial/resources/app.asar/ui/components/PlaylistManagementEdit.js.map:
DevTools failed to load SourceMap: Could not load content for file:///opt/sonos-controller-unofficial/resources/app.asar/ui/components/PlaylistManagementSave.js.map:
DevTools failed to load SourceMap: Could not load content for file:///opt/sonos-controller-unofficial/resources/app.asar/ui/components/EqSettings.js.map:
DevTools failed to load SourceMap: Could not load content for file:///opt/sonos-controller-unofficial/resources/app.asar/ui/components/SearchBar.js.map:
DevTools failed to load SourceMap: Could not load content for file:///opt/sonos-controller-unofficial/resources/app.asar/ui/components/SearchBarSources.js.map:
DevTools failed to load SourceMap: Could not load content for file:///opt/sonos-controller-unofficial/resources/app.asar/ui/components/Loader.js.map:
DevTools failed to load SourceMap: Could not load content for file:///opt/sonos-controller-unofficial/resources/app.asar/ui/selectors/LoaderSelectors.js.map:
DevTools failed to load SourceMap: Could not load content for file:///opt/sonos-controller-unofficial/resources/app.asar/service-worker.js.map:
You will need to terminate the orphaned process hogging the 13453 port.
So -- I just tried poiting it to a folder that has less music files and i am able to navigate to it. However, my main music folder, I guess is too large to load. I also notice that my music files will not play. Which audio formats are supported? Can you descibe to me what I need to do as a test to get this to work?
My Music folder is a symbolic link to a network drive, but symlinks don't appear in the file browser?
Ok, some changes in v0.2.1-alpha5.
Symlinks are now followed when indexing and browsable, not sure about network shares though.
Files not showing/playing previously even though they are music files might have been caused by them not being tagged. I have changed this and they play fine now, just without album. artist and albumart info.
The list of valid file formats can be found here: https://github.com/pascalopitz/unoffical-sonos-controller-for-linux/blob/master/src/localMusic/common.js This is derived from https://developer.sonos.com/build/content-service-add-features/supported-audio-formats/
v0.2.1-alpha6 still won't let me select my Music folder which is a link to an nfs share. I can see the symlink, but it is greyed out.
Can you share avideo or GIF of what you are doing to get this working on your own machine? I cannot get it to play a local file at all. I tried several formats and it does not function. All of my files are on my local machine.
I moved a single Artist to a local folder to try it out. When I start the app, I click on "On this device" and see the Artist in question. When I click on the Artist, I get: <-- POST /smapi --> POST /smapi 200 2ms 2.32kb on the terminal running the app, but nothing else happens...
I have been poking around and discovered the developer console. When I click on the artist (Hazel O'Connor for reference) I get:
/snap/sonos-controller-unofficial/20/resources/app.asar/ui/components/BrowserListItem.js:234 double click
/snap/sonos-controller-unofficial/20/resources/app.asar/ui/reducers/index.js:43 Error: Invalid character in entity name
Line: 16
Column: 54
Char:
at error (/snap/sonos-controller-unofficial/20/resources/app.asar/node_modules/sax/lib/sax.js:651)
at strictFail (/snap/sonos-controller-unofficial/20/resources/app.asar/node_modules/sax/lib/sax.js:677)
at SAXParser.write (/snap/sonos-controller-unofficial/20/resources/app.asar/node_modules/sax/lib/sax.js:1491)
at Parser.exports.Parser.Parser.parseString (/snap/sonos-controller-unofficial/20/resources/app.asar/node_modules/xml2js/lib/parser.js:323)
at Parser.parseString (/snap/sonos-controller-unofficial/20/resources/app.asar/node_modules/xml2js/lib/parser.js:5)
at exports.parseString (/snap/sonos-controller-unofficial/20/resources/app.asar/node_modules/xml2js/lib/parser.js:369)
at Object.Helpers._ParseXml (/snap/sonos-controller-unofficial/20/resources/app.asar/node_modules/sonos/lib/helpers.js:301)
at /snap/sonos-controller-unofficial/20/resources/app.asar/node_modules/sonos/lib/helpers.js:321
at new Promise (<anonymous>)
at Object.Helpers.ParseXml (/snap/sonos-controller-unofficial/20/resources/app.asar/node_modules/sonos/lib/helpers.js:320)
(anonymous) @ /snap/sonos-controller-unofficial/20/resources/app.asar/ui/reducers/index.js:43
Promise.catch (async)
(anonymous) @ /snap/sonos-controller-unofficial/20/resources/app.asar/ui/reducers/index.js:42
(anonymous) @ /snap/sonos-controller-unofficial/20/resources/app.asar/node_modules/redux/lib/redux.js:483
_onClick @ /snap/sonos-controller-unofficial/20/resources/app.asar/ui/components/BrowserListItem.js:218
invokeFunc @ /snap/sonos-controller-unofficial/20/resources/app.asar/node_modules/lodash/lodash.js:10359
trailingEdge @ /snap/sonos-controller-unofficial/20/resources/app.asar/node_modules/lodash/lodash.js:10408
timerExpired @ /snap/sonos-controller-unofficial/20/resources/app.asar/node_modules/lodash/lodash.js:10396
setTimeout (async)
setTimeout @ /snap/sonos-controller-unofficial/20/resources/app.asar/node_modules/lodash/lodash.js:6668
leadingEdge @ /snap/sonos-controller-unofficial/20/resources/app.asar/node_modules/lodash/lodash.js:10367
debounced @ /snap/sonos-controller-unofficial/20/resources/app.asar/node_modules/lodash/lodash.js:10436
handleClick @ /snap/sonos-controller-unofficial/20/resources/app.asar/ui/components/BrowserListItem.js:236
callCallback @ /snap/sonos-controller-unofficial/20/resources/app.asar/node_modules/react-dom/cjs/react-dom.development.js:188
invokeGuardedCallbackDev @ /snap/sonos-controller-unofficial/20/resources/app.asar/node_modules/react-dom/cjs/react-dom.development.js:237
invokeGuardedCallback @ /snap/sonos-controller-unofficial/20/resources/app.asar/node_modules/react-dom/cjs/react-dom.development.js:292
invokeGuardedCallbackAndCatchFirstError @ /snap/sonos-controller-unofficial/20/resources/app.asar/node_modules/react-dom/cjs/react-dom.development.js:306
executeDispatch @ /snap/sonos-controller-unofficial/20/resources/app.asar/node_modules/react-dom/cjs/react-dom.development.js:389
executeDispatchesInOrder @ /snap/sonos-controller-unofficial/20/resources/app.asar/node_modules/react-dom/cjs/react-dom.development.js:414
executeDispatchesAndRelease @ /snap/sonos-controller-unofficial/20/resources/app.asar/node_modules/react-dom/cjs/react-dom.development.js:3278
executeDispatchesAndReleaseTopLevel @ /snap/sonos-controller-unofficial/20/resources/app.asar/node_modules/react-dom/cjs/react-dom.development.js:3287
forEachAccumulated @ /snap/sonos-controller-unofficial/20/resources/app.asar/node_modules/react-dom/cjs/react-dom.development.js:3259
runEventsInBatch @ /snap/sonos-controller-unofficial/20/resources/app.asar/node_modules/react-dom/cjs/react-dom.development.js:3304
runExtractedPluginEventsInBatch @ /snap/sonos-controller-unofficial/20/resources/app.asar/node_modules/react-dom/cjs/react-dom.development.js:3514
handleTopLevel @ /snap/sonos-controller-unofficial/20/resources/app.asar/node_modules/react-dom/cjs/react-dom.development.js:3558
batchedEventUpdates$1 @ /snap/sonos-controller-unofficial/20/resources/app.asar/node_modules/react-dom/cjs/react-dom.development.js:21871
batchedEventUpdates @ /snap/sonos-controller-unofficial/20/resources/app.asar/node_modules/react-dom/cjs/react-dom.development.js:795
dispatchEventForLegacyPluginEventSystem @ /snap/sonos-controller-unofficial/20/resources/app.asar/node_modules/react-dom/cjs/react-dom.development.js:3568
attemptToDispatchEvent @ /snap/sonos-controller-unofficial/20/resources/app.asar/node_modules/react-dom/cjs/react-dom.development.js:4267
dispatchEvent @ /snap/sonos-controller-unofficial/20/resources/app.asar/node_modules/react-dom/cjs/react-dom.development.js:4189
unstable_runWithPriority @ /snap/sonos-controller-unofficial/20/resources/app.asar/node_modules/scheduler/cjs/scheduler.development.js:653
runWithPriority$1 @ /snap/sonos-controller-unofficial/20/resources/app.asar/node_modules/react-dom/cjs/react-dom.development.js:11039
discreteUpdates$1 @ /snap/sonos-controller-unofficial/20/resources/app.asar/node_modules/react-dom/cjs/react-dom.development.js:21887
discreteUpdates @ /snap/sonos-controller-unofficial/20/resources/app.asar/node_modules/react-dom/cjs/react-dom.development.js:806
dispatchDiscreteEvent @ /snap/sonos-controller-unofficial/20/resources/app.asar/node_modules/react-dom/cjs/react-dom.development.js:4168
/snap/sonos-controller-unofficial/20/resources/app.asar/ui/reducers/index.js:33 Uncaught (in promise) Error: Invalid character in entity name
Line: 16
Column: 54
Char:
at error (/snap/sonos-controller-unofficial/20/resources/app.asar/node_modules/sax/lib/sax.js:651)
at strictFail (/snap/sonos-controller-unofficial/20/resources/app.asar/node_modules/sax/lib/sax.js:677)
at SAXParser.write (/snap/sonos-controller-unofficial/20/resources/app.asar/node_modules/sax/lib/sax.js:1491)
at Parser.exports.Parser.Parser.parseString (/snap/sonos-controller-unofficial/20/resources/app.asar/node_modules/xml2js/lib/parser.js:323)
at Parser.parseString (/snap/sonos-controller-unofficial/20/resources/app.asar/node_modules/xml2js/lib/parser.js:5)
at exports.parseString (/snap/sonos-controller-unofficial/20/resources/app.asar/node_modules/xml2js/lib/parser.js:369)
at Object.Helpers._ParseXml (/snap/sonos-controller-unofficial/20/resources/app.asar/node_modules/sonos/lib/helpers.js:301)
at /snap/sonos-controller-unofficial/20/resources/app.asar/node_modules/sonos/lib/helpers.js:321
at new Promise (<anonymous>)
at Object.Helpers.ParseXml (/snap/sonos-controller-unofficial/20/resources/app.asar/node_modules/sonos/lib/helpers.js:320)
error @ /snap/sonos-controller-unofficial/20/resources/app.asar/node_modules/sax/lib/sax.js:651
strictFail @ /snap/sonos-controller-unofficial/20/resources/app.asar/node_modules/sax/lib/sax.js:677
write @ /snap/sonos-controller-unofficial/20/resources/app.asar/node_modules/sax/lib/sax.js:1491
exports.Parser.Parser.parseString @ /snap/sonos-controller-unofficial/20/resources/app.asar/node_modules/xml2js/lib/parser.js:323
(anonymous) @ /snap/sonos-controller-unofficial/20/resources/app.asar/node_modules/xml2js/lib/parser.js:5
exports.parseString @ /snap/sonos-controller-unofficial/20/resources/app.asar/node_modules/xml2js/lib/parser.js:369
Helpers._ParseXml @ /snap/sonos-controller-unofficial/20/resources/app.asar/node_modules/sonos/lib/helpers.js:301
(anonymous) @ /snap/sonos-controller-unofficial/20/resources/app.asar/node_modules/sonos/lib/helpers.js:321
Helpers.ParseXml @ /snap/sonos-controller-unofficial/20/resources/app.asar/node_modules/sonos/lib/helpers.js:320
_doRequest @ /snap/sonos-controller-unofficial/20/resources/app.asar/ui/services/MusicServiceClient.js:50
async function (async)
(anonymous) @ /snap/sonos-controller-unofficial/20/resources/app.asar/ui/reducers/index.js:27
(anonymous) @ /snap/sonos-controller-unofficial/20/resources/app.asar/node_modules/redux-promise/lib/index.js:23
(anonymous) @ /snap/sonos-controller-unofficial/20/resources/app.asar/ui/reducers/index.js:48
(anonymous) @ /snap/sonos-controller-unofficial/20/resources/app.asar/node_modules/redux/lib/redux.js:483
_onClick @ /snap/sonos-controller-unofficial/20/resources/app.asar/ui/components/BrowserListItem.js:218
invokeFunc @ /snap/sonos-controller-unofficial/20/resources/app.asar/node_modules/lodash/lodash.js:10359
trailingEdge @ /snap/sonos-controller-unofficial/20/resources/app.asar/node_modules/lodash/lodash.js:10408
timerExpired @ /snap/sonos-controller-unofficial/20/resources/app.asar/node_modules/lodash/lodash.js:10396
setTimeout (async)
setTimeout @ /snap/sonos-controller-unofficial/20/resources/app.asar/node_modules/lodash/lodash.js:6668
leadingEdge @ /snap/sonos-controller-unofficial/20/resources/app.asar/node_modules/lodash/lodash.js:10367
debounced @ /snap/sonos-controller-unofficial/20/resources/app.asar/node_modules/lodash/lodash.js:10436
handleClick @ /snap/sonos-controller-unofficial/20/resources/app.asar/ui/components/BrowserListItem.js:236
callCallback @ /snap/sonos-controller-unofficial/20/resources/app.asar/node_modules/react-dom/cjs/react-dom.development.js:188
invokeGuardedCallbackDev @ /snap/sonos-controller-unofficial/20/resources/app.asar/node_modules/react-dom/cjs/react-dom.development.js:237
invokeGuardedCallback @ /snap/sonos-controller-unofficial/20/resources/app.asar/node_modules/react-dom/cjs/react-dom.development.js:292
invokeGuardedCallbackAndCatchFirstError @ /snap/sonos-controller-unofficial/20/resources/app.asar/node_modules/react-dom/cjs/react-dom.development.js:306
executeDispatch @ /snap/sonos-controller-unofficial/20/resources/app.asar/node_modules/react-dom/cjs/react-dom.development.js:389
executeDispatchesInOrder @ /snap/sonos-controller-unofficial/20/resources/app.asar/node_modules/react-dom/cjs/react-dom.development.js:414
executeDispatchesAndRelease @ /snap/sonos-controller-unofficial/20/resources/app.asar/node_modules/react-dom/cjs/react-dom.development.js:3278
executeDispatchesAndReleaseTopLevel @ /snap/sonos-controller-unofficial/20/resources/app.asar/node_modules/react-dom/cjs/react-dom.development.js:3287
forEachAccumulated @ /snap/sonos-controller-unofficial/20/resources/app.asar/node_modules/react-dom/cjs/react-dom.development.js:3259
runEventsInBatch @ /snap/sonos-controller-unofficial/20/resources/app.asar/node_modules/react-dom/cjs/react-dom.development.js:3304
runExtractedPluginEventsInBatch @ /snap/sonos-controller-unofficial/20/resources/app.asar/node_modules/react-dom/cjs/react-dom.development.js:3514
handleTopLevel @ /snap/sonos-controller-unofficial/20/resources/app.asar/node_modules/react-dom/cjs/react-dom.development.js:3558
batchedEventUpdates$1 @ /snap/sonos-controller-unofficial/20/resources/app.asar/node_modules/react-dom/cjs/react-dom.development.js:21871
batchedEventUpdates @ /snap/sonos-controller-unofficial/20/resources/app.asar/node_modules/react-dom/cjs/react-dom.development.js:795
dispatchEventForLegacyPluginEventSystem @ /snap/sonos-controller-unofficial/20/resources/app.asar/node_modules/react-dom/cjs/react-dom.development.js:3568
attemptToDispatchEvent @ /snap/sonos-controller-unofficial/20/resources/app.asar/node_modules/react-dom/cjs/react-dom.development.js:4267
dispatchEvent @ /snap/sonos-controller-unofficial/20/resources/app.asar/node_modules/react-dom/cjs/react-dom.development.js:4189
unstable_runWithPriority @ /snap/sonos-controller-unofficial/20/resources/app.asar/node_modules/scheduler/cjs/scheduler.development.js:653
runWithPriority$1 @ /snap/sonos-controller-unofficial/20/resources/app.asar/node_modules/react-dom/cjs/react-dom.development.js:11039
discreteUpdates$1 @ /snap/sonos-controller-unofficial/20/resources/app.asar/node_modules/react-dom/cjs/react-dom.development.js:21887
discreteUpdates @ /snap/sonos-controller-unofficial/20/resources/app.asar/node_modules/react-dom/cjs/react-dom.development.js:806
dispatchDiscreteEvent @ /snap/sonos-controller-unofficial/20/resources/app.asar/node_modules/react-dom/cjs/react-dom.development.js:4168
i am using version 0.2.2 and i am able to surf through the directory tree 'on my device' - so far so good. now, i can only play mp3 music files so far - but none of the FLAC files show up and can't be played therefore. can FLAC files be indexed with this controller ? they definitely work fine with the Android-based Sonos controller on the very same setup using the same linux server - but i would rather use this controller here on linux.
FWIW, the local music feature is working terrifically on 0.2.9+, specifically using local regular files (not symlinks), with correct permissions, and not on any kind of non-disk mount point (like NFS, sshfs, s3fs, etc). PR #173 exists to resolve an issue when dealing with filenames with special characters that Sonos doesn't seem to like.
dear Stefan, dear Pascal,
i happily use the unofficial sonos controller every day but i ultimately 'pulled the plug' in terms of storing FLAC music files on my own linux file server and instead make now use of QNAP's software for that. see here described what agony i went through to (not) get this running on a newest Slackware v15.0 Linux system :
anyway, thank you for your feedback - and sorry for my delayed answer.
bye, pisti
On Thu, 30 Dec 2021, Stefan Adams wrote:
FWIW, the local music feature is working terrifically on 0.2.9+, specifically using local regular files (not symlinks), with correct permissions, and not on any kind of non-disk mount point (like NFS, sshfs, s3fs, etc). PR #173 exists to resolve an issue when dealing with filenames with special characters that Sonos doesn't seem to like.
— Reply to this email directly, view it on GitHub, or unsubscribe. Triage notifications on the go with GitHub Mobile for iOS or Android. You are receiving this because you commented.[ASVJYVTQOKAPRLBBTFWARELUTSG3TA5CNFSM4C2O47OKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOHPFEQVQ.gif] Message ID: @.***>
Already under development, the ability to play music from "this device", i.e. the ~/Music folder