How to use DaVinci Resolve's DCTLs to automate repetitive tasks

Using DCTLs And Expanding Resolve’s Functionality

February 6, 2019

Do you perform repetitive tasks on a regular basis when color correcting or finishing? Then learn how to use DCTLs to automate those tasks!


Learning A ‘Hidden Tool’ To Customize DaVinci Resolve

If you watched my previous insights on AutoHotKey and Python scripting, it’s obvious that I love expanding the functionality of my tools to better suit my needs and workflow.

In general, if I find myself doing something repetitive, labor-intensive, inconvenient or in any way non-creative, I try to make a tool, shortcut, or workflow to automate it.

In fact, I would rather spend a full day writing a script to automate a repetitive task – then spend a single hour toiling through that task. I’m always on the lookout for cool ways to enhance my workflow, so I can spend more time focusing on being creative, and less time focusing on tools.

DCTL: Better than a LUT, not quite a plug-in

DCTL stands for “DaVinci Colorspace Transform Language”. It is a Resolve-specific implementation of the Academy’s Colorspace Transform Language, used to program custom color space transforms and it forms the foundation of the math behind ACES.

DCTLs can be used in the node tree just like LUTs. But unlike a LUT they don’t hard clip. You maintain 32-bit floating-point processing using them.

To me, the real power of the DCTL is in the OpenFX panel – DCTLs can be created to expose properties for the colorist to adjust. They work like a plug-in but are much easier to write.

Using DCTL To Make Custom Tools

I’ve used DCTL to build a few useful little custom utilities. If you’re a Mixing Light Premium member, you can download them in this Insight, in the Additional Downloads section under the video.

In this video, you learn how to get started with DCTLs, and how to install and use them. You also learn how to use the 3 DCTL tools I built and included with this Insight, which are:

  • A letterbox overlay with much more functionality than the built-in tools in Resolve.
  • A customizable title-safe generator that can dial in any aspect ration you desire.
  • blanking-error detector/visualizer with custom controls.

And since DCTLs are plain-text – feel free to break open my code and use it as a starting point to learn from, or to customize them to your own needs!



Member Content

Sorry... the rest of this content is for members only. You'll need to login or Join Now to continue (we hope you do!).

Need more information about our memberships? Click to learn more.

Membership options
Member Login

Are you using our app? For the best experience, please login using the app's launch screen

Additional Downloads

Sorry... downloads are available for Premium Members only.

Become a Premium Member


Homepage Forums Using DCTLs And Expanding Resolve’s Functionality

Page 2 of 2

  • Ariel Wollinger

    DCTL: Better THAN a LUT,

  • Stefan Weßling

    What if I want to “morph” a node tree into an OFX plugin – would DCTL be a way to go?
    I found compound nodes but thats not exactly what I’d like to have.

  • Pat Inhofer

    IF you understand all the maths in the node tree then yes, you can do this. But not as easy as generating a LUT from a node tree, if that’s what you’re getting at?

  • Scott A

    Hey Joey! Thanks for sharing this. This was insanely helpful. It seems now in 17, BM added more customization for title safe guides (now you can specify percentages in the USER preferences) but I still need more control like you have in the DCTL. I noticed in your DCTL you only have outer and inner box controls which scale proportionately to the defined number. The problem with this is that the boxes should be proportionate to the aspect ratio. For instance 93% of 1920 is different than 93% of 1080 so you should get more pixels outside of the boxes on the left and right as opposed to the top and bottom (as reflected in resolve’s built in guides).
    Do you know how to go about adjusting your code to fix this? I would assume you would need to break up outer/inner box controls into top and bottom / left and right as well or rethink the equation a bit so it scales appropriately. I looked at your code but I am not the best with DCTL yet. It would be great to hear your thoughts on this, thanks!

  • marc fisher


    thank you for posting these. The Letterboxing one was especially of interest. As there is no way that resolve shows you that blanking is on, this was a nice simple solution. 😉

    However, after trying it out on a few projects, we found, and the client side QC found, that the Blanking, is not correct. I exported each of the common aspect ratios, against a guide chart we’ve used for years, and though it was an HD chart scaled to UHD, what really matters is the measurements i took in Photoshop, of the blanking area above and below, in each aspect ratio.

    the dctl is consistently off by 1 line on the bottom. (which i find strange, as your script divides by 2). Is this a v17 bug?

    I attached my photoshop file for you if you feel like flipping through the different aspects.

Page 2 of 2

Log in to reply.

1,000+ Tutorials to Explore

Get full access to our entire library of over 1,100+ color tutorials for an entire week!

Start Your Test Drive!