A Squeezebox player for iOS devices that transforms your iPhone or iPad into a high-quality network audio player for Lyrion Media Server (LMS).
- Native FLAC Support - High-quality lossless audio streaming with native decoding
- Material Web Interface - Embedded Material skin for full LMS control
- Background Audio - Continuous playback with lock screen integration
- Server Discovery - Automatic LMS server detection with failover support
- iOS Optimized - Native SwiftUI app with proper iOS integration
- FLAC (16-bit, 24-bit) with native decoding
- AAC, MP3, and other standard formats
- Note: Gapless playback not currently supported
- iOS 18.2 or later
- Lyrion Media Server (LMS/Lyrion Music Server)
- Material Skin plugin (install from LMS Settings → Plugins)
- Network connection to your LMS server
For remote access outside your home network, you'll need a secure VPN solution:
- WireGuard - Modern, fast VPN protocol
- Tailscale - Zero-config mesh VPN built on WireGuard
- OpenVPN - Traditional VPN solution
Important: Direct internet exposure of LMS servers is not recommended due to security risks. Always use a VPN for remote access to maintain security while enjoying your music collection anywhere.
LyrPlay supports native FLAC playback, but seeking within FLAC files requires server-side configuration. Without this setup, seeking will cause playback to fail with StreamingKit error 2.
-
Find your device's MAC address in the LMS web interface (Settings → Information)
-
Create a custom-convert.conf file in your LMS container:
# Enter your LMS Docker container docker exec -it your-lms-container-name /bin/bash # Create the custom configuration file nano /lms/custom-convert.conf
-
Add this transcoding rule (replace
[YOUR_DEVICE_MAC_ADDRESS]with actual MAC):# LyrPlay FLAC seeking support - add BEFORE any existing FLAC rules flc flc * [YOUR_DEVICE_MAC_ADDRESS] # IFT:{START=--skip=%t}U:{END=--until=%v}D:{RESAMPLE=-r %d} [flac] -dcs $START$ $END$ --force-raw-format --sign=signed --endian=little -- $FILE$ | [sox] -q -t raw --encoding signed-integer -b $SAMPLESIZE$ -r $SAMPLERATE$ -c $CHANNELS$ -L - -t flac -r 44100 -C 0 -b 16 - -
Restart your LMS container for changes to take effect
Add the same rule to custom-convert.conf in your LMS root directory. Common locations:
- Most installations:
[LMS_ROOT]/custom-convert.conf - Debian/Ubuntu:
/etc/slimserver/custom-convert.conf
Note: The file must be in the LMS root directory to be loaded properly, not in a subdirectory.
This configuration forces FLAC files to be transcoded with proper headers on every seek operation:
- Decodes the FLAC file from the seek position
- Re-encodes it as 16-bit FLAC with complete headers
- Enables perfect seeking without StreamingKit errors
- Only affects your specific iOS device (other players use passthrough)
Performance Impact: Minimal - transcoding happens in real-time with efficient compression.
LyrPlay is designed specifically for the Material Skin by CDrummond. Make sure you have installed the Material Skin plugin in LMS:
- Install Material Skin: LMS Settings → Plugins → Material Skin → Install
- Access App Settings: In Material web interface, go to Settings → Application
- LyrPlay Configuration: App-specific settings appear in the Material settings menu
For slower network connections or to reduce bandwidth usage, you can force MP3 transcoding:
- Open LMS Web Interface (Material Skin)
- Go to Player Options for your LyrPlay device
- Navigate to Extra Settings
- Select Audio dropdown
- Choose Bitrate Limiting and select your preferred bitrate (e.g., 320kbps, 192kbps, 128kbps)
This will transcode all audio formats to MP3 at your chosen bitrate, significantly reducing network usage while maintaining good audio quality.
Built with:
- SwiftUI for iOS interface
- StreamingKit for native FLAC support
- CocoaAsyncSocket for SlimProto communication
- WebKit for Material web interface integration
# Install dependencies
pod install
# Build from command line
xcodebuild -workspace LMS_StreamTest.xcworkspace -scheme LMS_StreamTest -configuration Debug buildReport issues or request features through GitHub Issues.
App Store Support URL: https://github.com/mtxmiller/LyrPlay/issues
See MIT License.
Copyright 2025 Eric Miller. All rights reserved.