Vibe_Player

Crates.ioVibe_Player
lib.rsVibe_Player
version0.3.3
sourcesrc
created_at2023-08-05 18:15:41.653214
updated_at2024-11-04 12:25:59.390477
descriptionA music player for the Lyrion Music Server
homepagehttps://github.com/GeoffClements/Vibe
repositoryhttps://github.com/GeoffClements/Vibe
max_upload_size
id936683
size82,130
Geoff Clements (GeoffClements)

documentation

README

Vibe

About

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.

If you're looking for a well-tested, proven player then this is not it, instead you need squeezelite which has a robust, well-maintained codebase and far more run-time and compile-time options than Vibe.

However, if you'd like to give Vibe a go then please do, it should be considered as beta code and any real-world testing is welcome.

Other than pulseaudio Vibe has zero run-time dependencies, all the stream demultiplexing and codec decoding is done natively thanks to Symphonia, a big "thank-you" to the Symphonia devs for their amazing work!.

Symphonia has optimisation features that are off by default, you can switch them on with --features symphonia/<optimisation>. These features are:

  • opt-simd-sse
  • opt-simd-avx
  • opt-simd-neon

or you can switch them all on with opt-simd.

What Vibe can do

  • Play Flac, AAC, Apple lossless, Ogg/Vorbis, MP3 and PCM streams
  • Gapless playback when possible
  • Stop, play, pause and resume
  • Volume control
  • Select output device
  • Choose the name of the player
  • Play some radio streams

What Vibe can't do

  • Synchronise with other players (although it should, this is a WIP) but I need help with pulseaudio
  • Can't play some radio streams, but neither can my Squeezebox.

Compiling

In order to compile, you will need to install the development packages for libpulse (this is libpulse-dev for Ubuntu).

Background

Vibe is 100% written in Rust and has all the benefits that Rust provides such as memory safety while being as performant as C. I wrote Vibe as an exercise to practice writing a real application in Rust. If you enjoy using it, please let me know. Equally please file any bug reports and lodge any suggestions at the home page.

Commit count: 93

cargo fmt