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 1 of 2

  • Virgil T

    This is amazing, Joey! Can DCTL be used for creating a tool to control highlights, by using the multiply method? If so, I would definitely tinker with this.

  • Joey D’Anna

    Thanks! Not 100% sure what you mean by the multiply method – what is that?

  • Fabrizio P

    very useful… Thank you for sharing….

  • Willian Aleman

    Thanks a lot for the great insight. I have read a lot about DCTL trying to wrap my head around it.

    I hope there would be a Part 2, step by step insight, that takes us to the process of the basic programing of the syntax that takes to build the DCTL.
    Again, thanks for the amazing insight.

  • Marc Wielage

    The customizable Safe Action/Title generator is very much appreciated — I’ve been asking for this in Resolve for years and years.

  • Jeffrey S

    Blanking error detection is genius. Been wanting this feature forever.

  • Joey D’Anna

    yea its made life way better for me on a few docs recently.

  • Scott Stacy

    Brilliant, Joey. The blanking error detection is awesome.

  • Jonny E

    Joey – this is so great and really exciting to see a new way to customise and extend the power of Resolve. Keep up the great work!

  • Jaemie M

    OMG! I’ve put off watching this one for some reason. But that blanking thing is someone I was thinking of coding up in python or something! This will save some QC fails when you miss them, and even the QC house misses them! You are a life saver! Thanks Joey!

  • Jaemie M

    It would be awesome if this were to be automated to then add a marker to the timeline where blanking issues occur. Either way, very valuble tool. Thanks again!

  • Chris B

    Help! The DCTL is not showing up in my OFX (restarted resolve and computer twice) and when I use as a LUT i get the error: Error Processing Davinci CTL

    Anyone else have this issue?

  • Seth Goldin

    Thanks for this, Joey.

    For the output blanking, I’ve been using Walter Volpatto’s method of a LUT, just so that you can pop it at the very end of the signal, on the Output LUT:

    Is there some way of getting your BLANKING DCTL at the very end of the signal, so that you can review a whole timeline for blanking problems all at once?

  • Joey D’Anna

    Hey Seth – Yup, I would just put it on a timeline node. You can also apply it as an output CTL under project settings -> color management

  • Joey D’Anna

    Hey everyone – It looks like the UI controls I used in the code aren’t compatible with Resolve 14.
    If you are still on 14 – you’ll have this same issue, so we’ve also posted a 14 compatible blanking DCTL that doesn’t have the customizable controls.

Page 1 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!