Announcement

Collapse
No announcement yet.

SqueezeBox plugin V2.0.0 beta 2

Collapse
This is a sticky topic.
X
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    SqueezeBox plugin V2.0.0 beta 2

    Attached is version 2.0.0 beta 2 of the SqueezeBox plug-in. Compared to previous 2.0.0 Beta version this version includes a few major enhancements
    • Caching of Genres, Artists and Albums library information
    • HS-Touch integration witch fixes for several issues
    • Speech Proxy support enabling to route HS2 speech to SqueezeBox players
    • SqueezeBox player alarm integration
    • Actions to synchronize/un-synchronize players

    The Speech proxy supports two approaches to integrate the squeezebox players as speech clients. One uses the SqueezeBox WaveInput plug-in to stream the output of one of your HS2 Speaker client to the players and another uses a plug-in built-in TTS engine to generate wav files that will be played on the speaker. Since the plug-in is not a real speaker client, the second choice might provide less delays, but might not be 100% follow the speaker client protocols (and all speech proxy rules that you might have). The first approach requires installation of the SqueezeBox WaveInput plug-in, though I experienced delays when streaming HS2 speaker clients through it. All this is fairly new code and feedback will be welcome.

    Beta Updates:
    Uploaded a new revision 2.0.0.7 that corrects returning the Album length using the Music APIs/HSTouch.

    Uploaded a new revision 2.0.0.8:
    • Revised the logic of the speak proxy. You should experience fewer delays on speaker clients as text is spoken. Note that this pug-in does not do any fancy handling as other speak proxy plug-ins do
    • Fixed an issue to correctly disables the proxy registration when disabled in the plug-in. This will avoid the double speak some experienced.
    • Easier integration with other speech proxy plug-ins. Added two APIs that will let you enable and disable SqueezeBox players as your proxy server of choice indicates that zones should be turned on or off. As before it only enables SqueezeBox players for which the speak volume HS2 device has been set to a positive value (i.e. not 0). The APIs are
      Public Sub EnableSpeaking()
      Public Sub DisableSpeaking()
    • New API to speak text using the built in TTS. It returns the duration of the track. It assumes you call EnableSpeaking() prior to calling this API and will either use the built in TTS or call hs.peak in case you use the wavein approach to integrate a speaker client with the squeezebox plug-in
      Public Function Speak(ByVal text As String) As Double
    • Changed the default album images from png to jpg as they use less resources

    Uploaded a new revision 2.0.0.9:
    • Fixed issue displaying SB plugin artwork (From Sounds & Effects, Pandora plug-ins)
    • Fixed issue with Music API PlayIfPaused.
    • Added configuration option (see Plug-in Configuration page) to include or not built-in menus in player menus (Devices, Events, Phone Messages, CID and Misc).

    Uploaded a new revision 2.0.0.10:
    • Fixed issue synchronizing all players when calling hspi.BroadcastActionByName("synchronize player", "aPlayerName")

    Uploaded a new revision 2.0.0.11:
    • Added new scripting APIs to query the server: PlayerQueryCLICommand and ServerQueryCLICommand. Please refer to the documentation for the exact signatures.

    Uploaded a new revision 2.0.0.12:
    • Removed the "No Status Trigger" hs2 device option for the players "title" devices,


    <B>NOTE:</B> The release version (V2.0.1.0) of this beta is available via the Updater.
    Last edited by pcp; December 22, 2010, 07:51 PM. Reason: Updated plug-in version

    #2
    I am trying your plugin. The announcements don't seem to play correctly on my SB boom. I get an error on the SB that the file speakin has bad headers. Now Squeezebox Server is on a separate PC and the speakin file error is referring to my HS PC. Is that the problem? Do I need a squeezebox server directory on the HS PC? If so, where?

    OK, it worked once when I shutdown HS (I have HS say that it is shutting down over the clients). I tried a second time and did not work. I tried uninstalling SB Server and reinstalling. Still no luck. I also noticed the follwing error in the HS log after checking use HS log in the settings:

    3/16/2010 9:25:25 PM ~!~Error~!~Error processing plug-in links for /SqueezeBox/SpeakIn.wav requested by from 192.168.0.100, at:110, Index was outside the bounds of the array.
    3/16/2010 9:25:25 PM ~!~Error~!~Error processing plug-in links for /SqueezeBox/SpeakIn.wav requested by from 192.168.0.100, at:110, Index was outside the bounds of the array.
    Last edited by heatvent; March 16, 2010, 09:28 PM.

    Comment


      #3
      Bump

      Comment


        #4
        If you use the built in TTS rather than streaming a Speaker client to SB via the WaveIn plug-in, the Squeezebox plug-in will create a sound file with the text to speak. The file will be located in {HS2 installation directory}\html\SqueezeBox\SpeakIn.wav.

        1) I assumed you configured the plug-in to not use the waveIn on the plug-in configuration page.
        2) Also ensure that you set the Speak Volume HS2 device (Device is 'Player 2 Speak Volume') for at least one of the players to a value greater than 0. If set to 0 it is not enabled for that player.
        3) Check first that this file exists and you can listen to it on that PC with any media player.
        4) Next try to use a browser (on the HS2 server or a different server) and enter http:{hs2-server}:{hs2-http-port}/SqueezeBox/SpeakIn.wav which should download the file and offer to play it with a media player.
        5) If 4) works, try to enter the same URL in the SB Server web page for one of the players as a direct 'Tun in URL' (you can find it in the web page by navigating to Home > Internet Radio > Tune In URL.

        Comment


          #5
          Hi,
          again thanks for an nice update. I haven't tested it much yet, but i did encounter a problem. When i try to go to the config page i get nothing (except the HS menu on top) and in the HS log i get this error message:
          22.03.2010 13:56:12 - Error - Calling GenPage for plugin, link: /squeezebox?pg=config Error: Exception from HRESULT: 0x80045039.

          After some google searching it seems like its related to SAPI and TTS.

          Seen this before?

          Thanks

          Comment


            #6
            No I have not seen this. Even though use by HS2's voice recognition, have you by any chance not installed the Microsoft Speech Recognizer Engine?

            Comment


              #7
              Originally posted by pcp View Post
              No I have not seen this. Even though use by HS2's voice recognition, have you by any chance not installed the Microsoft Speech Recognizer Engine?
              I dont think so. But here are some screen shots from speech control panel in Xp where HS is installed. I do NOT have speaker or microphone connected.

              I have norwegian regional settings on XP.
              I did also notice that My duet controller did not parse the xml file for HS control. Might it be connected?

              I remember having that before, but i can not find duplicate names or scandinavian letters in the device names.
              Attached Files

              Comment


                #8
                I will have to look into this and don't believe the two are related. For the menus on the Duet, have you checked the log file? With the newer versions, even if you have duplicate events or device names per category it should resolve it automatically. Could you email me the log file (with debugging enabled) for both cases? Thanks

                Comment


                  #9
                  Markus, I updated the plug-in version; it should resolve the issue you encountered (or at least better catch errors and log them).

                  Comment


                    #10
                    pcp,

                    I am trying your plugin and like what I am seeing. I am now on beta 6.
                    I am seeing a few errands wich I will list here.

                    I have three players running, one slimdevice en two squeezebox slaves.
                    I have the slimdevice setup in HSTouch for control. The other players are set to synchronize.
                    When I disconnect or switch off one player (not the slimdevice wich is in HSTouch) HSTouch is not anymore updating the image or title/album/artist of the current playing song. After a restart of HS (I guess the plugin) updates take place again until one of the players is changing on/off/disconnect.

                    A second issue is with the speakerclient. I have tried without Wavein. The result is a speech on the players wich is way to fast in speech to understand it, I did try to set the rate lower, but at -10 it is still to fast to understand a word of it. As unwanted extra, windows speaker client PC's start windows media player and play the speech in Windows media player(and at correct rate) This is not wantend behaviour.

                    After that I tried usinng wavein. The result is that players show "Wavein:0" and nothing happens anymore. The music does not play anymore until I choose "Next".

                    A third issue is also with the speaker clientis. Whenever speaker clients are speaking (thus also aimed for other clients then Squeezeclients) the music pauses and very often does not unpause after speech is done, wich makes it very unreliable to work with.

                    I just started playing with your plugin, so maybe above issues come from errors from my side. In that case I hope you can help me on the way, otherwise I hope you correct the issues mentioned here.

                    I like what I am seeing, I guess I will be a soon to be solid user of your plugin

                    Wim
                    -- Wim

                    Plugins: JowiHue, RFXCOM, Sonos4, Jon00's Perfmon and Network monitor, EasyTrigger, Pushover 3P, rnbWeather, BLBackup, AK SmartDevice, Pushover, PHLocation, Zwave, GCalseer, SDJ-Health, Device History, BLGData

                    1210 devices/features ---- 392 events ----- 40 scripts

                    Comment


                      #11
                      Originally posted by pcp View Post
                      Markus, I updated the plug-in version; it should resolve the issue you encountered (or at least better catch errors and log them).
                      Thanks The page now displays fine. But I get this error message in the log when i load it.

                      29.03.2010 16:04:58 - SqueezeBox Error - An unexpected error occured in the GetVoices function/subroutine: [System.Runtime.InteropServices.COMException (0x80045039): Exception from HRESULT: 0x80045039 at Microsoft.VisualBasic.CompilerServices.LateBinding.LateGet(O bject o, Type objType, String name, Object[] args, String[] paramnames, Boolean[] CopyBack) at Microsoft.VisualBasic.CompilerServices.NewLateBinding.LateGe t(Object Instance, Type Type, String MemberName, Object[] Arguments, String[] ArgumentNames, Type[] TypeArguments, Boolean[] CopyBack) at HSPI_SQUEEZEBOX.HSPI.GetVoices()]

                      Comment


                        #12
                        Error after startup

                        pcp,

                        Tonight, while starting HS I got the folowing error in the log:
                        Code:
                        <TABLE border=0 cellSpacing=2 cellPadding=0 width="100%"><TBODY><TR><TD class=LOGEntry0 colSpan=8 align=left>[SIZE=1][COLOR=#000000]Device: Systeem Squeezebox Status ($1) Value set to 1[/COLOR][/SIZE]</TD></TR><TR><TD class=event noWrap align=left>[SIZE=1]29-3-2010 17:46:47 [/SIZE]</TD><TD class=event colSpan=3 align=left>[SIZE=1]Event [/SIZE]</TD><TD class=event colSpan=8 align=left>[SIZE=1]Deleting event after run: "Delayed Actions Status (delayed action)"[/SIZE]</TD></TR><TR><TD class=event noWrap align=left>[SIZE=1]29-3-2010 17:46:47 [/SIZE]</TD><TD class=event colSpan=3 align=left>[SIZE=1]Event [/SIZE]</TD><TD class=event colSpan=8 align=left>[SIZE=1]Event Trigger "Status (delayed action)-1"[/SIZE]</TD></TR><TR><TD class=LOGDateTime1 noWrap align=left>[SIZE=1][COLOR=#000000]29-3-2010 17:46:47 [/COLOR][/SIZE]</TD><TD class=LOGType1 colSpan=3 align=left>[SIZE=1][COLOR=#000000]Device Control [/COLOR][/SIZE]</TD><TD class=LOGEntry1 colSpan=8 align=left>[SIZE=1][COLOR=#000000]Device: Systeem Squeezebox Status ($1) Value set to 1[/COLOR][/SIZE]</TD></TR><TR><TD class=event noWrap align=left>[SIZE=1]29-3-2010 17:46:47 [/SIZE]</TD><TD class=event colSpan=3 align=left>[SIZE=1]Event [/SIZE]</TD><TD class=event colSpan=8 align=left>[SIZE=1]Deleting event after run: "Delayed Actions Status (delayed action)-1"[/SIZE]</TD></TR><TR><TD class=LOGDateTime1 noWrap align=left>[SIZE=1][COLOR=#000000]29-3-2010 17:46:47 [/COLOR][/SIZE]</TD><TD class=LOGType1 colSpan=3 align=left>[SIZE=1][COLOR=#000000]SqueezeBox Info [/COLOR][/SIZE]</TD><TD class=LOGEntry1 colSpan=8 align=left>[SIZE=1][COLOR=#000000]Connected to SqueezeCenter[/COLOR][/SIZE]</TD></TR><TR><TD class=LOGDateTime0 noWrap align=left>[SIZE=1][COLOR=#000000]29-3-2010 17:46:47 [/COLOR][/SIZE]</TD><TD class=LOGType0 colSpan=3 align=left>[SIZE=1][COLOR=#000000]SqueezeBox Info [/COLOR][/SIZE]</TD><TD class=LOGEntry0 colSpan=8 align=left>[SIZE=1][COLOR=#000000]SqueezeCenter Player Count: 3[/COLOR][/SIZE]</TD></TR><TR><TD class=LOGDateTime1 noWrap align=left>[SIZE=1][COLOR=#000000]29-3-2010 17:46:47 [/COLOR][/SIZE]</TD><TD class=LOGType1 colSpan=3 align=left>[SIZE=1][COLOR=#000000]SqueezeBox Info [/COLOR][/SIZE]</TD><TD class=LOGEntry1 colSpan=8 align=left>[SIZE=1][COLOR=#000000]Disconnected from SqueezeCenter[/COLOR][/SIZE]</TD></TR><TR><TD class=LOGDateTime0 noWrap align=left>[SIZE=1][COLOR=#000000]29-3-2010 17:46:47 [/COLOR][/SIZE]</TD><TD class=LOGType0 colSpan=3 align=left>[SIZE=1][COLOR=#000000]SqueezeBox Info [/COLOR][/SIZE]</TD><TD class=LOGEntry0 colSpan=8 align=left>[SIZE=1][COLOR=#000000]Connected to SqueezeCenter[/COLOR][/SIZE]</TD></TR><TR><TD class=LOGDateTime1 noWrap align=left>[SIZE=1][COLOR=#000000]29-3-2010 17:46:47 [/COLOR][/SIZE]</TD><TD class=LOGType1 colSpan=3 align=left>[SIZE=1][COLOR=#000000]SqueezeBox Info [/COLOR][/SIZE]</TD><TD class=LOGEntry1 colSpan=8 align=left>[SIZE=1][COLOR=#000000]SqueezeCenter Player Count: 3[/COLOR][/SIZE]</TD></TR><TR><TD class=LOGDateTime0 noWrap align=left>[SIZE=1][COLOR=#ff0000]29-3-2010 17:46:47 [/COLOR][/SIZE]</TD><TD class=LOGType0 colSpan=3 align=left>[SIZE=1][COLOR=#ff0000]SqueezeBox Error [/COLOR][/SIZE]</TD><TD class=LOGEntry0 colSpan=8 align=left>[SIZE=1][COLOR=#ff0000]An unexpected error occured in the tcpClient_onLineArrival function/subroutine: [System.NullReferenceException: De objectverwijzing is niet op een exemplaar van een object ingesteld. bij HSPI_SQUEEZEBOX.hspi_player.GetCurrentPlaylistIndex() bij HSPI_SQUEEZEBOX.hspi_player.UpdatePlayerDevices() bij HSPI_SQUEEZEBOX.hspi_player.CreatePlayerDevices() bij HSPI_SQUEEZEBOX.HSPI.getOrCreatePlayer(Int32 index, String ID) bij HSPI_SQUEEZEBOX.HSPI.tcpClient_onLineArrival(String str)][/COLOR][/SIZE]</TD></TR></TBODY></TABLE>
                        I hope this will help to catch this bug?

                        Wim
                        -- Wim

                        Plugins: JowiHue, RFXCOM, Sonos4, Jon00's Perfmon and Network monitor, EasyTrigger, Pushover 3P, rnbWeather, BLBackup, AK SmartDevice, Pushover, PHLocation, Zwave, GCalseer, SDJ-Health, Device History, BLGData

                        1210 devices/features ---- 392 events ----- 40 scripts

                        Comment


                          #13
                          pcp,

                          I tried to use the musicapi today and found an error that might relate to HSTouch not responding after a while.
                          If I run the following script nothings seems to happen. But if one of the players is playing already, the device will stop playing at all. At the same time HSTouch is not responding as I told you in the earlier messages. The script part is working in the media Player plugin of HS. Also pressing the play buttons in the HS HTML interface does not do anything anymore. As if the plugin comes in a error state, but not showing it in the log.

                          The scriptsample:

                          Function Main(ByVal parms AsObject) AsBoolean

                          Dim MediaPlayer AsObject = hs.Plugin("Squeezebox").GetMusicAPI(1)
                          MediaPlayer.PlayMusic(
                          "", "", "Joy")

                          EndFunction

                          This is just the first statement I was testing.

                          This ends with non responsive plugin

                          Maybe you are wondering why I am not using the script commands outsike the MusicApi, this is because I have a plugin for my wake up needs. This plugin is using Media player already, but I want to add another room to wake up with squeezebox. For consistency I want to use the MusicAPI, because that is a lot easier to use.

                          Wim
                          -- Wim

                          Plugins: JowiHue, RFXCOM, Sonos4, Jon00's Perfmon and Network monitor, EasyTrigger, Pushover 3P, rnbWeather, BLBackup, AK SmartDevice, Pushover, PHLocation, Zwave, GCalseer, SDJ-Health, Device History, BLGData

                          1210 devices/features ---- 392 events ----- 40 scripts

                          Comment


                            #14
                            Wim,

                            Do you have playlist called Joy and does the API call return? Have you tried by instead specifying an Artist or Genre? HSTouch will use the same call when playing music.

                            To use the wave:in plug-in ensure all is configured fine. If you play music on the PC/soundcard that voice should be streamed to the SqueezeServer. You can try all this independently of the HS2 plugin. It took me some trial as well to get the mixer and streaming work fine. If you the built-in TTS, does changing the rate make any difference? Works fine here, though will I will try to see if I can reproduce it.

                            Comment


                              #15
                              This error was trapped by the plug-in, which is the SAPI error SPERR_NO_MORE_ITEMS. Have you configured your speech/sapi interface?

                              Originally posted by markus.bergvoll View Post
                              Thanks The page now displays fine. But I get this error message in the log when i load it.

                              29.03.2010 16:04:58 - SqueezeBox Error - An unexpected error occured in the GetVoices function/subroutine: [System.Runtime.InteropServices.COMException (0x80045039): Exception from HRESULT: 0x80045039 at Microsoft.VisualBasic.CompilerServices.LateBinding.LateGet(O bject o, Type objType, String name, Object[] args, String[] paramnames, Boolean[] CopyBack) at Microsoft.VisualBasic.CompilerServices.NewLateBinding.LateGe t(Object Instance, Type Type, String MemberName, Object[] Arguments, String[] ArgumentNames, Type[] TypeArguments, Boolean[] CopyBack) at HSPI_SQUEEZEBOX.HSPI.GetVoices()]

                              Comment

                              Working...
                              X