aesculus / denonavpcontrol

LMS plugin for Denon/Marrantz receivers
14 stars 6 forks source link

Daphile, Denon 3808 and LSB Controller #17

Closed RogMoe closed 2 years ago

RogMoe commented 3 years ago

Hi, I'm trying to use a LSB Controller to control the volume on a Denon 3808 AVR. The source is Daphile 21.01-x86_64 connected with SPDIF to a Denon 3808. All hard- and software is patched to the latest version and have fixed IP addresses. I set the Denon to a max volume (-20dB) and used QuickSelect #1 to select the input and initial volume (-40dB).

Daphile plays just fine and I can select/play/pause albums using the LSB Controller and switch the Denon ON and OFF.. However, I can't control the volume on the Denon. Sometime it does after I touche some settings (tick and untick a box, store/save) but after a reboot it stops working again. It doesn't look very stable. I tried every mathematical combination of settings and must have restarted all sytems a zillion times by now to see if it would finally stick...

(...help...!)

Roger

aesculus commented 3 years ago

Go into the LMS server Settings menu > Advanced > Logging,

Turn on the DenonAVPControl program.

Then do your failed test. Go back to the logging screen and download the log and post here

RogMoe commented 3 years ago

...can even get it to work again...

daphile_3 daphile_2 daphile_1

Here's the log: server.log

aesculus commented 3 years ago

Couple of comments and questions. Once you answer these we will need to re run the log again if necessary:

We discovered that the former plugin versions were double dipping on volume adjustments so we disabled changing the Denon volume when the player was not set to Fixed 100% volume.

So you have a choice of only having the player change it's output with a fixed Denon, or the recommended setting of having the player be fixed at 100% and the Denon being changed via the plugin

Once you decide how you want it to work then we can decide if any issues actually exist. I am not sure that I have had any feedback with this player before so it may need some tweaking.

RogMoe commented 3 years ago

Hi Chris, I'd like the Denon to be controlled through the plugin. The recommended setting! The Denon is set into powersaving mode (checked again). I'd like to control Daphile using the LSBcontroler.

LSBcontroler

aesculus commented 3 years ago

Ok. Then go to the lms player panel and select 100% fixed volume. Do this with the denon in standby. Then turn off the player.

Then turn player on again. It should turn on denon after a few seconds. Now changing the player volume should change the denon.

If this does not work try adjusting the volume with the lms web page.

Let me know of any issues and we can go from here.

RogMoe commented 3 years ago

Hi Chris, To make sure we're on the same page, I keep posting images with current settings. You talk about the "lms player". You mean the LSBController or the software player within Daphile? With current settings I can open the Daphile built-in player in my browser but it shows no volume slider.

If I power on the LSBControler and press "Intel SPDIF aanzetten" (switch on), the Denon is switched on and Quickset #1 is selected. Volume on the Denon goes to -25dB according to quikset settings. If I press "Intel SPDIF uitzetten" (switch off) is goes into standby. I can select an album using the LSBcontroller and it plays. Pause button lets met toggle play/pause. It shows up in the logfile but in between I tried to change the volume. Nothing happens, no entries in the log either (check at the bottom). The LSBcontroller also has the option to set it at 100% fixed volume. See photo. Hereś the log: server.log

lsbplayer daphile4 daphile3 daphile2 daphile1

RogMoe commented 3 years ago

edit: I changed the "Fixed volume at 100%" on the LSBcontroller to variable. Now I can change the volume using the up/down buttons on the LSBController. But volume is not lowered on the Denon itself. It's some kind of software control within Daphile. The Denon is still at -25dB... (Quickset #1). I do have a slider now in the browser player and it's in sync with the slider on the LSBController. This log is the same as the one above, but with extra lines after I switched from fixed to variable. server_more.log

RogMoe commented 3 years ago

...and even more log. I noticed the Denon showing something in its display but it happend in the blink of the eye. maybe it's in the log? copy&pasted the latest lines. lines.log

aesculus commented 3 years ago

OK. Now I finally think I understand. We may be limited in what we can do here. The recommended setting is to have the player set to Fixed volume and then let the plugin send volume changes to the Denon. So the Denon receives a pure digital signal and the Denon decides how loud to play it based on the volume it is set at.

The problem is the player device and controller. It appears your player device (application?) does not provide a volume control when you select 100% Fixed. That seems logical at first but it's actually a disadvantage. My SqueezeBox Touch user interface behaves similarly. When 100% Fixed is set the volume slider goes to 100% and no longer responds to touches. I have not tried the LBSController that came with it yet. I will have to go hunt it down and try it.

Now why does the plugin work for me and others? Simply because we are not using the physical LBSController or the device UI. We are either using the LMS Web Client or much more often, one of the popular smart phone apps like iPeng or Squeezer.

So what is the difference? These user interfaces still retain an active volume control function even when the player is set to 100% Fixed. Any change by the user is sent to the plugin and it processes it and sends it on to the Denon. Or conversely if the Denon volume has changed it can receive the new volume and set the apps volume accordingly.

What is happening today is that the plugin sees the volume request and ignores it because the player is not set to 100% Fixed. It expects that you are adjusting the volume at the player and the Denon is just a fixed amplifier.

Here are some options:

I'll post back what I discover later with the LBSController.

aesculus commented 3 years ago

Well I got out my LBSController and connected it to my SB Touch set at 100% Fixed volume. Pressing the volume control buttons sets me at either 0 or -0.5 db. Additional presses don't change anything other than between these two values. I suspect if I had it set for 1 db change I would see nothing at all.

So we have confirmed that using the LBSController does not override the SB Touch panel UI volume control when set to 100% Fixed which is what I expected. I am guessing that your player has the same issue.

So this controller will not work with the plugin for changing 100% fixed volume to the Denon.

RogMoe commented 3 years ago

Hi Chris, I came across a blog by some guy and he mentioned the same thing using a Squeeze Commander. The controllerbuttons send no volume values once set to fixed volume. It's all clear to me now.

Some background information left to share: I want my kids to NOT touche my audio equipment and cd's. No need to explain ;-) They don't have a smartphone either. I decided to use Daphile because of it being headless and it's ripping functionality. Pop in a cd, rip and play using the remote. Controlling the Denon using the remote would make an excellent combination to serve my purpose. But I don't want the Denon to be left at high gain after playing from Daphile. Leaving it at 0dB could be an unwanted surprise...

So, my only option would be altering the LBSControler firmware and make it spit out the values.

RogMoe commented 3 years ago

...some thoughts... Would it be possible to use the ir part of the LSBController to send out the volume signals? Have IP do all the rest (which is does fine btw). I checked the slimdevices wiki page and a forum mentioning applets....

aesculus commented 3 years ago

I don't think it's the controller but the player. So you would need to modify the Daphile player.

I would contact the author and let him know what the issue is. Perhaps he/she can modify the player to accept the volume requests when set at 100% and then just not bother doing anything with them. At least they would then be passed through to the plugin who could then send them on to the Denon.

But I am really guessing here. I have no idea how Daphile is emulating a LMS server/player which it appears to be doing.

Is this the way you control the volume on the Daphile player (the gain slider)? If so have you tried that when set to fixed volume to see if the Denon responds to that?

equalizer 1

RogMoe commented 3 years ago

Hi Chris, Sorry for not responding as fast as you do. Kids and stuff... I did some more testing today and paid some close attention to the LSBController. I notices with Daphile switched off, the controller stays empty. The controller seems to copy all settings from the player in Daphile as soon as it connects to the player setup previously. AFAIK, Daphile contains LMS, SqueezeLite Player and a skin to wrap it all together on an Linux based dedicated OS. That info is on the Daphile website itself.

The controller controls the (or any) player and all meta-data from the player (album info etc) is transfered between player and LSBcontroller. However, no audio is being transfered. Meta data and controls only. That being said, what happens to a buttonpush volume up or down? Does that get transmitted to the player and simply ignored when volume fixed at 100% ?

Using the desktop player (the little square with arrow on the bottom right; undock desktop panel) in player pane, only gives a slider when NOT set to fixed 100%. This sliders value changes realtime with the LSBController.

Changing the gainslider as above in BruteFIR does not solve the problem. Sorry!

Iḿ thinking about your remark about the player accepting and ignoring the signals but still pass them on to the plugin. Shouldn't the plugin be listening somewhere else (too) in order to hear the signals? We don't know yet if the signals get transfered to the player regardles off the 100% setting. We need a man in the middle to see what's going on... Maybe wireshark can come to the rescue!

aesculus commented 3 years ago

Thanks for responding. I did some more experimenting with my LBS Controller and the SB Touch at 100%. It does send a request for each up and down press, but that results in just .5 change for the first touch of the up or down, the others are ignored because they don't change anything.

Again using the LMS Webpage or an app works OK. They must send a volume request to a level but the actual player just ignores it because its at 100%.

I did notice another user had used Squeezelite set at 100% but he was not using Daphile or the client on Squeezelite. He was using the LMS Webpage and I also think an app.

I am going the check with one more person who might have used Squeezelite to see if they have any insight.

aesculus commented 3 years ago

The co developer uses the native Squeezelite with various app controllers. Works fine at 100%. Note he does not have a LSB Controller to test.

So you probably need to go to the Daphile author and have him modify his version to allow the LSBController to send volume commands that he just lets pass through.

RogMoe commented 3 years ago

Hi Chris, I took one of the kids' Chromebook and installed a few different apps from the app store to do some further testing. First I installed Squeezer and linked it to Daphile. Works like a charm. Volume goes up/down using the app's slider. Volume set to fixed off course. Denon switches on/off etc.

Then I installed Squeez Controller from the app store. Same story. With the chromebook and any off the two apps I can select albums, modify playlists and perform all kind of action. Even amongst apps at the same time on the same chromebook! They sync all information. Both apps are RC's no players. All audio itself is still processed from Daphile (LMS and builtin-in SqueezeLite). So, to me that proofs that there is nothing wrong with Daphile, it's default player or your plugin. The problem only exists when using the LSBController. The problem lies within de LSBController firmware. Once set to fixed output, it simply stops transmitting volume data.

aesculus commented 3 years ago

It's not the plugin but how the players interact with the LSB Controller. That is the common thing for all these instances and my SB Touch too.

When the LSB Controller is driving the UI the players just don't want to change the volume.

Not sure how you fix that.

RogMoe commented 3 years ago

The only way to fix it so dive into the Controller firmware. I can telnet into the device and maybe see what's happening...

aesculus commented 3 years ago

OK. Brave man. Can you save a backup of the FW before just in case?

Maybe there is some logic you will find that if the controller sees fixed it just skips the command. But on my touch it does try to change it but it can only move it .5 db either way.

aesculus commented 3 years ago

Roger: You may be in luck if you can take advantage of this work going on described in this thread to open source the controller fw.

https://forums.slimdevices.com/showthread.php?113479-Announce-Community-Firmware-for-Squeezebox-Radio-Touch-Controller-and-LMS-8

RogMoe commented 3 years ago

Hi Chris, haven't had time to have a closer look at the firmware. And I may not be as brave as you suggested... ;-) I'm used to wirking in C++, so reading code is not scary to me. But still. I'll have a look at the thread you mentioned. Keep you posted! Thx

aesculus commented 3 years ago

Just for the heck of it I made this post:

https://forums.slimdevices.com/showthread.php?113479-Announce-Community-Firmware-for-Squeezebox-Radio-Touch-Controller-and-LMS-8&p=1026329&viewfull=1#post1026329

RogMoe commented 3 years ago

Thx Chris, this could be very helpful. Enjoy your day.