aiaf an iOS app should be possible, although there will additional hurdles with distribution and testing. The IOKit entitlements will prevent such an app from getting into the App Store, probably would need to jailbreak your iPhone to sideload the app, or move to Europe.

as long as the app doesn't rely on having root permissions that only a jailbreak would provide, and the iPhone app is open-source, "sideloading" is possible anywhere else too. People can just download an Xcode project and compile it to "test" on their device.

This does not require a paid developer account either! Each developer signed app on the Xcode free tier only lasts for 7 days, but I'm totally willing to plug my phone into my laptop and manually reinstall every week, if it means I can finally disable dithering on my iPhone SE 2.

There's also other unofficial means of distributing for sideloading like AltStore, which also doesn't rely on a jailbreak, that works by automatically renewing every few days whenever your phone is near your computer.

If there is any way I can test an iOS version of your app through similar means, even if it's really early or unfinished, please let me know!

    aiaf

    I have used the Carson MicroFlip ($20) at 100x to 250x magnification in conjunction with a Samsung S10+ 240 fps slow motion camera mode to record pixel level flicker in a previous discussion: https://ledstrain.org/d/2589-products-to-try-or-avoid-pwm-flicker-and-temporal-dithering-testing

    I actually don't recommend the Samsung S10+ as a phone (OLED Flicker) but it is the only 240 fps camera I have. The iPhone would work as well. On Flicker Sense, iPhone recording is done using the Moment app instead of the default iOS camera app.

    I have also tried using the MicroFlip as the lens of a mirrorless camera (Nikon Z7) for shooting 120fps video using an improvised cardboard light blocker/mount adapter. It also works to capture dithering and the video quality is better than the smartphone but ideally this would be a dedicated high speed video camera with greater than 240 fps capture rate.

    The Sony RX10 (Versions II-IV) can do almost 1000fps and while expensive, is not excessively out of budget relative to some high speed industrial/cinema cameras. I also wish the video quality is even better. However, it could be useful in showing whether or not dithering still exists albeit at extreme framerates. The problem with this device is that the built-in lens is not removable so it would be difficult to use the microscope as the lens.

    https://www.reddit.com/r/videography/comments/88v6wg/slow_motion_test_with_the_sony_rx10_iv_with_up_to/?rdt=58546

    I don't have experience with these products but the Thorlabs photodetector is being used by another member GregAtkinson to reveal previously unseen details but you also have to use a good oscilloscope like the PicoScope to go with it.

    • aiaf replied to this.

      Does anyone have the ability to tell if the M1 Air has temporal dithering using the above methods?

      I've been on a very long journey trying to figure out what bothers me as I can't use most of Apple's line up but I can use the M1 Air just fine.

      The M1 Air supposedly has PWM but very very high rate, so doesn't bother most people

      The M2 Air supposedly has no PWM at all, but I've never tried one

      The Pro models hurt my eyes instantly so I've kept away from them entirely.

        Sentiny I wouldn’t know though. If the M1 has temporal dithering then it doesn’t bother me. So I wouldn’t be able to tell it was ‘fixed’.

        smilem

        And then I can do a pre and post video recording of the changes if their are any detectable by my setup.

        @aiaf Tested and WORKING for an external monitor on M1 Max MacBook Pro with Sonoma 14.2.1. This is one of the best releases this community has seen in a long time, I am eternally grateful.

        BTW I'll definitely get in touch with you soon — although I'm not experienced with reverse engineering, I've learned quite a lot of interesting info on how macOS does dithering and color management recently, and would love to provide any info I know that would help in creating an Intel version. Is it best to DM you here or on your Twitter?

        My experience:

        I have an ancient CCFL monitor with DVI in (Samsung SyncMaster 906BW) which I connect to the M1 Mac through a USBC»HDMI cable to an HDMI»DVI adapter.

        (Fun fact: DVI displays provide RGB EDID to Macs by default, so the whole "force RGB instead of YbCbCr" ordeal infamous with HDMI monitors isn't actually necessary here!)

        I'm pretty sure this monitor is native 6-bit with no FRC, since even when connecting to a M1 Mac with default "10-bit" settings, banding appears. (I was wrong, it's actually the monitor's own FRC pattern conflicting with Apple's dithering pattern, see my newer reply)

        However, what's really funny is because of this limited hardware, it makes Apple Silicon temporal dithering EXTREMELY obvious.

        Typically, connecting the 906BW to the M1 causes totally noticeable checkerboard patterns on some colors, and other colors will actually visibly flicker to the extent someone who's not sensitive could notice it. These get even more intense while I'm continuously moving my head.

        For a while I thought this was either the ancient monitor starting to fail, a bad cable, LCD pixel inversion, or FRC that the monitor itself was producing… until I plugged it into an old Windows PC, and all those issues stopped happening.

        For the first time ever, Stillcolor has immediately solved this issue. The moment it's enabled, all of these moving patterns disappear and the M1 finally gets clean external monitor output. Changing gamma and contrast with BetterDisplay finally causes obvious banding shifts, which it wasn't able to before.

        So if anyone is dealing with "checkerboard pattern on dark mode backgrounds with external monitor on M1 Mac" — which I've seen some people in generic Apple communities mention before, Stillcolor resolves this issue too!! It is caused by temporal dithering.

        And of course, enabling Stillcolor significantly reduces eye strain on the external monitor for me!

        (Edit: The monitor still has its own FRC, but I'm definitely less sensitive to it than Apple's dither pattern — after all, I wasn't getting the same level of significant eye strain using this same monitor back when Windows XP was current.

        However, I might have been running Windows XP back then in true 6-bit output mode, which I really wish was possible on a modern OS…

        However I DO notice the monitor's FRC and find it a bit annoying, and am now trying to seek out a non-FRC monitor so I can use macOS 100% dither-free.)

        Here's why it doesn't seem as effective on the internal XDR display though…

        Mini-LED XDR MacBook Pros have some aspects of color calibration built into the display itself, that's why the display preferences looks different on these models and tries to push seemingly limited "Reference Modes" over color profiles.

        This also means that certain aspects like gamma are processed by the display panel instead of the GPU as Macs usually so.

        So on XDR Macs, even though Stillcolor actually does cause some changes in colors on the internal display, it doesn't solve dithering on the laptop screen entirely. Because if gamma is adjusted with BetterDisplay here — unlike with an external monitor, no banding shifts will happen and gradients will remain "just as smooth" (i.e. dithering) at any gamma level. Of course the internal screen has some PWM too.

        (I suspect) that there's two layers of dithering on XDR Macs 😱 one at GPU level (which Stillcolor does disable) and one at display panel level (which it can't disable).

        Or perhaps, if it's not dithering, this "second layer" is due to individual brightness control of the mini-LEDs (AKA different PWM rates per each area of the display) to achieve different gamma levels without seeming to affect the amount of available colors.

        However, LCD Macs like M2 Air, and the low-end "Touch Bar" Pros, use standard color profiles (where only the GPU is involved) instead of this hardware-level color management. This is why people here with MacBook Airs are reporting great results, but MacBook Pro users are more hesitant.

        In summary, Stillcolor has the same great effects on external monitors on both Air and Pro, but only will be able to fully improve the laptop display on LCD models like the Air.

        (BTW, I'm guessing that forcing external output EDID to RGB mode is probably neccessary for Stillcolor to fully improve an HDMI monitor. This wasn't an issue for me though because my monitor uses DVI.)

        Since this app exists now, and based on what I've just written above… I'm honestly about to start considering selling my M1 XDR Pro and swapping it for an M2 Air instead 😄

        For now, at least I can finally use my M1 Pro as a desktop!

          Sunspark there's clearly so many variables to be tested. What are you sensitivities and which display are you currently comfortable with?

          Sentiny it should be plenty safe. I don't like True Tone personally but I don't think of these options will re-enable dithering, but again can only be known with proper testing. You can also re-check iroeg to see enableDither was set to Yes again.

          Donux try your phone manual video mode option with the fastest shutter speed. You need to test an image with a white background. Do you trust this method?

          async the idea would be to edit the EDID in the capture card, and then capture the output to see how the a particular config affects the image. You can then diff and run the capture through ffmpeg or whatever other tools to see the difference.

          twomee Which external display brand and model are you using?

          DisplaysShouldNotBeTVs I'm not working on an iOS version since I don't use iPhones and currently do not have the time to pursue this. I'll tinker around but no promises. In any case, my code and methodology are open source so anyone can pick up where I left.

          photon78s thanks for the Carson MicroFlip recommendation. Because despite disabling dithering at the GPU level there's the question of whether the external display panel does dithering/FRC on its own. Can't trust manufacturer specs when it comes to these things.

          markdotpeters5 do you have an M1 Mac? Download the app and try it. I tested with M2 and M3 and it worked flawlessly. Would love an M1 datapoint.

            DisplaysShouldNotBeTVs would the m2 MacBook air 15" also be safe or only 13"? In terms of LCD/mini led free. I think I'm going to buy one 😅 unless we can get a fix on Intel/Nvidia too?!

            markdotpeters5

            I was going to try the M1 Air (hard for me to switch ecosystems) at some point but these observations… It might still be a combination of extremely high frequency dithering plus the high frequency PWM. I remember watching an Apple event in the past couple of years where they had someone come up to talk about "screen safety". Seems hilarious to me.

              photon78s I'm very sensitive to stuff like this but use the M1 Air fine. Phone wise I'm stuck on the iPhone 11 - I literally can't find any newer handset that I can use, Android or iPhone.

              I have no real reason to upgrade from the M1 Air at the moment, but I really would like a newer iPhone!

              DisplaysShouldNotBeTVs that's an amazing setup! Feel free to get in touch any time.

              w/r/t to an additional layer of dithering on XDR displays-- will need proof for this. I see the banding clearly (on the Lagom gradient test) on the built-in display when I disable dithering, and the screen becomes a lot more eye-friendly. There's still PWM. But how would additional dithering look like and how would it play along with GPU dithering? You can only show 1 pixel color per refresh? Spatial dithering perhaps? We should also not forget these are supposedly high-end 8-bit panels

                Will this work on a m2 Mac mini?

                DisplaysShouldNotBeTVs and would love to provide any info I know that would help in creating an Intel version

                @NewDwarf has a technique here for disabling temporal dithering on Intel Macs and also AMD (it's different technique than the one linked by op). I don't believe it was tested with a lossless capture card but some have reported success on Intel Macs.

                DisplaysShouldNotBeTVs There's two layers of dithering on XDR Macs 😱 one at GPU level (which Stillcolor does disable) and one at display panel level (which it can't disable)

                This is interesting and unfortunate. It's hard to imagine two separate temporal dithering algorithms look good on a screen even to "normal" people?

                  dev