unoffical-sonos-controller-for-linux
unoffical-sonos-controller-for-linux copied to clipboard
Add Support for TV on Soundbar
Hi, i have a sonos soundbar and when it's playing audio over the fibre cable the sonos controller showes playing nothing.
I don't have a soundbar ... so not sure how I could deal with this myself ...
I have the same issue for the Sonos Beam, using HDMI ARC. It seems that the node-sonos project has gotten support for line-in in version v0.20.0 https://github.com/bencevans/node-sonos/issues/148#issuecomment-354999615
@pascalopitz I can try to implement it. Can you say me in which files I can include it?
I think this is just a matter of setting the stream URI correctly to the TV input. Where / how does this get triggered on the native app? I don't have a soundbar, so some screenshots would go a long way.
@stan-qaz do you have a TV soundbar setup?
I have a Beam in a 5.1 setup and a stand-alone Beam. Anything more you need me to try I will.
The audio settings for Bass and Treble work as expected.
As I usually have Trueplay enabled the balance slider should be disabled, it is movable but has no impact on the sound. Without Trueplay enabled (changed from the official controller) it works as expected.
When playing from the TV the official app shows a simple TV icon instead of the album cover and "TV" on the usual track information line. It does have icons for "night sound" and "speech enhancement" modes that would be handy to have.
https://www.imore.com/sites/imore.com/files/styles/xlarge_wm_brw/public/field/image/2016/04/sonos-controller-iphone-6s-plus-hero.jpg?itok=y8NrOjs7
Can you attach a state dump file with trueplay and without?
Also, how do you trigger the TV in the official controller app?
@stan-qaz I just pushed a change that enables and disables trueplay via the eq panel, if available. Also takes away the balance if enabled.
As for the TV in, SoCo has an implementation for this: https://github.com/SoCo/SoCo/blob/e03ac1800ee4327caa3f3521836a38a171f59517/soco/core.py#L1175-L1211
The question here is, how do I know what devices can do it and where to place it in the UI.
The trueplay stuff looks good, it works as expected. added .txt to file names to allow upload.
without-trueplay-unoffical-sonos-controller.appState.json.txt
Switching to the TV is automatic if "TV Autoplay" is enabled in the Beam's settings when the TV is powered on and starts sending audio to the Beam, at least on my setup that is using the TV optical to Beam HDMI input. Switching from TV to audio is also not directly user controllable, when you turn the TV off and select music to play you get a pop-up asking if you want to "Stop the TV Audio."
With the "TV Autoplay" off you switch to TV mode/input from the music menu, you can also go back to playing music with the TV on once you acknowledge a Pop-up confirming that you want to.
I really cannot picture this. Do the popups just appear in the Sonos app or on the TV? Is the sound bar connected to the TV with its own interface? Where in the native controller do you toggle TV Autoplay? Could I trouble you to take some screenshots?
The pop-ups re on the app.
My TVs optical out is hooked to an optical to HDMI converter and to the HDMI in on the Beam. The Beam also supports an HDMI ARC input that I don't know much about as my TVs don't have it.
The Autoplay toggle is on the Settings, System, Room page. It has the speakers listed, then two options to remove Sub and Surrounds. Then a Sound section with EQ, Trueplay, Surround Audio, Sub audio and the volume limit setting. Then the Home Theater section with Autoplay as the first option followed by Ungroup on Autoplay, TV ialog Sync, Group audio delay, TV setup, and setting the IR code for the volume. Last are teh status light and touch control disable options.
I'll attempt some screenshots, and figure out how to get them here.
Figured it out, any more you need just ask.
The code to switch to line in, queue or TV in, can be found here Just a matter of sending the right command.
It can be easily replicated with any node app using either node-sonos or my library (which just has the SwtichToTv() function.)