Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Feature Proposal] Play Sound directly to client #149

Closed
unimatrix27 opened this issue Dec 12, 2016 · 4 comments
Closed

[Feature Proposal] Play Sound directly to client #149

unimatrix27 opened this issue Dec 12, 2016 · 4 comments

Comments

@unimatrix27
Copy link
Contributor

Hope its ok to put a few ideas in here. Some of them might be far off for now but maybe its interesting for someone.

I would like to have a feature in the server to play sound (out of a .wav file for example) specifically to one client, independent of the current stream subsctiption of that client.

Use Case: I am building a multiroom home audio solution where some clients dont have a user interface, but are instead controlled with an X10 remote control. Some buttons of that remote will trigger snapcast to change volume, mute, change the stream etc. Since there is no display whatsoever, I want to give audio feedback to the client. I am writing my own control application for snapcast already (1st version is available here as module for FHEM: Github - and this module would trigger the sounds to be played.

Currently I have a solution that I built from scratch using pulseaudio tunnel sinks but snapcast is much more modern and much easier to handle than pulseaudio.

@bjwelker
Copy link

That would be nice for Smarthome too. With Sonos you can puch audio like "washingmachine is ready" from tts to MP3 to the sonos speaker in broadcast or single to only one or two speakers

@happyleavesaoc
Copy link
Contributor

happyleavesaoc commented Feb 28, 2017

@unimatrix27 Why not run a snapclient on the same computer running the snapserver and just switch temporarily to another stream? Or maybe run two snapclients?

@bjwelker You can do that if you have a TTS stream and you switch applicable clients to that stream prior to playing.

@unimatrix27
Copy link
Contributor Author

@bjwelker and @happyleavesaoc - I am using this indeed for Smarthome with FHEM, yes. In the meantime I have implemented it in another way where I have a FHEM module that knows which client is listening to which stream and therefore looksup the stream to mix the TTS into based on the client that the TTS is supposed to be played onto. Side effect is that also all other clients listening to the same stream hear the same TTS. But that is acceptable for me.

In my setup I have both mopidy as my primary music source as well as the TTS system playing into pulseaudio, and I am having some special pulseaudio combine sinks which can be used to play TTS into all or a predefined set of streams (e.g. "1st floor", "whole house", etc.) and then the sound is going from pulseaudio to snapcast to be actually deployed through the network.

Really the advantage of snapcast over pulseaudio tunnel sinks is that snapcast is stable, it does remember, which client is subscribed to which stream, no matter if they go offline in between, and 2nd using the REST api it is much more easy to integrate into your own app compared to pulseaudio where you can either use the c client libary or direct calls to pactl etc.

@badaix
Copy link
Owner

badaix commented Mar 11, 2020

duplicate of #402 (actually the other way round :))

@badaix badaix closed this as completed Mar 11, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants