| Crates.io | Vibe_Player |
| lib.rs | Vibe_Player |
| version | 0.6.0 |
| created_at | 2023-08-05 18:15:41.653214+00 |
| updated_at | 2026-01-22 18:15:17.4505+00 |
| description | A music player for the Lyrion Music Server |
| homepage | https://github.com/GeoffClements/Vibe |
| repository | https://github.com/GeoffClements/Vibe |
| max_upload_size | |
| id | 936683 |
| size | 154,645 |
Vibe is a music player that uses the SLIM TCP protocol to connect to a Lyrion Music Server, formally known as a Logitech Media Server.
Vibe is intended to be run as a user daemon and is designed to be simple and as unobtrusive as possible. It's possible to start Vibe at login using a systemd service file and this can be generated automatically.
It's possible to use auto-discovery to find the Lyrion Music Server
or, in cases where this is not possible, like when using a tailscale VPN,
then a server can be specified either by its domain name or its IP address.
The output device can be selected, in this case it's helpful to list the devices first and use the appropriate device name from the list.
Desktop notifications can be displayed when a new track starts, although this needs to be enabled at compile time. Please note that the Lyrion Music Server does not send metadata for mp3 streams, and so no notifications will be produced when playing an mp3.
To list the run-time options:
vibe -h
To see all audio output devices on your machine:
vibe -l
Vibe can create a systemd user service file for you using
vibe --create-service
If you want either a Lyrion server,
or an output device, or both to be specified in the service
file then just use the --server and --device options
, e.g.
vibe --create-service --server my.lyrion.server --device my.output.device
This will create a systemd service file under
${HOME}/.config/systemd/user. Once created,
tell systemd of the new service with
systemctl --user daemon-reload
Start the service with
systemctl --user start vibe.service
You can make it so that vibe will start whenever you login with
systemctl --user enable vibe.service
Vibe can be built with the ability to connect to different audio systems using compile-time features. These features are:
pulse for Pulseaudio (the default)pipewire for Pipewirerodio for ALSANote that if pulse is selected then it is still possible to
play audio on Pipewire systems because Pipewire implements the
Pulseaudio API as well as its own.
It is possible to compile for one, two or all three of the audio systems by selecting the appropriate features at compile time. If more than one of these features are selected then a run-time command switch ("--system" or "-a") can be used to select which audio system should be used.
At least one of these features must be selected, noting that
pulse is normally selected by default. This default can be switched off
by using --no-default-features when building.
Each audio system has its own build-time dependencies and the appropriate packages must be on the development system.
To enable new track notifications on the desktop use the notify
feature. If this is enabled, you will be able to suppress the
notifications at run time with the --quiet command option.
Build-time dependencies are:
pkg-configVibe uses the Symphonia crate for audio stream
demultiplexing and decoding.
Symphonia has optimization features that are off by default, you can switch them on
with the feature symphonia/<optimization>. These features are:
opt-simd-sseopt-simd-avxopt-simd-neonor you can switch them all on with opt-simd.
Vibe has zero run-time dependencies, all the stream demultiplexing and decoding is done natively thanks to Symphonia, a big "thank-you" to the Symphonia devs for their amazing work!