Enhanced synchronization options for Lyrion Music Server (LMS) players, including power state synchronization. In comparison with the original version by Peter Watkins at https://tuxreborn.netlify.app/ , this adds the function to synchronize the On/Off state of players in a group. If any of the players in a sync group is switched On, all players are switched On. This allows for example to have a Radio which has a real hardware On/Off button switching a Squeezelite on RPi.
- Power Synchronization: Turn on/off all players in a sync group together
- Unsync at Power Off: Automatically unsync players when powered off
- Relative Volume Sync: Proportional volume changes across synced players
- Wait for Next Track: Avoid disruptions when joining sync groups
- Restore Playlist: Restore local playlist after leaving sync group
- Add repository URL to LMS:
https://kitschen.github.io/syncoptions-repo/dist/repodata.xml - Install "SyncOptions" from the plugin list
- Download
SyncOptions-2.3.0.zipfrom the repository - Extract to LMS plugins directory
- Restart LMS
- Enable Power Sync: Go to Settings → Plugins → SyncOptions
- Turn on "Power synchronization"
- Create a sync group with multiple players
- Test: Power on/off any player in the group
SyncOptions/
├── lib/ # Perl source code
├── share/ # Static assets
├── dist/ # Distribution artifacts │ ├── build.py # Build script
├── Makefile # Build automation
├── strings.txt # Localization strings
├── COPYRIGHT.txt # License
└── README.md # This file
- Python 3.6+
- Make (optional)
# Build the plugin
python3 build.py
# Or using Make
make build
# Clean build artifacts
make clean
# Test the build
make test
# Show repository structure
make structure- Collects source files from
lib/andshare/ - Creates plugin structure in temporary
build/directory - Builds ZIP file with proper path separators (forward slashes)
- Calculates SHA1 hash for integrity verification
- Updates repository XML with new hash
- Cleans up temporary files
- Edit source files in
lib/Plugins/SyncOptions/ - Update version in
build.pyandinstall.xml - Run
python3 build.pyto rebuild - Test the new ZIP file
The dist/ directory contains the LMS repository structure for GitHub Pages:
- Upload repository to GitHub
- Configure GitHub Pages to publish from
/distfolder - LMS will read from
https://kitschen.github.io/syncoptions-repo/dist/repodata.xml
GPL v2 - See COPYRIGHT.txt for details
- Original plugin by Peter Watkins
- Power synchronization feature added in v2.3.0