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

Inconsistent volume meter size when using display scaling #11339

Open
DaAlpha opened this issue Oct 3, 2024 · 0 comments
Open

Inconsistent volume meter size when using display scaling #11339

DaAlpha opened this issue Oct 3, 2024 · 0 comments

Comments

@DaAlpha
Copy link

DaAlpha commented Oct 3, 2024

Operating System Info

Windows 10

Other OS

No response

OBS Studio Version

30.2.3

OBS Studio Version (Other)

No response

OBS Studio Log URL

https://obsproject.com/logs/8WFn4zPiVtUhkJzv

OBS Studio Crash Log URL

No response

Expected Behavior

Volume meter thickness and gap should remain consistent and static between channels and different sources with same channel count, regardless of scale.

These screenshots were taken in 100% scaling:
image
image

Current Behavior

Volume meter thickness varies between sources with the same channel number, sometimes even between channels in the same source. It also tends to flicker when scrolling within the dock or moving it around.

I may be going crazy but after staring at them for long enough, I also feel like the different sections (clip, warn, regular) are not aligned. Each seems to be offset to the right by one pixel, from the top down (using vertical meters). I was not able to see this on the screenshots though ... maybe a subpixel thing.

image
image

https://github.com/user-attachments/assets/71bb1b6c-230f-4928-85a9-eabf85735028
https://github.com/user-attachments/assets/2c6a0a2a-c68a-482d-b0a7-d3cd1ea764af

Steps to Reproduce

  1. Move OBS window to a display with 125% scaling (in OS)
  2. Add at least one audio source with at least 4 channels (the issue becomes more visible, the more channels a source has) - This might be hard without an actual surround setup. If there is an ASIO device present, I can recommend the ASIO plugin which can be configured to display any common channel layout.
  3. Slowly move the OBS window (or scroll inside the audio mixer) and observe the size and gap of the channel meters
  4. Switch to the vertical meter layout
  5. Take a close look at the alignment of the different meter sections within the same channel - this one is equally visible for me on any channel count, even mono

Anything else we should know?

The issue happens in both sample peak and true peak mode.

Based on my own experience "manually" drawing items on the screen, this is almost certainly a rounding issue. Due to the scaling, pixel values will have fractions during internal calculations which eventually get truncated down to integers. This results in weird behavior when the value was something like 12.8 which should be rounded up, often compounded e.g. when an item's position (which itself could already have a fraction) is combined with an item's size (also including a fraction).

I reckon other scaling factors are affected as well to varying degrees. Something like 200% is probably fine as it's a "clean" x2.

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

1 participant