Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/aspen-reeves/bsp


https://github.com/aspen-reeves/bsp

Last synced: 3 months ago
JSON representation

Awesome Lists containing this project

README

        

# Blahaj Subsonic Player

This is, right now, a very basic music player for CC:T, that uses any subsonic server with a compatible dfpwm encoder(see below), a CC:T computer with a speaker, and optionally a monitor to display the song queue and current song.

## This project will likely not be updated, as such i am releasing under a dual license, MIT and the FAFO-2-CLAUSE version 2, because as much as i like my own license, the MIT license has actual legal backing

## Features

- Can play a playlist from a subsonic server, optionally with shuffle
- Display all the songs in the queue on a monitor
- Skip to the next song
- Not much else

### Maybe features in the future

- Pause and resume
- Volume control
- Search and play individual songs

## Installation

- download both startup.lua and md5.lua
- Set the following settings using the setting api, or edit the settings example file and run it

```sh
> set bsp.instance
> set bsp.user
> set bsp.password
> set bsp.playlist
```

Where:

- `instance` is the URL of the subsonic server
- `user` is the username to the subsonic user
- `password` is the password to the subsonic user
- `playlist` is the subsonic playlist to play

And optionally the following:

```sh
> set bsp.client
> set bsp.volume
> set bsp.displayNum
> set bsp.shuffle
```

Where:

- `client` is the client name to use when connecting to the subsonic server
- `volume` is the volume to set the speaker to
- `displayNum` is the number of songs to display on the monitor
- `shuffle` is whether to shuffle the playlist

## Server Information

- I personally use navidrome as my subsonic server, but this should work with any subsonic API compatible server
- To get dfpwm encoding support, you need to enable the `ND_ENABLETRANSCODINGCONFIG` setting in navidrome, and add a new encoder with the following settings:

- `Name`: dfpwm (this can actually be whatever you want)
- `Target Format`: dfpwm
- `Default Bit Rate`: 48
- `Command`:

```sh
ffmpeg -i %s -c:a dfpwm -ar 48k -ac 1 -f dfpwm -
```

> Warning: This setting allows for any arbitrary command to be run on the server, so be careful with what you put in here and who has access to it

## Credit and License

- Parts of startup.lua are based on code from KSSS, License MIT, Copyright (c) 2024 kotahu
- This repository includes md5.lua, License MIT, Copyright (c) 2013 Enrique García Cota + Adam Baldwin + hanzao + Equi 4 Software
- The rest of this code is now licensed under both MIT and the FAFO-2-CLAUSE version 2, [a permissive public license](https://github.com/aspen-reeves/FAFO-PL)