BluOS controller app on Linux

Answered

Comments

56 comments

  • Official comment

    Thanks for the feedback Rand.

    I have passed it along for future consideration...

    Comment actions Permalink
  • Avatar
    Mark Schlegel

    I'd like to see this too.  I think the Bluos app for windows might just work on linux using the wine support but I'm not sure I'd want to buy a node 2i, get it home and find it doesn't work.

    Another option would be for the node 2i to have a web interface then anything with a web browser would just work.  I'm not sure why so few network players go that route, it seems like a no-brainer.

     

     

     

    0
    Comment actions Permalink
  • Avatar
    Rand K Barthel

    I am finding that the Android client on our phones works just fine, so I'll just use that for now. I'm not interested in trying to get Wine to work.

    0
    Comment actions Permalink
  • Avatar
    Antoine Gautier

    Same need here for a Linux port of the app.

    Or a cross-platform browser based version.

    1
    Comment actions Permalink
  • Avatar
    Cedmue

    +1 for linux supporting app or cross-platform browser based version

    1
    Comment actions Permalink
  • Avatar
    MarkBrauer

    I too would like to see browser access to the full BluOS interface. My main computing platform is a Chromebook, from which I download music and control my Synology NAS. I do log into my Node 2 using its URL and appreciate that I can access its settings, mostly to Reindex after adding new material to my network shares. It would sure be nice to have full player control too. The Synology DSM interface is an excellent example of how sophisticated a browser-based interface can be.

    0
    Comment actions Permalink
  • Avatar
    Clément Martin

    Same here, all computers run Linux at home, being limited to the android app is painful..

    0
    Comment actions Permalink
  • Avatar
    David S

    Well, it's definitely possible ;) 

    1
    Comment actions Permalink
  • Avatar
    David S

    While I understand there would be some work involved with adding Linux support, being that the BluOS controller app is just an Electron app, It's somewhat trivial to enable support for Linux.

    For those that are interested and don't mind "Experimental" software, I have patched and re-packaged version 3.8.2 for Linux as a Snap and an AppImage. One of these should work on pretty much any Linux distro out there with a GUI. Keep in mind I did the bare minimum to get this working and while I have tested a lot of the functionality, this should definitely be treated as experimental software. I would NOT do something like a firmware update with this. 

    If you have Snap:

    1. Download the snap from here: https://drive.google.com/open?id=1-6pIG6frwJHXkHU_cGUWSij5H6dK1tUM
    2. Run: snap install --dangerous BluOS_3.8.2_amd64.snap

    If you don't have Snap:

    1. Download the AppImage from here: https://drive.google.com/open?id=1V75N_wj4bKf5a9gjmnXGDfmtDBrTMvRQ
    2. Run: chmod +x 'BluOS Controller-3.8.2.AppImage'
    3. Run: ./'BluOS Controller-3.8.2.AppImage'

    I have tested both and can connect to my Flex 2i and Pulse 2i. I also added the ability to detect Spotify however ONLY if used from a snap.

    4
    Comment actions Permalink
  • Avatar
    Simon Blandford

    @David S   You're da champ!

    Thank you so much! Works like a charm.

    0
    Comment actions Permalink
  • Avatar
    David S

    @Simon Blandford Glad it worked for you and happy to help!

    1
    Comment actions Permalink
  • Avatar
    David S

    Looks like 3.8.3 came out. The "new version" dialog is annoying every time I launch it so I applied the same patch to this latest version:

     

    If you have Snap:

    1. Download the snap from here: https://drive.google.com/file/d/1GHYg_yDNGjJ8gOqq41eNQMWutJnZrF-K/view?usp=sharing
    2. Run: snap install --dangerous BluOS_3.8.3_amd64.snap

    If you don't have Snap:

    1. Download the AppImage from here: https://drive.google.com/file/d/1e14cWdnm4ftSs-wqc8NFXqKArJUX23bH/view?usp=sharing
    2. Run: chmod +x 'BluOS Controller-3.8.3.AppImage'
    3. Run: ./'BluOS Controller-3.8.3.AppImage'
    2
    Comment actions Permalink
  • Avatar
    Roelof

    David S: Thank you, sir! You made my day. I'm using the appimage on Kubuntu, and it works like a charm! Even the new track pop-ups show :)

    0
    Comment actions Permalink
  • Avatar
    Julian Jarminowski

    Hey Tony, is there an update for this post? Am very interested in a working linux app too!

    0
    Comment actions Permalink
  • Avatar
    David S

    Julian Jarminowski I know it's not "official" however the patch I made to the app seems to be working very well and I haven't run into any issues during daily use. Until there is official support, I'll keep patching any updated versions and posting the links here.

    There are only a couple of sections in their code that have to be patched to support running the electron app. I would post the source to the patchset but their electron app gets minified as part of their build which means almost all of the code is in one file and the changeset includes pretty much all the code :( 

    0
    Comment actions Permalink
  • Avatar
    Julian Jarminowski

    David S: Am already using your patched app :D, and it works like a charm, allthough i would love to use an official version, hence the comment.

    0
    Comment actions Permalink
  • Avatar
    Andrés Martinelli

    Hello! Any chance the image could be updated to latest version: 3.10.0???

    Thanks!

    0
    Comment actions Permalink
  • Avatar
    Fabrice A

    @David S: you wrote: "the BluOS controller app is just an Electron app".  Would you mind sharing where you found the source code?

     

    0
    Comment actions Permalink
  • Avatar
    David S

    Here is 3.10 with the same patches:

    If you have Snap:

    1. Download the snap from here: https://drive.google.com/file/d/13sTP99qvUkuna_Z-QnlfeiULY45L6G8r/view?usp=sharing
    2. Run: snap install --dangerous BluOS_3.10.0_amd64.snap

    If you don't have Snap:

    1. Download the AppImage from here: https://drive.google.com/file/d/176ik18UkCObgTlfp-cwXgqYEhOhRrGhK/view?usp=sharing
    2. Run: chmod +x 'BluOS Controller-3.10.0.AppImage'
    3. Run: ./'BluOS Controller-3.10.0.AppImage'
    0
    Comment actions Permalink
  • Avatar
    David S

    Fabrice A, by virtue of it being an electron app, the source is shipped with it. Apologies as I don't want to go into details regarding decompiling and such. Plenty info out there on the web. 

    0
    Comment actions Permalink
  • Avatar
    Andrés Martinelli

    Answering to Fabrice, I tried compiling it like this:

    First install exe in windows and copy files to linux
    cd resources
    mkdir files
    asar e app.asar files/
    cd files
    electron-packager . --overwrite --electron-version=9.2.1 --asar --platform=linux --arch=x64 --icon=assets/icons/png/1024x1024.png --out=release-builds
    cd release-builds/BluOS Controller-linux-x64
    ./'BluOS Controller'

     

    It builds OK but when running it, it stays forever trying to find the device.

    Another thing is that library isnt built in the image.

    May be David can point us how he builds it, so this would help to others generate it..

    0
    Comment actions Permalink
  • Avatar
    David S

    Andrés Martinelli you are very much on the right track however just re-compiling it for Linux isn't enough to get it to work. There are 2 "patches" that I have to do with every version to get it to run in Linux. I'm hoping that one-day Tony W or someone from BlueSound will make these changes so that I/we don't have to decompile, patch, and re-compile their app every time a new version comes out. Especially knowing now that several people have been using my patched version without issues.

    Here is what is required to get it to work when built on Linux (all code lines referenced before are based on the 3.10 decompiled version)

    1. Spotify Detection: As mentioned in my first post here, I added code (after decompiling) to detect if Spotify is found on the system however for simplicity, I only check for the Snap installation. Some more work would have to be done to detect Spotify installed by other means (deb pkg, etc) To do this, the method that checks for Spotify in /app/www/js/electron.js line 979 needs one additional condition checked. I added: if(platform=='lin64') { path = "/snap/bin/spotify" } at line 995 after the windows condition
    2. Check for new versions: This one is much trickier as Bluesound has minified the app.js file which makes it much more confusing to work through. When launching the Electron app locally (electron .) you have about 1 or 2 seconds to hit CTRL + Shift + I to get the developer tools up. Doing that will show that it is hanging trying to check for a new version of the application on BlueSound's website since the platform was not detected. To address this, you have to add a couple of pieces:
    • Search for:
      f7.checkAppUpdate=function(e){var t;"macOS"==f7.appInfo.platform&&(t="http://upgrade.nadelectronics.com/desktop_app/osx/version.xml?currentVersion"),"Windows"==f7.appInfo.platform&&(t="http://upgrade.nadelectronics.com/desktop_app/windows/version.xml?currentVersion")

      Replace with:

      f7.checkAppUpdate=function(e){var t;"linux" == f7.appInfo.platform && (t = "http://upgrade.nadelectronics.com/desktop_app/osx/version.xml?currentVersion"), "macOS"==f7.appInfo.platform&&(t="http://upgrade.nadelectronics.com/desktop_app/osx/version.xml?currentVersion"),"Windows"==f7.appInfo.platform&&(t="http://upgrade.nadelectronics.com/desktop_app/windows/version.xml?currentVersion")

     

    • Search for:
      .autoupgrade,queue:{loading:!1,pagesize:200,total:0}}

      Replace with:

      .autoupgrade,queue:{loading:!1,pagesize:200,total:0},platform: "linux"}

       

    Those two changes are the only thing required to get it to launch and run on Linux. You may notice that the second code change locks it to Linux. Since I use electron-builder -linux to generate the snap and AppImage, this is fine however if Bluesound wanted to officially support Linux, they would just need to add platform detection to the app.js and provide a URL to their AppImage/Snap for checking versions. I would be more than happy to contribute this Tony W :)

    1
    Comment actions Permalink
  • Avatar
    Andrés Martinelli

    Thanks for detailing that.Mine also fails because cant find libffmpeg.so, unless I copy it to current directory where the Bluos image is.

    This does not happen to me with your image. May be your building it in a different way?

     

    Also my image weights 122MB while yours 77MB..

    0
    Comment actions Permalink
  • Avatar
    David S

    Try pulling the MacOS version (which has ffmpeg embedded) and extract the DMG with 7zip. I test with just using electron locally and then build it with electron-builder

    0
    Comment actions Permalink
  • Avatar
    Paul S

    Hi David, any chance of working your magic on the new 3.12 release?

    Regards,

    Paul

    0
    Comment actions Permalink
  • Avatar
    Andrés Martinelli

    I would have done it but my procedure is just not working.

    Also with the MacOS version.

    0
    Comment actions Permalink
  • Avatar
    Andrés Martinelli

    Its a shame Bluesound does not do the image for Linux. It would be piece of cake for them.

    2
    Comment actions Permalink
  • Avatar
    Phil Kaufman

    .....or even better, provide a web app like what MusicCast provides.  Then it doesn't matter if you are on Windows, Mac, ChromeBook, Linux, .....   I live on my laptop running LinuxMint and love controlling my RXA1020 via web interface.

    I reached out to BlueSound this week to fix a glitch with the controller software:  when selecting a song in an arguable longer list of songs in your Library (somewhere around > 1200 titles), its song "link" is messed up and plays different selection.  I thought it was a Controller App issue on Linux that David has so graciously provided our community, but the glitch exists in the Windows version Controller App.

    0
    Comment actions Permalink
  • Avatar
    Holger Dehnhardt

    Thanks to David for providing the snap image. It simply wors!

    @blusound: I really would appreciate a linux version from you. AFAIK you use linux / open source software in your controllers. Providing a linux version in my opinion is the least you can do to give something back to the community!

    1
    Comment actions Permalink
  • Avatar
    David S

    Hey everyone,

    My apologies for the delay in getting the 3.12 version up, I have been busy with work and forgot to check back on this forum. I checked today and 3.12.1 is released so I have patched and built this version as well:

    If you have Snap:

    1. Download the snap from here: https://drive.google.com/file/d/182hEaOx81wkvvvdwyVuoI8EXXnIxL2Pv/view?usp=sharing
    2. Run: snap install --dangerous BluOS_3.12.1_amd64.snap

    If you don't have Snap:

    1. Download the AppImage from here: https://drive.google.com/file/d/1QhvbrHo7vwHNlpCAHRntrm2ZsvHpMshJ/view?usp=sharing
    2. Run: chmod +x 'BluOS Controller-3.12.1.AppImage'
    3. Run: ./'BluOS Controller-3.12.1.AppImage'
    2
    Comment actions Permalink

Please sign in to leave a comment.