Affected files: 01. Projects/Electronic Mantainance/.gitignore 01. Projects/Electronic Mantainance/List of electronics.md 01. Projects/Juno/Queue stored in memory.md 01. Projects/Juno/README.md 01. Projects/Mental Health/Therapy/Session 005 24-05-03.md 02. Areas/Escape Latam/Comparación de Paises.md 03. Resources/Projects Ideas/mini-strap.md 04. Periodic/03. Monthly/2024-03.md 97. Ideas/Frontmatter query language (idea)/README.md 97. Ideas/Fuuka desktop client/README.md 97. Ideas/Migrate to Zellij (Someday)/Migrate to zellij.md 97. Ideas/Phisics Engine (idea)/README.md 97. Ideas/Setup Shell (Someday)/Setup shell.md 97. Ideas/Spotify Playlist Intersection (idea)/README.md 98. Holds/Escape Latam (hold)/Canada.md 98. Holds/Escape Latam (hold)/Comparación de Paises.md 98. Holds/Escape Latam (hold)/English Certification.md 98. Holds/Escape Latam (hold)/Escapar de Latam.md 98. Holds/Escape Latam (hold)/New Zeldand.md 98. Holds/Página Personal (hold)/Carta de presentación.md 98. Holds/Página Personal (hold)/Components/Lightbox.md 98. Holds/Página Personal (hold)/Components/TOC.md 98. Holds/Página Personal (hold)/Components/Table.md 98. Holds/Página Personal (hold)/Content.md 98. Holds/Página Personal (hold)/Pages/Landing Page.md 98. Holds/Página Personal (hold)/Pages/Landing Page.pdf 98. Holds/Página Personal (hold)/Pages/Portafolio List.md 98. Holds/Página Personal (hold)/Portfolio/Piloto Go.md 98. Holds/Página Personal (hold)/README.md 99. Archives/Neardearla 2024/13 consejos de Senior que le daría a mi yo Junior.md 99. Archives/Neardearla 2024/Construyendo Bajo Presión cómo armar el primer MVP de tu startup en 2024.md 99. Archives/Neardearla 2024/Código con corazón mejores prácticas de FrontEnd para encantar a tu UX.md 99. Archives/Neardearla 2024/Cómo Elegir la Base de Datos Adecuada para Tu Proyecto Una Guía entre SQL y NoSQL.md 99. Archives/Neardearla 2024/Cómo evolucionar profesionalmente en tecnología sin perder tu chispa de programar.md 99. Archives/Neardearla 2024/Desarrollo de pruebas unitarias asistido por IA.md 99. Archives/Neardearla 2024/Desde la Web al Escritorio - Tauri.md 99. Archives/Neardearla 2024/Fortaleza Digital Construyendo un Futuro Seguro con Desarrollo de Software Resiliente.md 99. Archives/Neardearla 2024/La Belleza del programa, la Felicidad del Programador.md 99. Archives/Neardearla 2024/Pasted image 20240411191813.png 99. Archives/Neardearla 2024/Pasted image 20240411192942.png 99. Archives/Neardearla 2024/Pasted image 20240413105402.png 99. Archives/Neardearla 2024/Pasted image 20240413113310.png 99. Archives/Neardearla 2024/Pasted image 20240413113444.png 99. Archives/Neardearla 2024/Pasted image 20240413113655.png 99. Archives/Neardearla 2024/Pasted image 20240413131457.png 99. Archives/Neardearla 2024/Pasted image 20240413131624.png 99. Archives/Neardearla 2024/Pasted image 20240413141003.png 99. Archives/Neardearla 2024/Pasted image 20240413161221.png 99. Archives/Neardearla 2024/Pasted image 20240413162105.png 99. Archives/Neardearla 2024/Pasted image 20240414131547.png 99. Archives/Neardearla 2024/Pasted image 20240414133536.png 99. Archives/Neardearla 2024/Pasted image 20240414133556.png 99. Archives/Neardearla 2024/Pasted image 20240414133649.png 99. Archives/Neardearla 2024/Pasted image 20240414133802.png 99. Archives/Neardearla 2024/Pasted image 20240414133818.png 99. Archives/Neardearla 2024/Pasted image 20240414133924.png 99. Archives/Neardearla 2024/Pasted image 20240414133957.png 99. Archives/Neardearla 2024/Pasted image 20240414134055.png 99. Archives/Neardearla 2024/Patrones de diseño el arma secreta de los desarrolladores expertos.md 99. Archives/Neardearla 2024/Que la fuerza de los gráficos te acompañe Aprende a dominar la visualización de datos.md 99. Archives/Neardearla 2024/Sincronización Perfecta Comunicación entre Microservicios con TypeScript y NestJs.md 99. Archives/Neardearla 2024/¿Por qué nos subestimamos? Guía práctica para negociar tu salario de forma efectiva.md
2.6 KiB
2.6 KiB
| created | updated | status |
|---|---|---|
| 2024-03-26 16:02 | 2024-03-26 16:09 | Backlog |
Juno
Resources
- Navidrome
- Azuracast
- Cadence (Use Icecast and Liquidsoap)
- forte
- Music Player (written in Rust)
- fd (for filesystem walking)
- global config in rust
- Bind unix port in hyper server
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.
Para hacer la primera operación en el server, puedo hacer un nuevo thread (con tokio ojalá) e instanciar un cliente que haga la petición.
Outtakes
Was the goal archived?
Yes/No, because of...
What did go well?
- Item
What did go wrong?
- Item