mtxmiller/LyrPlay
mtxmiller/LyrPlay has 46 GitHub stars and 6 forks. GitHot measured 0 stars in 24 hours. Last checked 2026-11-09 19:16 UTC. Last push 2026-11-03.
Squeezebox player for iOS with native FLAC support and Material web interface integration
What you can do
- Gapless Playback - True gapless transitions between tracks using BASS push streams
- Native FLAC / Opus Support - High-quality lossless or efficiently compressed audio streaming with native decoding
- Material Web Interface - Embedded Material skin for full LMS control
- Background Audio - Continuous playback with lock screen integration and position recovery
Measured star growth
- in 24h
- 0
- in 7 days
- Update delayed
- in 15 days
- Update delayed
- in 1 month
- Update delayed
Net star changes over overlapping periods, not daily totals. Missing measurements are left blank. Stars measure attention, not software quality.
README.md
OriginalLyrPlay
A Squeezebox player that turns your iPhone, iPad or Apple TV into a high-quality network audio player for Lyrion Media Server (LMS).
Features
- Gapless Playback - True gapless transitions between tracks using BASS push streams
- Native FLAC / Opus Support - High-quality lossless or efficiently compressed audio streaming with native decoding
- Material Web Interface - Embedded Material skin for full LMS control
- Background Audio - Continuous playback with lock screen integration and position recovery
- Keep Playing Offline (1.7.9) - Saves the next songs in your queue on the phone and plays them from there, so music keeps going through dead spots and the server picks up where you are. Settings → Offline: Off, On Wi-Fi or Always, with Download Ahead up to 120 minutes. Library music only, not radio
- Rides Out Network Drops (1.7.9) - A short drop no longer restarts the song; on a slow link the stream rebuffers instead of chopping, and saved-song downloads wait while the stream catches up
- Interruption Handling - Smart pause/resume for phone calls and other app interruptions
- Server Discovery - Automatic LMS server detection with failover support
- iOS Optimized - Native SwiftUI app with BASS-managed audio sessions
- Custom CarPlay Interface - Native CarPlay interface with album browsing, track lists, playback controls, Hits, and Go to Artist
- Siri Voice Commands - "Hey Siri, play [artist/album/song] on LyrPlay" with automatic LMS search
- Player Synchronization - Sync playback across multiple LMS players
- HTTP Authentication - Support for password-protected LMS servers
- HTTPS (1.7.9) - Works with HTTPS-only setups such as a reverse proxy in front of LMS (contributed by @magicus)
- Native Sample Rate Output for USB DACs - Switches the DAC to each track's sample rate (no resampling). For an unaltered signal, turn on Fixed Output and set ReplayGain to Off in Settings → Audio, and control volume on your DAC
- Apple TV App - Native tvOS player with library browsing, search and a visualizer, in the same App Store listing as the iOS app
- Premium Icon Pack - 11 alternate app icons available as optional in-app purchase
Audio Format Support
- FLAC, MP3, AAC, M4A, Opus, OGG Vorbis, WAV - All formats supported with native BASS codecs
- Gapless Playback - Supported across all formats using push stream architecture
- Maximum Bitrate Selection for Transcoding - Adjustable in App Settings
Requirements
- iOS 15.6 or later (iPad app also runs on macOS via "Designed for iPad")
- tvOS 26 or later for the Apple TV app
- Lyrion Media Server (LMS/Lyrion Music Server)
- Material Skin plugin (install from LMS Settings → Plugins)
- Network connection to your LMS server
Remote Access
For remote access outside your home network, you'll need a secure VPN solution such as Tailscale.
- Install Tailscale on your iOS device and your server.
- Enable MagicDNS - ensure server and iOS device have MagicDNS enabled.
- Enter the MagicDNS name of your server into LyrPlay during app setup.
- Listen to LyrPlay on cellular!
If you already run LMS behind an HTTPS reverse proxy, turn on Use HTTPS for web interface in LyrPlay's server settings.
Important: Direct internet exposure of LMS servers is not recommended due to security risks.
Enabling Mobile Transcode (Required for Opus / WAV)
LyrPlay can play MP3/AAC/WAV and FLAC without additional plugins, but the MobileTranscode Plugin makes app more capable. For full functionality, use the Mobile Transcode plugin to convert FLAC to Opus.
To install it go to Server Settings -> Manage Plugins -> 3rd Party -> Mobile Transcode
Mobile Transcode Plugin URL: https://raw.githubusercontent.com/mtxmiller/MobileTranscode/main/repo.xml
NOT REQ'd with plugin but if you want to manually configure your custom-convert.conf please see reference here: https://github.com/mtxmiller/MobileTranscode/blob/main/custom-convert.conf
Benefits:
- Opus 256kbps - Bandwidth efficient modern codec with working seek/scrub support
- Lower Data Usage - Smaller file sizes for mobile streaming
- Full Seeking - For manual seek and auto position recovery on App-open
- Small Offline Copies - With MobileTranscode 1.4 or later, songs saved by Keep Playing Offline download in the stream's format (Opus or Ogg) instead of full-size FLAC
NOTE — Opus Tools (required for Opus transcoding):
The official Lyrion Docker image (lmscommunity/lyrionmusicserver) includes opus-tools since November 2025 — just use a current image. On older images or non-Docker installs, install opus-tools with your package manager (e.g. apt-get install opus-tools).
NOTE — Leave "Prefer native format" on in LMS (LyrPlay 1.8.0 and later):
LMS's Prefer native format (decoding on the player) whenever possible (Settings → File Types) is on by default, and from LyrPlay 1.8.0 it should stay on. The Opus, Ogg Vorbis and Lossless (WAV) settings no longer advertise FLAC to the server, so FLAC files stream as Opus, Ogg or WAV with the MobileTranscode rules (as MP3 on a server without them) whatever the option says, and with the option on, files LyrPlay can play as they are (MP3, AAC, Opus, Ogg) reach it untouched. With the option off, LMS's stock rules transcode Opus, Ogg, AAC and ALAC files to FLAC for the Lossless (FLAC) setting, which costs bandwidth for nothing. If you turned it off for an earlier LyrPlay, turn it back on. Other players are not affected by LyrPlay's change: it only alters what LyrPlay says about itself.
Earlier LyrPlay versions listed FLAC among their formats, and with the option on LMS kept FLAC and skipped the Opus rule; that is why older instructions said to uncheck it. If you still run one of those versions, uncheck it under File Format Conversion Setup and the LMS log shows Matched: flc->ops via: [flac] ... | [opusenc] ... when playing FLAC tracks.
Usage
Material Skin Integration
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 under ‘Application’
Development
Built with:
- SwiftUI for iOS interface
- BASS audio library for streaming playback with gapless support - Un4Seen
- CocoaAsyncSocket for SlimProto communication (via CocoaPods)
- WebKit for Material web interface integration
- BASS integration via Swift bridging header (libbass, libbassmix, libbassflac, libbassopus)
Support
Report issues or request features through GitHub Issues.
App Store Support URL: https://github.com/mtxmiller/LyrPlay/issues
Support LyrPlay Development
LyrPlay is free and open source. If it's been useful to you, consider supporting continued development:
- ⭐ Star this repository (helps with visibility)
- 💖 Sponsor me on GitHub (monthly or one-time support)
- 🐛 Report issues and suggest features
- 🤝 Contribute code if you're a developer
Your support helps maintain LyrPlay and add community-requested features!
PayPal Donations
License
LyrPlay's own source code is released under the MIT License. Copyright 2025 Eric Miller.
Third-party components keep their own licences; see THIRD_PARTY_NOTICES.md. In particular, BASS is not open source: LyrPlay uses it under a commercial licence from un4seen developments, and the MIT License does not cover it.
Explore related projects
ytdl-org/youtube-dl
Command-line program to download videos from YouTube.com and other video sites
141,500 starsexcalidraw/excalidraw
Virtual whiteboard for sketching hand-drawn like diagrams
135,396 starsgodotengine/godot
Godot Engine – Multi-platform 2D and 3D game engine
119,840 starsmrdoob/three.js
JavaScript 3D Library.
117,983 stars