Home of the Squeezebox™ & Transporter® network music players.
Page 1 of 7 123 ... LastLast
Results 1 to 10 of 70
  1. #1
    Senior Member
    Join Date
    May 2008
    Location
    Canada
    Posts
    3,808

    ANNOUNCE: Player Groups (alpha version)

    This is a new plugin that I've been wanting to do a for a long while. Note that this thread is the alpha version, so if you are not comfortable with using unstable software, please wait for a stable version. I'm releasing this to get feedback with logs and help, not to hear "it does not work

    So ... what is this about. I like very much LMS but the way groups are working does not fit my need. I have many different players, sometimes a couple in the same room, and more than one floor. Often, I want to play in "master bedroom" or in "first floor" or in "Family room" or in "full house". Everytime I want to change that, I need to build a group. "The Synchronizer" helps a lot, but that's still a manual process.

    So this plugin creates new "virtual" players that are the combination of any real player. When a virtual player starts, the group is dynamically assembled and its disassembled when the track stops, all on the fly. That's about it, but a few things are to be known:

    - By default, power on/off to a virtual player powers on/off all members
    - Volume changes on the virtual player are applied to each member based on the change ratio. You can change the volume of individual members to adjust "base" relative volume
    - If a player belongs to multiple virtual players, the player is allocated to the virtual that started the most recent play. Remaining players belonging to the other virtual group will continue unchanged
    - When a virtual player stops, all members that were belonging to a "static" group are re-allocated to that group, but they will *not* play what's being played on remaining members of that static groups till next song starts
    - If a member of a virtual player is stopped, unfortunately the virtual player stops as well (need a LMS change to avoid that)
    - DO NOT SYNCHRONIZE A VIRTUAL PLAYER WITH ANOTHER PLAYER

    Again, it's alpha, so there is a lot of issues and corner cases untested. I'm releasing this for receive help for test and isolate such corner cases, so please send me such feedback with as many details as possible about what happen and how it happened. It's not a lot of code, but it's playing with some deep core elements of LMS that I'm not very familiar with, so be patient
    Last edited by philippe_44; 2017-12-18 at 23:17.
    LMS 7.7, 7.8 and 7.9 - 5xRadio, 3xBoom, 4xDuet, 1xTouch, 1 SB2. Sonos PLAY:3, PLAY:5, Marantz NR1603, JBL OnBeat, XBoxOne, XBMC, Foobar2000, ShairPortW, JRiver 21, 2xChromecast Audio, Chromecast v1 and v2, , Pi B3, B2, Pi B+, 2xPi A+, Odroid-C1, Odroid-C2, Cubie2, Yamaha WX-010, AppleTV 4, Airport Express, GGMM E5

  2. #2
    Senior Member
    Join Date
    Apr 2008
    Location
    Paris, France
    Posts
    2,199
    That's very interesting.
    I relate this to the templating capability the Squeezy CLI tool provides with the thing called "groups" (eg "squeezy -group 1 -on"). Extremely useful to reset the audio players to a known sync configuration.

    Quote Originally Posted by philippe_44 View Post
    - If a player belongs to multiple virtual players, the player is allocated to the virtual that started the most recent play. Remaining players belonging to the other virtual group will continue unchanged
    If I understand correctly this means the most recent virtual player could rob others from (some of) their players? If so, that sounds a bit contentious but time will tell.

    - DO NOT SYNCHRONIZE A VIRTUAL PLAYER WITH ANOTHER PLAYER
    But wouldn't that be the natural thing to do if you wanted to modify the configuration of a virtual player?


    I will now end those pointless remarks and try the plugin. I'll let you know how it doesn't work
    Thanks!
    3 SB 3 • Libratone Loop, Zipp Mini • iPeng (iPhone + iPad) • LMS 7.9 (linux) with plugins: CD Player, WaveInput, Triode's BBC iPlayer by bpa • IRBlaster by Gwendesign (Felix) • Server Power Control by Gordon Harris • Smart Mix, Music Walk With Me, What Was That Tune? by Michael Herger • PowerSave by Jason Holtzapple • Song Info, Song Lyrics by Erland Isaksson • AirPlay Bridge by philippe_44 • WeatherTime by Martin Rehfeld • Auto Dim Display, SaverSwitcher, ContextMenu by Peter Watkins.

  3. #3
    Senior Member
    Join Date
    May 2008
    Location
    Canada
    Posts
    3,808
    Quote Originally Posted by epoch1970 View Post
    That's very interesting.
    I relate this to the templating capability the Squeezy CLI tool provides with the thing called "groups" (eg "squeezy -group 1 -on"). Extremely useful to reset the audio players to a known sync configuration.


    If I understand correctly this means the most recent virtual player could rob others from (some of) their players? If so, that sounds a bit contentious but time will tell.
    Yes, the most recent "robs" the player from groups, but only for duration of the track, which seems natural (it's a dynamic group)

    But wouldn't that be the natural thing to do if you wanted to modify the configuration of a virtual player?
    No, quite the opposite. In the plugin settings, you define what real players are part of the virtual player and when playback starts on that virtual player, the group is assembled. It is disassembled as soon as the playback stops. So you don't have to do anything manually, except the initial setup.

    You can create a Virtual player named (eg) Master Bedroom that contains a Radio and a Duet. You can create another group named 1st floor that contains the same Radio and Duet, plus two Booms. You now see in the UI 6 players: 2 Booms, a Duet and a Radio, then Bedroom and 1st Floor.

    When you play on Master Bedroom, track will be played on the duet and the radio. If you start to play on 1st floor, then the duet,radio and the 2 booms start playing. The duet and the radio stop playing what they where playing before.

    The other way around, if you were playing on player 1st Floor and start playing on Master Bedroom, then the 2 Boom will continue playing whatever there were playing but the Radio and Duet will play whatever you asked them to play.

    Finally, if you had a "static" group already configured in LMS with one of the Boom and the Radio, whenever you stop playing on 1st Floor and/or Master Bedroom players, this group will be re-assembled

    I will now end those pointless remarks and try the plugin. I'll let you know how it doesn't work
    Thanks!
    LMS 7.7, 7.8 and 7.9 - 5xRadio, 3xBoom, 4xDuet, 1xTouch, 1 SB2. Sonos PLAY:3, PLAY:5, Marantz NR1603, JBL OnBeat, XBoxOne, XBMC, Foobar2000, ShairPortW, JRiver 21, 2xChromecast Audio, Chromecast v1 and v2, , Pi B3, B2, Pi B+, 2xPi A+, Odroid-C1, Odroid-C2, Cubie2, Yamaha WX-010, AppleTV 4, Airport Express, GGMM E5

  4. #4
    Does this mean I can set an alarm for a virtual player and finally have the feature I have always dreamed of?

    I want music alarms in the morning to ignore whatever syncs I had setup the night before.

    I want the sync groups to autochange in the evening before it starts playing soft music for when I get home.

    Are these possible?
    1 Touch
    2 Receivers
    1 Controller
    2 Radios

  5. #5
    Senior Member
    Join Date
    May 2008
    Location
    Canada
    Posts
    3,808
    Quote Originally Posted by FredFredrickson View Post
    Does this mean I can set an alarm for a virtual player and finally have the feature I have always dreamed of?

    I want music alarms in the morning to ignore whatever syncs I had setup the night before.

    I want the sync groups to autochange in the evening before it starts playing soft music for when I get home.

    Are these possible?
    I have to check if there is something for Alarm that I've not handled in my virtual player, but I think the answer is yes for both. Basically, you create a set of new players that are "virtual" but have all the attributes of a real player.

    Every virtual player has a list of real players as members and when something happen on that virtual player, the group is assembled on the fly. For your question 2-, you would need to play to a new "virtual player" that assembles the players you want.

    I do that quite often. When I'm going home, I like to play podcast using some low quality ceiling speakers (powered by a PiCore) together with 2 booms to cover the whole house. I've created a virtual players made of this Picore and the 2 booms. One of that boom with a duet connected to good speakers are members of another virtual player "master bedroom" (names talks for itself).

    Once I settle down to my bedroom, I use that virtual player to play to. No need to change groups anymore, my music only plays on the boom and the duet in my bedroom, the ceiling speakers and the other boom stay quiet and I don't have to do anything
    LMS 7.7, 7.8 and 7.9 - 5xRadio, 3xBoom, 4xDuet, 1xTouch, 1 SB2. Sonos PLAY:3, PLAY:5, Marantz NR1603, JBL OnBeat, XBoxOne, XBMC, Foobar2000, ShairPortW, JRiver 21, 2xChromecast Audio, Chromecast v1 and v2, , Pi B3, B2, Pi B+, 2xPi A+, Odroid-C1, Odroid-C2, Cubie2, Yamaha WX-010, AppleTV 4, Airport Express, GGMM E5

  6. #6
    Senior Member Jeff07971's Avatar
    Join Date
    Aug 2011
    Location
    London, England
    Posts
    1,053
    First of all thanks for this, it is certainly interesting.
    The email notifying me of your announcement came in just as I was syncing 3 players while I did some cleaning and was saying to myself "I wish I could have groups of players" !!!

    Some problems I have noticed:-
    (In order of increasing seriousness (To Me ))

    After using a group you cannot use synchronize on any former member of that group (do not appear in Sync menu in GUI) until the player is power cycled (software via LMS GUI) this may be due to my use of Syncoptions

    I use some plugins to control some device options, these are Powersave,Reset Volume,Volumelock these no longer function on the grouped players.

    LMS seems to transcode FLAC to MP3 (with LAME) for each member of a group despite the fact that all player can natively use FLAC (see attached logs)

    I use the PowerswitchIII plugin to control the amplifier on one of my SB3 player this does not function when the SB3 is part of a group.
    The PowerswitchIII can only be enabled from the player menu on the SB3. Because of this the SB3 is silent although playing fine.

    Good News for FredFredrickson is that Alarms do seem to work OK (Although with the caveat of the PowerswitchIII problem)

    Hope this is helpful, If you would like me to test things just PM me.

    Jeff

    Squeezebox Starting Synch.txt

    Squeezebox Starting Group.txt
    Last edited by Jeff07971; 2017-12-19 at 12:23. Reason: Typos
    Players: SliMP3,Squeezebox3 x3,Receiver,SqueezeLiteX,PiCorePlayer x3,Wandboard
    Server: LMS Version: Latest Nightly on Centos 7 VM on ESXi 6.5.0U1 on Dell T320
    Plugins: AutoRescan/BBCiPlayer/PowerSave/PowerSwitchIII/Squeezecloud/Spotty/Player Groups
    Remotes: iPeng9/Orangesqueeze/PC/Jivelite/SqueezeLiteX
    Music: 522GB,1660 albums with 23087 songs by 5204 artists mostly FLACs

    Want a webapp ? See http://forums.slimdevices.com/showth...Webapp-for-LMS

  7. #7
    Senior Member
    Join Date
    May 2008
    Location
    Canada
    Posts
    3,808

    ANNOUNCE: Player Groups (alpha version)

    Quote Originally Posted by Jeff07971 View Post
    First of all thanks for this, it is certainly interesting.
    The email notifying me of your announcement came in just as I was syncing 3 players while I did some cleaning and was saying to myself "I wish I could have groups of players" !!!
    Thanks very much for the feedback this is precisely what I need and it's super useful.
    Some problems I have noticed:-
    (In order of increasing seriousness (To Me ))

    After using a group you cannot use synchronize on any former member of that group (do not appear in Sync menu in GUI) until the player is power cycled (software via LMS GUI) this may be due to my use of Syncoptions
    I can't reproduce that. Can you describe your Syncoptions and exactly what's happening?
    I use some plugins to control some device options, these are Powersave,Reset Volume,Volumelock these no longer function on the grouped players.
    Likely solved, at least Volume although I'm not sure precisely what VolumeReset/Lock do (I need to read about these)
    LMS seems to transcode FLAC to MP3 (with LAME) for each member of a group despite the fact that all player can natively use FLAC (see attached logs)
    Solved
    I use the PowerswitchIII plugin to control the amplifier on one of my SB3 player this does not function when the SB3 is part of a group.
    The PowerswitchIII can only be enabled from the player menu on the SB3. Because of this the SB3 is silent although playing fine.
    Very likely solved

    Good News for FredFredrickson is that Alarms do seem to work OK (Although with the caveat of the PowerswitchIII problem)

    Hope this is helpful, If you would like me to test things just PM me.

    Jeff
    Last edited by philippe_44; 2017-12-20 at 00:26.
    LMS 7.7, 7.8 and 7.9 - 5xRadio, 3xBoom, 4xDuet, 1xTouch, 1 SB2. Sonos PLAY:3, PLAY:5, Marantz NR1603, JBL OnBeat, XBoxOne, XBMC, Foobar2000, ShairPortW, JRiver 21, 2xChromecast Audio, Chromecast v1 and v2, , Pi B3, B2, Pi B+, 2xPi A+, Odroid-C1, Odroid-C2, Cubie2, Yamaha WX-010, AppleTV 4, Airport Express, GGMM E5

  8. #8
    Babelfish's Best Boy mherger's Avatar
    Join Date
    Apr 2005
    Location
    Switzerland
    Posts
    20,004

    ANNOUNCE: Player Groups (alpha version)

    Overall this is looking great! I'm still facing an issue I've mentioned
    a few days ago due to a sprintf() expression and my oldish Perl version.
    But I've sent you a pull request which fixes this.

    One more "issue" I'm having is the terminology. The settings pages are
    talking about "static groups". I have no idea what this is. What would
    be "dynamic groups"? I tried to translate things, but it's becoming
    complicated when you don't understand the meaning in the first place :-).

    I'll keep playing with this. Thank you very much for your effort!

    --

    Michael

  9. #9
    Senior Member
    Join Date
    May 2008
    Location
    Canada
    Posts
    3,808

    ANNOUNCE: Player Groups (alpha version)

    Quote Originally Posted by mherger View Post
    Overall this is looking great! I'm still facing an issue I've mentioned
    a few days ago due to a sprintf() expression and my oldish Perl version.
    But I've sent you a pull request which fixes this.

    One more "issue" I'm having is the terminology. The settings pages are
    talking about "static groups". I have no idea what this is. What would
    be "dynamic groups"? I tried to translate things, but it's becoming
    complicated when you don't understand the meaning in the first place :-).

    I'll keep playing with this. Thank you very much for your effort!

    --

    Michael
    I agree the terminology is not the best. I mean by static group a group in the traditional sense of LMS that is assembled manually by the user. As opposed to the group that are created by this plugin which only last during playback and disappear when the group player stops. Maybe temporary vs permanent is better? I don't know.

    Thanks for the pull request, I'll merge it today. Do you think you could have a look at the small change I've suggested in LMS (see my message on the développer part of this forum)? I think it would be a better user experience if the group player does not stop when the user starts playing something else on one member of the group. I'm trying to test it but so far I've not been able to have the LMS version with source code to run
    LMS 7.7, 7.8 and 7.9 - 5xRadio, 3xBoom, 4xDuet, 1xTouch, 1 SB2. Sonos PLAY:3, PLAY:5, Marantz NR1603, JBL OnBeat, XBoxOne, XBMC, Foobar2000, ShairPortW, JRiver 21, 2xChromecast Audio, Chromecast v1 and v2, , Pi B3, B2, Pi B+, 2xPi A+, Odroid-C1, Odroid-C2, Cubie2, Yamaha WX-010, AppleTV 4, Airport Express, GGMM E5

  10. #10
    Babelfish's Best Boy mherger's Avatar
    Join Date
    Apr 2005
    Location
    Switzerland
    Posts
    20,004

    ANNOUNCE: Player Groups (alpha version)

    > Thanks for the pull request, I'll merge it today. Do you think you could
    > have a look at the small change I've suggested in LMS (see my message on
    > the développer part of this forum)?


    Could you point me to the posting? I didn't see any suggestion...

    --

    Michael

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •