Affected files: .obsidian/plugins/obsidian-omnivore/data.json .obsidian/plugins/update-time-on-edit/data.json 01. Projects/Juno/Outline.md 01. Projects/Juno/README.md Read Later/2024-03-22 - How to Create a Great Personal Portfolio Page – a Handbook for Beginners.md Read Later/2024-03-25 - noboilerplate-scripts-27-coping-mechanisms.md at main · 0atman-noboilerplate.md |
||
|---|---|---|
| .. | ||
| Outline.md | ||
| README.md | ||
| created | updated | status |
|---|---|---|
| 2024-03-26 16:02 | 2024-03-26 16:09 | Backlog |
Juno
Resources
- Navidrome
- Azuracast
- Cadence (Use Icecast and Liquidsoap)
- forte
- Simple MPD in Rust
- fd (for filesystem walking)
Kickoff
Completion Criteria
This project will be completed when:
Have a working CLI music player with the following features:
- Play local files or remote streams (like youtube streams).
- Local or remote (HTTP) audio output.
- MPRIS support
- Dynamic server-client design:
- On start it attach to a socket, a local unix file socket (default) or a port to allow for remote connections (MPD like).
- If a second instance is invoque on the same socket, it will act as a client to the process running on that socket, allowing to modify the playback and exiting immediately (MPC like).
- By default the server process will end when the queue is empty unless it's ran in "daemon" mode. This allows to continue using the clients to add more music later.
Brainstorm
Regarding the Client-Server setup:
- In "daemon" mode, a path is needed so the server knows where to find the music. The clients can only add files from that path.
- The server needs an endpoint to return the available songs under the provided path.
- The server needs an endpoint that return the current information of the playback
- The communication between client / other front ends and server is with gRPC
The queue should have a soft limit and a hard limit.
- Soft Limit: Cannot add more than this limit, it's also the same limit when quering the current queue.
- Hard limit: The actual limit of the query, items above this limit are truncated.
I don't remember why but this was important and useful.
Outtakes
Was the goal archived?
Yes/No, because of...
What did go well?
- Item
What did go wrong?
- Item