2-pop generator

Get answers to your questions about color grading, editing and finishing with DaVinci Resolve.
  • Author
  • Message
Offline

wkmpellucid

  • Posts: 31
  • Joined: Tue Jul 09, 2019 8:44 pm
  • Real Name: W. Keith McManus

2-pop generator

PostWed Jan 20, 2021 1:54 pm

One thing missing from Resolve that was in Final Cut Pro 7, is the 2-pop countdown. It was a handy item to drop in the final edit, along with color bars, for delivery for broadcast. It is too bad that BlackMagic doesn't include something like that in their preset generators.
Offline

John Holt

  • Posts: 197
  • Joined: Sat Mar 02, 2019 8:54 pm
  • Real Name: John Holt

Re: 2-pop generator

PostWed Jan 20, 2021 4:50 pm

Hello.

This is so far, I will add sound over the next few days and repost. However, you can create a 1Khz tone in Fairlight and add it to your timeline.

I have made this as a Fusion Comp, so just copy the code and paste it into the fusion graph. Then you can save it as a macro. I have assumed a 30fps timeline however in the next version I will get this to look up the timeline fps dynamically.

Once complete I'll turn it into a macro so you can just drag it in from the Effects Library.

Enjoy

Code: Select all
{
   Tools = ordered() {
      Rectangle1 = RectangleMask {
         Inputs = {
            Filter = Input { Value = FuID { "Fast Gaussian" }, },
            MaskWidth = Input { Value = 1920, },
            MaskHeight = Input { Value = 1080, },
            PixelAspect = Input { Value = { 1, 1 }, },
            UseFrameFormatSettings = Input { Value = 1, },
            ClippingMode = Input { Value = FuID { "None" }, },
            Center = Input {
               SourceOp = "XYPath1",
               Source = "Value",
            },
            Width = Input { Value = 1, },
            Height = Input { Value = 1, },
         },
         ViewInfo = OperatorInfo { Pos = { 440, 82.5 } },
      },
      XYPath1 = XYPath {
         ShowKeyPoints = false,
         DrawMode = "ModifyOnly",
         CtrlWZoom = false,
         Inputs = {
            X = Input {
               Value = 0.5,
               Expression = "(-time/comp.RenderEnd)+.5",
            },
            Y = Input { Value = 0.5, },
         },
      },
      Background2 = Background {
         Inputs = {
            GlobalOut = Input { Value = 149, },
            Width = Input { Value = 1920, },
            Height = Input { Value = 1080, },
            UseFrameFormatSettings = Input { Value = 1, },
            ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
            TopLeftRed = Input { Value = 0.525490196078431, },
            TopLeftGreen = Input { Value = 0.525490196078431, },
            TopLeftBlue = Input { Value = 0.525490196078431, },
            EffectMask = Input {
               SourceOp = "Rectangle1",
               Source = "Mask",
            }
         },
         ViewInfo = OperatorInfo { Pos = { 440, 115.5 } },
      },
      CoordinateSpace1 = CoordSpace {
         Inputs = {
            Shape = Input { Value = 1, },
            Input = Input {
               SourceOp = "Background2",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 440, 148.5 } },
      },
      Background3 = Background {
         Inputs = {
            EffectMask = Input {
               SourceOp = "Ellipse1_1",
               Source = "Mask",
            },
            GlobalOut = Input { Value = 149, },
            Width = Input { Value = 1920, },
            Height = Input { Value = 1080, },
            UseFrameFormatSettings = Input { Value = 1, },
            ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
            TopLeftRed = Input { Value = 1, },
            TopLeftGreen = Input { Value = 1, },
            TopLeftBlue = Input { Value = 1, },
         },
         ViewInfo = OperatorInfo { Pos = { 660, 148.5 } },
      },
      Ellipse1_1 = EllipseMask {
         Inputs = {
            EffectMask = Input {
               SourceOp = "Ellipse1",
               Source = "Mask",
            },
            Filter = Input { Value = FuID { "Fast Gaussian" }, },
            BorderWidth = Input { Value = 0.0104, },
            Solid = Input { Value = 0, },
            MaskWidth = Input { Value = 1920, },
            MaskHeight = Input { Value = 1080, },
            PixelAspect = Input { Value = { 1, 1 }, },
            UseFrameFormatSettings = Input { Value = 1, },
            ClippingMode = Input { Value = FuID { "None" }, },
            Width = Input {
               Value = 0.327,
               Expression = "Height",
            },
            Height = Input { Value = 0.327, },
         },
         ViewInfo = OperatorInfo { Pos = { 660, 115.5 } },
      },
      Ellipse1 = EllipseMask {
         Inputs = {
            Filter = Input { Value = FuID { "Fast Gaussian" }, },
            BorderWidth = Input { Value = 0.0114, },
            Solid = Input { Value = 0, },
            MaskWidth = Input { Value = 1920, },
            MaskHeight = Input { Value = 1080, },
            PixelAspect = Input { Value = { 1, 1 }, },
            UseFrameFormatSettings = Input { Value = 1, },
            ClippingMode = Input { Value = FuID { "None" }, },
            Width = Input {
               Value = 0.412,
               Expression = "Height",
            },
            Height = Input { Value = 0.412, },
         },
         ViewInfo = OperatorInfo { Pos = { 660, 82.5 } },
      },
      Background5 = Background {
         Inputs = {
            GlobalOut = Input { Value = 149, },
            Width = Input { Value = 1920, },
            Height = Input { Value = 1080, },
            UseFrameFormatSettings = Input { Value = 1, },
            ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
            TopLeftRed = Input { Value = 0.392156862745098, },
            TopLeftGreen = Input { Value = 0.392156862745098, },
            TopLeftBlue = Input { Value = 0.392156862745098, },
         },
         ViewInfo = OperatorInfo { Pos = { 165, 181.5 } },
      },
      Grid1 = ofx.com.blackmagicdesign.resolvefx.Grid {
         Inputs = {
            Source = Input {
               SourceOp = "Merge1",
               Source = "Output",
            },
            vernum = Input { Value = 2, },
            hornum = Input { Value = 2, },
            majorspace = Input { Value = 0, },
            lineprop = Input { Value = 1, },
            linecolorRed = Input { Value = 0, },
            linecolorGreen = Input { Value = 0, },
            linecolorBlue = Input { Value = 0, },
            horwidth = Input { Value = 0.01, },
            verwidth = Input { Value = 0.01, },
            majorwidth = Input { Value = 1, },
            tranform = Input { Value = 1, },
            pan = Input { Value = 0, },
            tilt = Input { Value = 0, },
            zoom = Input { Value = 1, },
            rotate = Input { Value = 0, },
            gridwidth = Input { Value = 1, },
            gridheight = Input { Value = 1, },
            ShearX = Input { Value = 0, },
            ShearY = Input { Value = 0, },
            pitch = Input { Value = 0, },
            yaw = Input { Value = 0, },
            blendGroup = Input { Value = 0, },
            blendIn = Input { Value = 1, },
            blend = Input { Value = 0, },
            ignoreContentShape = Input { Value = 0, },
            legacyIsProcessRGBOnly = Input { Value = 0, },
            refreshTrigger = Input { Value = 1, },
            resolvefxVersion = Input { Value = "1.0", },
         },
         ViewInfo = OperatorInfo { Pos = { 550, 214.5 } },
      },
      Merge1 = Merge {
         Inputs = {
            Background = Input {
               SourceOp = "Merge4",
               Source = "Output",
            },
            Foreground = Input {
               SourceOp = "CoordinateSpace1",
               Source = "Output",
            },
            PerformDepthMerge = Input { Value = 0, },
         },
         ViewInfo = OperatorInfo { Pos = { 440, 214.5 } },
      },
      Merge4 = Merge {
         Inputs = {
            Background = Input {
               SourceOp = "Background1",
               Source = "Output",
            },
            Foreground = Input {
               SourceOp = "Background5",
               Source = "Output",
            },
            PerformDepthMerge = Input { Value = 0, },
         },
         ViewInfo = OperatorInfo { Pos = { 165, 214.5 } },
      },
      Background1 = Background {
         Inputs = {
            GlobalOut = Input { Value = 149, },
            Width = Input { Value = 1920, },
            Height = Input { Value = 1080, },
            UseFrameFormatSettings = Input { Value = 1, },
            ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
            TopLeftAlpha = Input { Value = 0, },
         },
         ViewInfo = OperatorInfo { Pos = { 0, 214.5 } },
      },
      Merge3 = Merge {
         Inputs = {
            Background = Input {
               SourceOp = "Grid1",
               Source = "Output",
            },
            Foreground = Input {
               SourceOp = "Background3",
               Source = "Output",
            },
            PerformDepthMerge = Input { Value = 0, },
         },
         ViewInfo = OperatorInfo { Pos = { 660, 214.5 } },
      },
      Merge2 = Merge {
         CtrlWZoom = false,
         Inputs = {
            Background = Input {
               SourceOp = "Merge3",
               Source = "Output",
            },
            Foreground = Input {
               SourceOp = "Transform1",
               Source = "Output",
            },
            PerformDepthMerge = Input { Value = 0, },
         },
         ViewInfo = OperatorInfo { Pos = { 770, 214.5 } },
      },
      Transform1 = Transform {
         Inputs = {
            Input = Input {
               SourceOp = "Text1",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 770, 181.5 } },
      },
      Text1 = TextPlus {
         Inputs = {
            GlobalOut = Input { Value = 149, },
            Width = Input { Value = 1920, },
            Height = Input { Value = 1080, },
            UseFrameFormatSettings = Input { Value = 1, },
            ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
            Red1 = Input { Value = 0, },
            Green1 = Input { Value = 0, },
            Blue1 = Input { Value = 0, },
            StyledText = Input {
               Value = "0",
               Expression = "ceil((comp.RenderEnd-time)/30)",
            },
            Font = Input { Value = "Open Sans", },
            Style = Input { Value = "Bold", },
            Size = Input { Value = 0.5, },
            VerticalJustificationNew = Input { Value = 3, },
            HorizontalJustificationNew = Input { Value = 3, },
            ManualFontKerningPlacement = Input {
               Value = StyledText {
                  Array = {
                  },
                  Value = ""
               },
            },
         },
         ViewInfo = OperatorInfo { Pos = { 770, 148.5 } },
      }
   },
   ActiveTool = "Merge2"
}
Windows 10 Pro
AMD Ryzen 5 3600 6-Core Processor 3.60 GHz
64GB RAM
GTX1650 4GB :(
Samsung SSD 970 EVO Plus 1TB 1000.2 GB
Dual Monitors 32" & 27" Samsung
BM Multidock
Speed Editor
DR Studio Latest Version Fusion Studio Latest Version
Offline

wkmpellucid

  • Posts: 31
  • Joined: Tue Jul 09, 2019 8:44 pm
  • Real Name: W. Keith McManus

Re: 2-pop generator

PostWed Jan 20, 2021 7:22 pm

Thank you.
Offline

John Holt

  • Posts: 197
  • Joined: Sat Mar 02, 2019 8:54 pm
  • Real Name: John Holt

Re: 2-pop generator

PostWed Jan 20, 2021 8:50 pm

Hello

This is a .setting file which you place in your default title folder. You need to unzip the folder first.

FOR WINDOWS
C:/Program Files/Blackmagic Design/DaVinci Resolve/Fusion/Templates/Edit/Titles

FOR MAC OS
Library/Application/Support/Blackmagic Design/DaVinci Resolve/Fusion/Templates/Edit/Titles

Restart Davinci Resolve and the assets will be listed in the "Effects Library".

The 2 x 1khz Audio files are separate for you to put below the seconds in the "Title". The countdown is responsive, however, occasionally Resolve "Cache" plays up and you need to clear the cache to get the correct reading. The default length is 5 seconds, you can drag the countdown to any length.

I have set it to look up your timeline FPS so it will work at any frame rate and give you access to font controls. There's no point in having the styled text as it is an expression.

Once you have set up the countdown to your preferences you could render it out and just have it as stock footage.

https://drive.google.com/file/d/1dTIW07 ... sp=sharing

Hope it's okay.

John
Ps Here's the code if anyone wants to reverse engineer or improve on it.
Code: Select all
{
   Tools = ordered() {
      PopCountDown = MacroOperator {
         Inputs = ordered() {
            Input1 = InstanceInput {
               SourceOp = "CountDown",
               Source = "Font",
               ControlGroup = 1,
            },
            Input2 = InstanceInput {
               SourceOp = "CountDown",
               Source = "Style",
               ControlGroup = 1,
            },
            Input3 = InstanceInput {
               SourceOp = "CountDown",
               Source = "Red1Clone",
               Name = "Color",
               ControlGroup = 2,
               Default = 0,
            },
            Input4 = InstanceInput {
               SourceOp = "CountDown",
               Source = "Green1Clone",
               ControlGroup = 2,
               Default = 0,
            },
            Input5 = InstanceInput {
               SourceOp = "CountDown",
               Source = "Blue1Clone",
               ControlGroup = 2,
               Default = 0,
            },
            Input6 = InstanceInput {
               SourceOp = "CountDown",
               Source = "Alpha1Clone",
               ControlGroup = 2,
               Default = 1,
            },
            Input7 = InstanceInput {
               SourceOp = "CountDown",
               Source = "Size",
               Default = 0.5,
            },
         },
         Outputs = {
            Output1 = InstanceOutput {
               SourceOp = "XYPath1",
               Source = "Heading",
            },
            MainOutput1 = InstanceOutput {
               SourceOp = "Merge2",
               Source = "Output",
            }
         },
         ViewInfo = GroupInfo { Pos = { 0, 0 } },
         Tools = ordered() {
            CountDown = TextPlus {
               NameSet = true,
               Inputs = {
                  Width = Input { Value = 1920, },
                  Height = Input { Value = 1080, },
                  UseFrameFormatSettings = Input { Value = 1, },
                  ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
                  Red1 = Input { Value = 0, },
                  Green1 = Input { Value = 0, },
                  Blue1 = Input { Value = 0, },
                  StyledText = Input {
                     Value = "4",
                     Expression = "ceil((comp.RenderEnd-time)/(comp:GetPrefs(\"Comp.FrameFormat.Rate\")))",
                  },
                  Font = Input { Value = "Open Sans", },
                  Style = Input { Value = "Bold", },
                  Size = Input { Value = 0.5, },
                  VerticalJustificationNew = Input { Value = 3, },
                  HorizontalJustificationNew = Input { Value = 3, },
                  ManualFontKerningPlacement = Input {
                     Value = StyledText {
                        Array = {
                        },
                        Value = ""
                     },
                  },
               },
               ViewInfo = OperatorInfo { Pos = { 770, 148.5 } },
            },
            Rectangle1 = RectangleMask {
               Inputs = {
                  Filter = Input { Value = FuID { "Fast Gaussian" }, },
                  MaskWidth = Input { Value = 1920, },
                  MaskHeight = Input { Value = 1080, },
                  PixelAspect = Input { Value = { 1, 1 }, },
                  UseFrameFormatSettings = Input { Value = 1, },
                  ClippingMode = Input { Value = FuID { "None" }, },
                  Center = Input {
                     SourceOp = "XYPath1",
                     Source = "Value",
                  },
                  Width = Input { Value = 1, },
                  Height = Input { Value = 1, },
               },
               ViewInfo = OperatorInfo { Pos = { 440, 115.5 } },
            },
            XYPath1 = XYPath {
               ShowKeyPoints = false,
               DrawMode = "ModifyOnly",
               CtrlWZoom = false,
               Inputs = {
                  X = Input {
                     Value = -0.426174496644295,
                     Expression = "(-time/comp.RenderEnd)+.5",
                  },
                  Y = Input { Value = 0.5, },
               },
            },
            Background2 = Background {
               Inputs = {
                  EffectMask = Input {
                     SourceOp = "Rectangle1",
                     Source = "Mask",
                  },
                  Width = Input { Value = 1920, },
                  Height = Input { Value = 1080, },
                  UseFrameFormatSettings = Input { Value = 1, },
                  ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
                  TopLeftRed = Input { Value = 0.5254901960784, },
                  TopLeftGreen = Input { Value = 0.5254901960784, },
                  TopLeftBlue = Input { Value = 0.5254901960784, },
               },
               ViewInfo = OperatorInfo { Pos = { 440, 148.5 } },
            },
            BGColor = Background {
               NameSet = true,
               Inputs = {
                  Width = Input { Value = 1920, },
                  Height = Input { Value = 1080, },
                  UseFrameFormatSettings = Input { Value = 1, },
                  ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
                  TopLeftRed = Input { Value = 0.3921568627451, },
                  TopLeftGreen = Input { Value = 0.3921568627451, },
                  TopLeftBlue = Input { Value = 0.3921568627451, },
               },
               ViewInfo = OperatorInfo { Pos = { 220, 181.5 } },
            },
            CoordinateSpace1 = CoordSpace {
               Inputs = {
                  Shape = Input { Value = 1, },
                  Input = Input {
                     SourceOp = "Background2",
                     Source = "Output",
                  },
               },
               ViewInfo = OperatorInfo { Pos = { 440, 181.5 } },
            },
            Merge4 = Merge {
               Inputs = {
                  Background = Input {
                     SourceOp = "BG",
                     Source = "Output",
                  },
                  Foreground = Input {
                     SourceOp = "BGColor",
                     Source = "Output",
                  },
                  PerformDepthMerge = Input { Value = 0, },
               },
               ViewInfo = OperatorInfo { Pos = { 220, 214.5 } },
            },
            Merge1 = Merge {
               Inputs = {
                  Background = Input {
                     SourceOp = "Merge4",
                     Source = "Output",
                  },
                  Foreground = Input {
                     SourceOp = "CoordinateSpace1",
                     Source = "Output",
                  },
                  PerformDepthMerge = Input { Value = 0, },
               },
               ViewInfo = OperatorInfo { Pos = { 440, 214.5 } },
            },
            Grid1 = ofx.com.blackmagicdesign.resolvefx.Grid {
               Inputs = {
                  Source = Input {
                     SourceOp = "Merge1",
                     Source = "Output",
                  },
                  vernum = Input { Value = 2, },
                  hornum = Input { Value = 2, },
                  majorspace = Input { Value = 0, },
                  lineprop = Input { Value = 1, },
                  linecolorRed = Input { Value = 0, },
                  linecolorGreen = Input { Value = 0, },
                  linecolorBlue = Input { Value = 0, },
                  horwidth = Input { Value = 0.01, },
                  verwidth = Input { Value = 0.01, },
                  majorwidth = Input { Value = 1, },
                  tranform = Input { Value = 1, },
                  pan = Input { Value = 0, },
                  tilt = Input { Value = 0, },
                  zoom = Input { Value = 1, },
                  rotate = Input { Value = 0, },
                  gridwidth = Input { Value = 1, },
                  gridheight = Input { Value = 1, },
                  ShearX = Input { Value = 0, },
                  ShearY = Input { Value = 0, },
                  pitch = Input { Value = 0, },
                  yaw = Input { Value = 0, },
                  blendGroup = Input { Value = 0, },
                  blendIn = Input { Value = 1, },
                  blend = Input { Value = 0, },
                  ignoreContentShape = Input { Value = 0, },
                  legacyIsProcessRGBOnly = Input { Value = 0, },
                  refreshTrigger = Input { Value = 1, },
                  resolvefxVersion = Input { Value = "1.0", },
               },
               ViewInfo = OperatorInfo { Pos = { 550, 214.5 } },
            },
            BG = Background {
               NameSet = true,
               Inputs = {
                  Width = Input { Value = 1920, },
                  Height = Input { Value = 1080, },
                  UseFrameFormatSettings = Input { Value = 1, },
                  ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
                  TopLeftAlpha = Input { Value = 0, },
               },
               ViewInfo = OperatorInfo { Pos = { -110, 214.5 } },
            },
            Background3 = Background {
               Inputs = {
                  EffectMask = Input {
                     SourceOp = "Ellipse1_1",
                     Source = "Mask",
                  },
                  Width = Input { Value = 1920, },
                  Height = Input { Value = 1080, },
                  UseFrameFormatSettings = Input { Value = 1, },
                  ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
                  TopLeftRed = Input { Value = 1, },
                  TopLeftGreen = Input { Value = 1, },
                  TopLeftBlue = Input { Value = 1, },
               },
               ViewInfo = OperatorInfo { Pos = { 660, 181.5 } },
            },
            Merge3 = Merge {
               Inputs = {
                  Background = Input {
                     SourceOp = "Grid1",
                     Source = "Output",
                  },
                  Foreground = Input {
                     SourceOp = "Background3",
                     Source = "Output",
                  },
                  PerformDepthMerge = Input { Value = 0, },
               },
               ViewInfo = OperatorInfo { Pos = { 660, 214.5 } },
            },
            Ellipse1 = EllipseMask {
               Inputs = {
                  Filter = Input { Value = FuID { "Fast Gaussian" }, },
                  BorderWidth = Input { Value = 0.0114, },
                  Solid = Input { Value = 0, },
                  MaskWidth = Input { Value = 1920, },
                  MaskHeight = Input { Value = 1080, },
                  PixelAspect = Input { Value = { 1, 1 }, },
                  UseFrameFormatSettings = Input { Value = 1, },
                  ClippingMode = Input { Value = FuID { "None" }, },
                  Width = Input {
                     Value = 0.412,
                     Expression = "Height",
                  },
                  Height = Input { Value = 0.412, },
               },
               ViewInfo = OperatorInfo { Pos = { 660, 115.5 } },
            },
            Ellipse1_1 = EllipseMask {
               Inputs = {
                  EffectMask = Input {
                     SourceOp = "Ellipse1",
                     Source = "Mask",
                  },
                  Filter = Input { Value = FuID { "Fast Gaussian" }, },
                  BorderWidth = Input { Value = 0.0104, },
                  Solid = Input { Value = 0, },
                  MaskWidth = Input { Value = 1920, },
                  MaskHeight = Input { Value = 1080, },
                  PixelAspect = Input { Value = { 1, 1 }, },
                  UseFrameFormatSettings = Input { Value = 1, },
                  ClippingMode = Input { Value = FuID { "None" }, },
                  Width = Input {
                     Value = 0.327,
                     Expression = "Height",
                  },
                  Height = Input { Value = 0.327, },
               },
               ViewInfo = OperatorInfo { Pos = { 660, 148.5 } },
            },
            Merge2 = Merge {
               Inputs = {
                  Background = Input {
                     SourceOp = "Merge3",
                     Source = "Output",
                  },
                  Foreground = Input {
                     SourceOp = "Transform1",
                     Source = "Output",
                  },
                  PerformDepthMerge = Input { Value = 0, },
               },
               ViewInfo = OperatorInfo { Pos = { 770, 214.5 } },
            },
            Transform1 = Transform {
               CtrlWZoom = false,
               Inputs = {
                  Input = Input {
                     SourceOp = "CountDown",
                     Source = "Output",
                  },
               },
               ViewInfo = OperatorInfo { Pos = { 770, 181.5 } },
            }
         },
      }
   },
   ActiveTool = "PopCountDown"
}
Windows 10 Pro
AMD Ryzen 5 3600 6-Core Processor 3.60 GHz
64GB RAM
GTX1650 4GB :(
Samsung SSD 970 EVO Plus 1TB 1000.2 GB
Dual Monitors 32" & 27" Samsung
BM Multidock
Speed Editor
DR Studio Latest Version Fusion Studio Latest Version

Return to DaVinci Resolve

Who is online

Users browsing this forum: Bing [Bot], Fully_Loaded34, Mads Johansen, panos_mts, Robert John, sjubussen and 297 guests