Bug 106579

Summary: RAOP sets volume to 100% when connecting
Product: PulseAudio Reporter: Fina Wilke <fina>
Component: modulesAssignee: pulseaudio-bugs
Status: RESOLVED MOVED QA Contact: pulseaudio-bugs
Severity: normal    
Priority: medium CC: lennart
Version: unspecified   
Hardware: x86-64 (AMD64)   
OS: Linux (All)   
Whiteboard:
i915 platform: i915 features:
Attachments: connection log file

Description Fina Wilke 2018-05-19 14:33:01 UTC
Connecting to a RAOP2 (AirPlay) device sets its volume to 100% on connect, even when the sink volume is configured differently.

Steps to reproduce:
1. Play audio via a RAOP2 sink
2. Set the sink device volume to eg 30% via pavucontrol.
3. The Audio Device correctly changes the volume to 30%
4. Restart pulseaudio

Observed result: The device automatically reconnects, sets the volume to 100% and plays audio. pavucontrol displays the sink volume as 30% even though the device plays at 100%. Moving the volume slider a bit corrects the volume again.

Desired result: When restarting pulseaudio the sink volume is automatically set to the configured value and propagated to the output device.
Comment 1 Fina Wilke 2018-05-19 20:55:47 UTC
Excuse me this actually affects RAOP (v1), an not (or at least not to my knowledge) RAOP2. This can be reproduced with a Denon AVR (X1400H).

Looking into this further it is interesting is that the AVR actually has the correct volume setting but seems to be getting a louder signal from pulse itself. It does correct itself when moving audio controls a bit but could it be possible that the volume actually changes in two places at once? Like reducing the signal volume AND changing the receiver volume, of which one resets to 100%?
Comment 2 Fina Wilke 2018-05-19 21:12:54 UTC
Created attachment 139645 [details]
connection log file
Comment 3 Tanu Kaskinen 2018-05-23 16:08:28 UTC
The raop sink seems to do some weird things with the volume... The log shows that at initialization the raop sink is told to set the volume to 17148 (-34.94 dB), but the raop sink adjusts that to 32449 (-18.32 dB) and does the rest (-16,62 dB) in software. I read the code, and I don't understand the logic behind splitting the volume to half hardware and half software. This shouldn't matter, though. The end result should be correct anyway.

I have limited interest in RAOP myself, but I'll send email to Colin Leroy and Hajime Fujita in case they want to help (I'm not sure if they have RAOP v1 hardware, though). Maybe they'll comment here, maybe not...
Comment 4 Hajime Fujita 2018-05-24 03:32:30 UTC
I'm not sure how much I can help, but I got confused by looking the log you attached. It looks to me that your device is actually using raop2 (UDP version). For example, log reads "raop-client.c: Connection established (UDP;control_port=38257;timing_port=56145)", which would have been "Connection established (TCP)" if raop1 (TCP) was used.

I don't understand the logic behind "splitting" hardware volume and software volume either. Maybe that part was not written by me or I totally forgot what I thought in the past.
Comment 5 Fina Wilke 2018-06-02 19:05:12 UTC
It may very well be possible that I use v2, I don't really know how to find out for sure. I thought if the log said raop and not raop2 or something along these lines it would be v1. But that might have been a misunderstanding on my part.
Comment 6 GitLab Migration User 2018-07-30 10:31:01 UTC
-- GitLab Migration Automatic Message --

This bug has been migrated to freedesktop.org's GitLab instance and has been closed from further activity.

You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.freedesktop.org/pulseaudio/pulseaudio/issues/481.

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.