[GH-ISSUE #1126] Monitor doesn't support mute, unable to set volume to 0 #664

Closed
opened 2026-05-05 06:28:18 -06:00 by gitea-mirror · 1 comment
Owner

Originally created by @BenCorneau on GitHub (Jul 26, 2022).
Original GitHub issue: https://github.com/MonitorControl/MonitorControl/issues/1126

Before opening the issue, have you...?

  • Searched for existing issues
  • Looked through the wiki
  • Updated MonitorControl to the latest version (if applicable)

Describe the bug

Monitor: DELL U3419W

My monitor doesn't support the mute command audioMuteScreenBlank = 0x8D. When the volume slider is set to 0% the volume on the actual monitor is set to 1%. This looks intentional to work around a bug with some monitors
https://github.com/MonitorControl/MonitorControl/blob/main/MonitorControl/Model/OtherDisplay.swift#L493-L495

However, my monitor does support setting volume to 0, but doesn't support the mute command. My monitor's speaker also has the unfortunate characteristic of having a very loud 1% volume and very little dynamic range between 1% and 100%

I have a few thoughts on how this could be fixed, but realize they may be infeasible.
1 - use the "Enable mute DDC command" setting. If not enabled, then allow sending volume 0.
2 - In the DDC min / DDC max override config, if '0' is explicitly set, then allow sending volume 0. Perhaps this could clean up the special case for the audio 0 check in convValueToDDC and 1 could be the default ddc min for the audio channel.
3 - custom config overrides for specific device model numbers.

I'm happy to provide any additional detail and would be happy to submit a PR if you think one of the above options makes sense. I'd also be happy to try out any other suggestions either configuration or code changes to help out.

Steps to reproduce

using monitor DELL U3419W

  • Move volume slider to 50%
  • check volume with monitor's OSD. Expected(50%)
  • Move volume slider to 0%
  • check volume with monitor's OSD.
    • Expected 0%
    • Actual 1%

Expected behavior

Expect the monitor to report a volume of 0%, but it is 1%

Anything else?

No response

Environment Information (please complete the following information)

- macOS version: Monterey
- Mac model: MacBook Pro (16-inch, 2021)
- MonitorControl version: 4.1.0
- Monitor(s):DELL U3419W
- Apple Silicon/M1 (yes or no): yes
Originally created by @BenCorneau on GitHub (Jul 26, 2022). Original GitHub issue: https://github.com/MonitorControl/MonitorControl/issues/1126 ### Before opening the issue, have you...? - [X] Searched for existing issues - [X] Looked through [the wiki](https://github.com/MonitorControl/MonitorControl/wiki) - [X] Updated MonitorControl to the latest version (if applicable) ### Describe the bug Monitor: DELL U3419W My monitor doesn't support the mute command `audioMuteScreenBlank = 0x8D`. When the volume slider is set to 0% the volume on the actual monitor is set to 1%. This looks intentional to work around a bug with some monitors https://github.com/MonitorControl/MonitorControl/blob/main/MonitorControl/Model/OtherDisplay.swift#L493-L495 However, my monitor does support setting volume to 0, but doesn't support the mute command. My monitor's speaker also has the unfortunate characteristic of having a very loud 1% volume and very little dynamic range between 1% and 100% I have a few thoughts on how this could be fixed, but realize they may be infeasible. 1 - use the "Enable mute DDC command" setting. If not enabled, then allow sending volume 0. 2 - In the DDC min / DDC max override config, if '0' is explicitly set, then allow sending volume 0. Perhaps this could clean up the special case for the audio 0 check in `convValueToDDC` and 1 could be the default ddc min for the audio channel. 3 - custom config overrides for specific device model numbers. I'm happy to provide any additional detail and would be happy to submit a PR if you think one of the above options makes sense. I'd also be happy to try out any other suggestions either configuration or code changes to help out. ### Steps to reproduce using monitor `DELL U3419W` - Move volume slider to 50% - check volume with monitor's OSD. Expected(50%) - Move volume slider to 0% - check volume with monitor's OSD. - Expected 0% - Actual 1% ### Expected behavior Expect the monitor to report a volume of 0%, but it is 1% ### Anything else? _No response_ ### Environment Information (please complete the following information) ```markdown - macOS version: Monterey - Mac model: MacBook Pro (16-inch, 2021) - MonitorControl version: 4.1.0 - Monitor(s):DELL U3419W - Apple Silicon/M1 (yes or no): yes ```
Author
Owner

@waydabber commented on GitHub (Jul 27, 2022):

Mute command is not used by default, unless Enable Mute DDC command is enabled. When this option is not clicked, the app is setting the volume level to 0 via DDC when the volume is set to 0%. If you still get sound and the display shows 1% then it seems like it does not oblige to the volume 0 command as well.

You can try whether BetterDisplay or m1ddc works and can set the volume to 0 as these apps are using somewhat different implementations.

The mute compatibility issue has a long and complicated history so I don't think we'll reopen it anytime soon, but I'll convert this into a discussion. If you want, you can try changing the relevant parts of the code and experiment with it (you'll need XCode), I can direct you to the right place where you can make alterations.

<!-- gh-comment-id:1196803963 --> @waydabber commented on GitHub (Jul 27, 2022): Mute command is not used by default, unless `Enable Mute DDC command` is enabled. When this option is not clicked, the app is setting the volume level to 0 via DDC when the volume is set to 0%. If you still get sound and the display shows 1% then it seems like it does not oblige to the volume 0 command as well. You can try whether BetterDisplay or m1ddc works and can set the volume to 0 as these apps are using somewhat different implementations. The mute compatibility issue has a long and complicated history so I don't think we'll reopen it anytime soon, but I'll convert this into a discussion. If you want, you can try changing the relevant parts of the code and experiment with it (you'll need XCode), I can direct you to the right place where you can make alterations.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: github-starred/MonitorControl#664
No description provided.