15 releases

0.3.4 Nov 11, 2024
0.3.3 Nov 4, 2024
0.3.2 Oct 1, 2024
0.3.1 Jun 21, 2024
0.1.2 Aug 11, 2023

#30 in Audio

Download history 1/week @ 2024-07-29 27/week @ 2024-09-23 143/week @ 2024-09-30 14/week @ 2024-10-07 109/week @ 2024-11-04 117/week @ 2024-11-11

869 downloads per month

MIT license

52KB
1.5K SLoC

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.

Output

This is the master branch of Vibe which means that it outputs its sounds via pulseaudio. Because pipewire implements the pulseaudio API, Vibe can also output sounds via pipewire.

See the rodio branch for output via rodio / cpal.

On Linux Vibe needs the pulseaudio development files. These are provided as part of the libpulse-dev package on Debian and Ubuntu distributions.

Dependencies

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).

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.

Dependencies

~6–36MB
~551K SLoC