maxrave-dev / maxrave-dev/SimpMusic
[FR] Support some mechanism for casting
Nobody has claimed this yet.
- Dominant language
- Kotlin
- Stars
- 11.4k
- Forks
- 599
- Avg merge
- 3d 18h
- Merged PRs (30d)
- 7
Description
Problem Description
I want to listen music through a multi-room setup. My setup is based on snapcast, running on a Raspberry Pi. Snapcast is an open source multi-room streaming solution. This Raspberry Pi is also running mpd, connected to the snapcast server.
Other standard solutions are closed-source or require specific hardware (chromecast requires google hardware as receiver, airplay requires Apple hardware as sender).
Proposed Solution
The most straightforward solution would be to stream the audio via tcp. The application Snap.net does this on Windows, and is the solution I currently use, but it requires a virtual audio device and some configuration, which is a bit cumbersome. If a similar streaming was implemented directly in SimpMusic, things would be much more convenient.
Alternative Solutions
An alternative could be to implement other open streaming protocols, such as Fcast or UPnp.
Additional Context
Another solution (but certainly more difficult) could be to integrate an mpd client in SimpMusic, and allow adding tracks to an mpd server queue. This would also have the benefit of allowing the control of the queue from both the desktop or the mobile.
This is related to #795
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
No files, tests, or entry points are named. Start by reviewing SimpMusic’s existing playback and platform integration, then compare the proposed TCP streaming approach with Fcast, UPnP, and MPD integration. Done should mean a clearly chosen casting mechanism works with the described multi-room setup and is controllable from the app.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- android, kotlin
- Domain
- audio-video-rtc, mobile-dev, networking
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Needs clarification
- Newbie friendliness
- 30/100