Channel mixer behaviour (and interaction with filmic) in darktable 3.2

I’ve noticed some behaviour with the channel mixer that I wasn’t expecting.
First of all, it seems to have an effect just by activating it, without touching any sliders. When filmic is active, the effect can be quite pronounced (assuming the pipeline default).
When filmic isn’t active, the effect can be quite subtle but you can see changes to the histogram or by taking an area sample with the color picker and watching the values change. Is this supposed to happen and what effect is being applied?

Secondly, which might be related, when filmic is active, channel mixer seems to counteract the over/under exposed warnings when using the toggle in the bottom panel.

Here’s an example:

Arm with overexposed skin, filmic off, channel mixer off:

Filmic on, clipping visibly reduced on the arm and reflected in the warning toggle:

Filmic on, channel mixer on (sliders unchanged). Arm looks visibly overexposed again, but the warning toggle shows less clipping:

Is this pipeline related? I would have expected the over/under exposure warning toggle to reflect the effect of all modules…

This is likely because channel mixer clips its output. You can mitigate some of these issues by moving channel mixer earlier in the pipe. I tend to place it before exposure when I use it.

When the new channel mixer RGB module arrives in darktable this should no longer be a problem.

1 Like

Ok thanks, good to know.

So can we trust the over/under exposure warning to be accurate? When I look at the second set of images in my post above, the skin on the arm doesn’t looked to be clipped with filmic on, but the over exposure warning (set at 100%) still shows substantial clipping. I checked the raw exposure indication and there was no clipping.
Is it just my eyes deceiving me? Or is the exposure warning looking “beneath” filmic somehow?

What is the profile you have set for the clipping indicator?

Depends what you mean by ‘accurate’. The over/under exposure warning will accurately show what pixels are close to white/black after processing (i.e. at the end of the pixelpipe). You could theoretically take a pure white (‘overexposed’) image and reduce exposure to bring the entire image down to mid-grey. The indicator would tell you that nothing was overexposed at all.

If you’re looking for an indicator as to whether your original raw image is over/under exposed, you should use the raw over/under exposure warning.

In the case of your channel mixer example above, the channel mixer module clipped information out of your image but because subsequent processing steps took that clipped information and made it non-white, it didn’t show as overexposed.

My over/under exposure settings are red & blue, and I’ve set the thresholds to 0% and 100%.
Is that what you mean?

Yes, this is exactly what I would expect it to do. I’m not talking about the raw over/under warning. That’s clear to me and seems to work completely as expected.

The “regular” over/under exposure warning, however, sometimes seems to show clipping when it really doesn’t look like there is any, such as in the case of the skin above. And with that issue with the channel mixer, I began to wonder whether it really was showing the results after all processing has been completed at the end of the pixelpipe.

I have set it to only show clipping at 100%, so I would expect that to only show true clipping (not just a warning when you’re getting close).

it is showing clipping for any channel, right, so drop a color pick on there and see if any channel is clipped.

Yes, that’s it! In my skin sample above, the red channel is showing as 255, which would be an indication it’s being clipped. I couldn’t see that from the histogram and the manual says that the over/underexposed warning shows pixels “close to pure white or close to pure black”, which was throwing me a little. Thanks for the tip!