Go to file
Ivan Bushchik 80cef97ca2
Clamp samples before encoding flac
Signed-off-by: Ivan Bushchik <ivabus@ivabus.dev>
2024-09-01 14:42:14 +03:00
.github/workflows Enable CI builds of lonelyradio, monoclient and monoclient-s 2024-09-01 10:59:26 +03:00
docs Add basic protocol documentation 2024-08-27 12:31:27 +03:00
lonelyradio_types Encode PCM the same way as any other encoder 2024-08-27 12:38:50 +03:00
monoclient Fix monolib documentation 2024-08-26 20:37:30 +03:00
monoclient-s Fix monoclient-s playlist requests 2024-09-01 11:00:22 +03:00
monoclient-x 0.7.0: Playlists, Vorbis, ALAC and more 2024-08-26 20:18:06 +03:00
monolib Fix monolib documentation 2024-08-26 20:37:30 +03:00
monoloader Fix monolib documentation 2024-08-26 20:37:30 +03:00
src Clamp samples before encoding flac 2024-09-01 14:42:14 +03:00
.dockerignore Dockerize lonelyradio 2024-08-27 13:20:53 +03:00
.gitignore 0.7.0: Playlists, Vorbis, ALAC and more 2024-08-26 20:18:06 +03:00
.rustfmt.toml 0.1.0: Initial commit 2024-01-28 20:19:45 +03:00
Cargo.lock Fix monolib documentation 2024-08-26 20:37:30 +03:00
Cargo.toml 0.7.0: Playlists, Vorbis, ALAC and more 2024-08-26 20:18:06 +03:00
Dockerfile Dockerize lonelyradio 2024-08-27 13:20:53 +03:00
LICENSE 0.1.0: Initial commit 2024-01-28 20:19:45 +03:00
README.md Dockerize lonelyradio 2024-08-27 13:20:53 +03:00

lonelyradio Music Streamer

Shuffles through your XSPF playlists or your entire library.

Decodes audio streams using symphonia (supported decoders and demuxers)

Streams music using FLAC, ALAC, Vorbis or raw PCM on clients requests.

Install server

cargo install --git https://github.com/ivabus/lonelyradio --tag 0.7.0 lonelyradio

Run

lonelyradio <MUSIC_FOLDER>

All files (recursively) will be shuffled and played back. Log will be displayed to stdout.

Look into --help for detailed info

Run in Docker

docker run -d \
   --name lonelyradio \
   --restart=unless-stopped \
   -v /path/to/music:/music \
   -p 5894:5894 \
   ivabuz/lonelyradio:latest

Playlists

Specify a directory with playlists with --playlist-dir. lonelyradio will scan them on startup and play them on clients requests.

Only the <location> and (playlist's) element would be used and only file:// is supported.

Clients

monoclient-x

monoclient-x is a SwiftUI player for lonelyradio for iOS/iPadOS/macOS

Build
  1. Build monolib with xcframework
  2. Build monoclient-x using Xcode or xcodebuild

monoclient-s

monoclient-s is a GUI player for lonelyradio built with Slint

Install
cargo install --git https://github.com/ivabus/lonelyradio --tag 0.7.0 monoclient-s

You may need to install some dependencies for Slint.

Desktop integration will be added later.

monoclient

monoclient is a CLI player for lonelyradio that uses monolib

Install monoclient
cargo install --git https://github.com/ivabus/lonelyradio --tag 0.7.0 monoclient

Usage

monoclient <SERVER>:<PORT>

Look into --help for detailed info on usage.

Other things

monoloader is a tool that allows you to download individual audio tracks from lonelyradio-compatible servers.

monolib provides a C API compatible with lonelyradio for creating custom clients.

[Protocol documentation] shortly describes the protocol used in lonelyradio. Please refer to monolib and verify custom clients with the reference lonelyradio server.

monolib API stability

As lonelyradio has not yet reached its first major release, the API may (and will) break at any point.

License

lonelyradio, monolib and monoclient, as well as all other crates in this repository, are licensed under the terms of the MIT license.