Announcement

Collapse
No announcement yet.

[Announce] Squeezelite-X

Collapse
X
 
  • Time
  • Show
Clear All
new posts

  • Thanks for the detailed info, Greg. It's apparent that telnet is not the preferred communication method for these AVR's going forward but it does the job given its limitations on the older models. With regard to polling, the Denon plugin already has fairly robust error-handling and retry capabilities for the telnet connection so that wouldn't be a problem. However, after giving it some thought, I think it would be overkill and not worth the added overhead considering what the plugin is designed to do, which is to allow basic playback control of an AVR connected to the output of an LMS player. Although it would be useful for anyone wanting to use SLX's Denon control interface and the plugin's AVR Settings menu under Material Skin at the same time for keeping the menus in sync, that's a pretty limited audience to say the least. I'm probably the only one who's even tried it thus far and I use Android client apps exclusively for normal operation. On the other hand, if there were a way that SLX could notify the plugin of AVR settings changes made through its UI, that would be useful but would obviously require code changes on both sides. Again, a very limited target user base.

    I am curious about what additional functions SLX supports for the newer AVR models via http/xml. If you could post a screenshot of the AVR control screen for one of them, I would love to see it. Again, nice job extending AVR support to those of us still living in the 2010's. Thanks! 😊
    Sam

    Comment


    • Originally posted by SamY
      Thanks for the detailed info, Greg. It's apparent that telnet is not the preferred communication method for these AVR's going forward but it does the job given its limitations on the older models. With regard to polling, the Denon plugin already has fairly robust error-handling and retry capabilities for the telnet connection so that wouldn't be a problem. However, after giving it some thought, I think it would be overkill and not worth the added overhead considering what the plugin is designed to do, which is to allow basic playback control of an AVR connected to the output of an LMS player. Although it would be useful for anyone wanting to use SLX's Denon control interface and the plugin's AVR Settings menu under Material Skin at the same time for keeping the menus in sync, that's a pretty limited audience to say the least. I'm probably the only one who's even tried it thus far and I use Android client apps exclusively for normal operation. On the other hand, if there were a way that SLX could notify the plugin of AVR settings changes made through its UI, that would be useful but would obviously require code changes on both sides. Again, a very limited target user base.

      I am curious about what additional functions SLX supports for the newer AVR models via http/xml. If you could post a screenshot of the AVR control screen for one of them, I would love to see it. Again, nice job extending AVR support to those of us still living in the 2010's. Thanks! 😊
      SLX does not support any additional capabilities for newer Denon models. All I wanted was to be able to do the basic things needed while listening to music. I considered additional functionality and I prototyped some things in a separate app for grins, but I decided to keep it simple for SLX, so just Power/Volume/Mute/Input/SoundMode, that is it. When I occasionally want to get into the Denon settings, I provide the '...' button to bring up the Denon's own web interface. I've actually considered developing a comprehensive application like DeRemote (since that does not appear to be actively maintained anymore) but that is a bit more than I can chew right now.

      As for using http/xml interfaces, I learned alot from this project, https://github.com/ol-iver/denonavr.


      For example, I built this little app to test http/xml interfaces, but it is not part of SLX:

      Click image for larger version

Name:	DenonTest.png
Views:	424
Size:	91.5 KB
ID:	1626793


      R Greg Dawson
      Squeezelite-X

      Comment


      • Originally posted by rgdawson

        SLX does not support any additional capabilities for newer Denon models. All I wanted was to be able to do the basic things needed while listening to music. I considered additional functionality and I prototyped some things in a separate app for grins, but I decided to keep it simple for SLX, so just Power/Volume/Mute/Input/SoundMode, that is it. When I occasionally want to get into the Denon settings, I provide the '...' button to bring up the Denon's own web interface. I've actually considered developing a comprehensive application like DeRemote (since that does not appear to be actively maintained anymore) but that is a bit more than I can chew right now.

        As for using http/xml interfaces, I learned alot from this project, https://github.com/ol-iver/denonavr.
        Thanks for the info -- especially the link to the Denon AVR library Github project. That looks very interesting. If the idea of implementing an LMS "Slim::Control::Request::addDispatch" mechanism to SLX that the Denon plugin could subscribe to for notifications about AVR settings updates appeals to you at all, let me know. It would be sort of cool even if somewhat limited in its usefulness.
        Sam

        Comment


        • Originally posted by SamY

          Thanks for the info -- especially the link to the Denon AVR library Github project. That looks very interesting. If the idea of implementing an LMS "Slim::Control::Request::addDispatch" mechanism to SLX that the Denon plugin could subscribe to for notifications about AVR settings updates appeals to you at all, let me know. It would be sort of cool even if somewhat limited in its usefulness.
          First, that solution would only work SLX. I'd say any solution worth implementing, would be worth implementing of all control approaches (SLX, plain browser, etc). Second, I only poll when the Denon info is visible, and while polling, I just update the display with whatever the current info from the AVR is, without tracking what it was before. So, notifications from SLX are not the way to go. Btw, I find that it is best to always be displaying what the AVR tells you and not just assuming it will do what you tell it to do, because occasionally commands fail to be executed by the AVR. For example, on my AVR-3311, the mute command sometimes does not execute under specific circumstances which I am still characterizing. (If I send a MUTE command via HTTP immediately after POWER ON, before any other volume commands are sent, then the AVR ignores the MUTE command. Not sure if same happens using DeRemote/Telnet) I believe it is a bug in the AVR. (The older models especially are somewhat buggy.) So I think you should always be polling when displaying AVR info. I use an interval between polls of about 1000ms on pre-2016 models and 500ms on Heos models. (Heos models are amazingly fast, taking only ~5ms to perform a poll, whereas older models are usually in the 100-300 ms range at least for me and my network, and for what I am doing. That said, other queries may take longer.)

          R Greg Dawson
          Squeezelite-X

          Comment


          • Originally posted by rgdawson

            First, that solution would only work SLX. I'd say any solution worth implementing, would be worth implementing of all control approaches (SLX, plain browser, etc). Second, I only poll when the Denon info is visible, and while polling, I just update the display with whatever the current info from the AVR is, without tracking what it was before. So, notifications from SLX are not the way to go. Btw, I find that it is best to always be displaying what the AVR tells you and not just assuming it will do what you tell it to do, because occasionally commands fail to be executed by the AVR. For example, on my AVR-3311, the mute command sometimes does not execute under specific circumstances which I am still characterizing. (If I send a MUTE command via HTTP immediately after POWER ON, before any other volume commands are sent, then the AVR ignores the MUTE command. Not sure if same happens using DeRemote/Telnet) I believe it is a bug in the AVR. (The older models especially are somewhat buggy.) So I think you should always be polling when displaying AVR info. I use an interval between polls of about 1000ms on pre-2016 models and 500ms on Heos models. (Heos models are amazingly fast, taking only ~5ms to perform a poll, whereas older models are usually in the 100-300 ms range at least for me and my network, and for what I am doing. That said, other queries may take longer.)

            R Greg Dawson
            I was suggesting that SLX create notifications only when it initiates changes to the AVR settings via the UI, not when it detects them via polling. I'm not really concerned with trying to stay current with changes made to the AVR settings outside the LMS infrastructure. Polling via telnet would, for my purposes, be a waste of cpu and network resources. If my kid is playing around with the Denon remote in the living room while I'm listening to a Mahler symphony using my LMS client app, it's not a software issue, it's a parenting issue. Regarding checking the results of telnet commands, the plugin does that in nearly every case and has robust command-specific retry and error handling logic that has been fine tuned over the years to deal with the many idiosyncrasies of the Denon AVR's, one of which is to ignore (not reply to) commands which it deems superfluous or illogical. Timeouts are treated as simply another type of command response in the error routine. Depending on the situation, a timed out command might be retried or might simply trigger the next command to be executed. If you ever get around to testing with the plugin, I think you'll see that it's pretty transparent and, more importantly, it just works. Regarding telnet response times, they do seem to be somewhat command-specific. Power and Quick Select commands tend to take a little longer, as would be expected.

            Anyway, if the notification scheme is more appealing in the context of only implementing it for changes made through the SLX UI, let me know. I think it would be a nice feature.
            Last edited by SamY; 2023-01-14, 16:35.
            Sam

            Comment


            • Originally posted by rgdawson

              First, that solution would only work SLX. I'd say any solution worth implementing, would be worth implementing of all control approaches (SLX, plain browser, etc).
              Re-reading this, I'm not sure what you're saying. When you say "plain browser", do you mean the web interface to the AVR itself? If so, that would be outside the LMS infrastructure and of no concern to me. Just making sure we're on the same page.
              Sam

              Comment


              • Originally posted by SamY

                Re-reading this, I'm not sure what you're saying. When you say "plain browser", do you mean the web interface to the AVR itself? If so, that would be outside the LMS infrastructure and of no concern to me. Just making sure we're on the same page.
                At the time, my frame of mind was keeping your controls up to date regardless of the source of the change (could be using the AVR IR remote or the knob for example. So my thinking was you would want to react to that and you would not be able to if relying on SLX because it might not be running. By"plain browser", I meant someone could be running material skin and your plugin just using a browser. Now, I have read your clarification where you were asking for a notification only when SLX changes something, so my comment doesn't make sense in that context. I get you now. Sounds easy to send a broadcast notification when SLX changes a setting, so I'll take a look at that.

                R Greg Dawson
                Squeezelite-X

                Comment


                • Originally posted by rgdawson

                  At the time, my frame of mind was keeping your controls up to date regardless of the source of the change (could be using the AVR IR remote or the knob for example. So my thinking was you would want to react to that and you would not be able to if relying on SLX because it might not be running. By"plain browser", I meant someone could be running material skin and your plugin just using a browser. Now, I have read your clarification where you were asking for a notification only when SLX changes something, so my comment doesn't make sense in that context. I get you now. Sounds easy to send a broadcast notification when SLX changes a setting, so I'll take a look at that.

                  R Greg Dawson
                  Okay. That would be great. I'm thinking the parameters for the notification would be something like "IP Address" (of AVR), "zone" (for future use), "setting" (power, volume, source, mode, etc.), "new value".
                  Sam

                  Comment


                  • Originally posted by staresy
                    Hi Greg,
                    I have a found a minor issue when using the Visual Statistics plugin with material skin via Squeezelite-X, detalis here:

                    https://forums.slimdevices.com/forum...13#post1626113

                    It seems to be SLX related, I wonder if you could take a look?

                    Thanks
                    Hi Greg,
                    Did you ever get a chance to look into this?
                    Rgds
                    Location 1: LMS 8.3 on Win 10 Brix Server, x3 SB Radios, x1 Touch, x1 Controller : Location 2: LMS 8.3 on Win 10 Brix Server, x2 SB Radios, x1 Duet Receiver, x1 Controller : Alexa Mediaserver Smart Skill, Material Android, SqueezeliteX control

                    Comment


                    • Originally posted by staresy

                      Hi Greg,
                      Did you ever get a chance to look into this?
                      Rgds
                      When I open in browser outside of SLX I see the same behavior - Red 'X'. That is, when I use the same url parameters that SLX does. If I navigate in a regular browser, without any url parameters, then VS works in a browser. I have not figured out what parameter causes the error.

                      The parameters SLX passes in the url to Material Skin are:

                      ?player=xx:xx:xx:xx:xx:xx&hide=defplayer&nativePla yer&nativeColors&nativeUiChanges

                      The parameters do the following:
                      auto-select the player
                      tell Material Skin to hide its default player option from the menu as SLX does that too
                      tell Material Skin to make certain callbacks to SLX upon certain events, e.g. player/theme/color changes

                      That is all I know so far.

                      [Update] See below. New information.

                      R Greg Dawson
                      Last edited by rgdawson; 2023-01-18, 00:44.
                      Squeezelite-X

                      Comment


                      • Originally posted by staresy

                        Hi Greg,
                        Did you ever get a chance to look into this?
                        Rgds
                        Did some more experimenting and I believe the issue has to do with BASIC AUTHENTICATION. SLX passes basic authentication info to the server, even in the case where the LMS server is not password protected. In that case I've always assumed it gets ignored. But not always, apparently.

                        I believe this might be something I can fix. But, it might require a bit of work because I have to change the way I do authentication. I'm working on it. I think I need to change it so that I only send authentication info when requested (in a separate process) and not in the header or url.

                        Ignore my message above.

                        --Greg
                        Last edited by rgdawson; 2023-01-18, 00:54.
                        Squeezelite-X

                        Comment


                        • Originally posted by staresy

                          Hi Greg,
                          Did you ever get a chance to look into this?
                          Rgds
                          Update: Ok, As per message above, I have a fix for this, which I will submit soon.

                          R Greg Dawson
                          Squeezelite-X

                          Comment


                          • New Version: 2.11.36

                            Submitted to Store/OneDrive (as usual, give it a day or two or three to show up in Store).

                            Changes:
                            • Fixes issues with Visual Statistics plugin caused by incompatible authentication technique.
                            • Also fixes cropping issue with Visual Statistics plugin (and plugins like it) when using default skin.

                            R Greg Dawson
                            Squeezelite-X

                            Comment


                            • Originally posted by rgdawson
                              New Version: 2.11.36

                              Submitted to Store/OneDrive (as usual, give it a day or two or three to show up in Store).

                              Changes:
                              • Fixes issues with Visual Statistics plugin caused by incompatible authentication technique.
                              • Also fixes cropping issue with Visual Statistics plugin (and plugins like it) when using default skin.

                              R Greg Dawson
                              Thanks Greg,
                              That's fixed it, thanks for your quick help as usual.
                              Location 1: LMS 8.3 on Win 10 Brix Server, x3 SB Radios, x1 Touch, x1 Controller : Location 2: LMS 8.3 on Win 10 Brix Server, x2 SB Radios, x1 Duet Receiver, x1 Controller : Alexa Mediaserver Smart Skill, Material Android, SqueezeliteX control

                              Comment


                              • This app is awesome - can we make a donation to show our appreciation?
                                ...pablo
                                Server: Win10 and LMS 8.2.0
                                System: SB Touch -optical-> Benchmark DAC2HGC -AnalysisPlus Oval Copper XLR-> NAD M22 Power Amp -AnalysisPlus Black Mesh Oval-> KEF Reference 1
                                Other Rooms: 2x SB Boom; 1x SB Radio; 1x SB Touch-> NAD D7050 -> KEF LS50 + Velodyne Minivee Sub
                                Computer audio: workstation -USB-> audioengine D1 -> Grado RS1/Shure 1540

                                Comment

                                Working...
                                X
                                😀
                                🥰
                                🤢
                                😎
                                😡
                                👍
                                👎