{"id":7179,"date":"2024-11-11T09:19:21","date_gmt":"2024-11-11T09:19:21","guid":{"rendered":"https:\/\/tsugi-studio.com\/blog\/?p=7179"},"modified":"2024-11-13T04:51:20","modified_gmt":"2024-11-13T04:51:20","slug":"davinci-resolve-integration","status":"publish","type":"post","link":"https:\/\/tsugi-studio.com\/blog\/2024\/11\/11\/davinci-resolve-integration\/","title":{"rendered":"DaVinci Resolve Integration"},"content":{"rendered":"<p>Imagine generating high-quality audio ambiences that perfectly match the duration of your video clips or automatically inserting sound variations on markers in your timeline. What a time-saver this would be!<\/p>\n<p>Thanks to procedural audio, you can do just that, and more. In this post, we examine a new <a href=\"https:\/\/tsugi-studio.com\/web\/gamesynth\/api\/en\/examples.html#davinci\">Python script<\/a> for <a href=\"https:\/\/www.blackmagicdesign.com\/products\/davinciresolve\">DaVinci Resolve<\/a> that will allow you to control GameSynth from everybody\u2019s favorite video editor.<\/p>\n<p><a class=\"litymp3\" href=\"https:\/\/youtu.be\/_oo0iEub31o\" data-lity=\"\"><img decoding=\"async\" src=\"https:\/\/tsugi-studio.com\/blog\/wp-content\/uploads\/2024\/11\/davinci\/video.jpg\" alt=\"\"><br \/>\n<\/a><\/p>\n<h2 class=\"tsugiblog-blackheader\" style=\"margin-top: 40px;padding: 16px 18px;max-width: 670px;background-position: right center;background-repeat: no-repeat;background-size: contain;letter-spacing: 0.05em;color: #ffffff;background-color: #251d31;background-image: url('https:\/\/tsugi-studio.com\/blog\/wp-content\/uploads\/2024\/11\/davinci\/header-bg0.png');\">GETTING STARTED<\/h2>\n<p>In order to run a Python script in Resolve, the proper version of the language (3.6 or higher, 64-bit) must be installed on your computer. If this is not the case, you can download the latest version here: <a href=\"https:\/\/www.python.org\/downloads\/\">https:\/\/www.python.org\/downloads\/<\/a><\/p>\n<p>If it is not already done, three environment variables must also be added to Windows:<\/p>\n<div style=\"padding: 15px;\n    background-color: #171717;\n    color: #ccc;\n    font-size: 12px;\n    margin: 10px 0px 30px 0px;\n    line-height: 1.8;\"><\/p>\n<table>\n<tbody>\n<tr>\n<td style=\"font-size: 12px; margin-right: 10px; padding-right: 15px\">RESOLVE_SCRIPT_LIB<\/td>\n<td style=\"font-size: 12px; margin-right: 10px;\">C:\\Program Files\\Blackmagic Design\\DaVinci Resolve\\fusionscript.dll<\/td>\n<\/tr>\n<tr>\n<td style=\"font-size: 12px; margin-right: 10px; padding-right: 15px\">RESOLVE_SCRIPT_API<\/td>\n<td style=\"font-size: 12px; margin-right: 10px;\">C:\\ProgramData\\Blackmagic Design\\DaVinci Resolve\\Support\\Developer\\Scripting<\/td>\n<\/tr>\n<tr>\n<td style=\"font-size: 12px; margin-right: 10px; padding-right: 15px\">PYTHONPATH<\/td>\n<td style=\"font-size: 12px; margin-right: 10px;\">C:\\ProgramData\\Blackmagic Design\\DaVinci Resolve\\Support\\Developer\\Scripting\\Modules<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<p>You can now download the \u201cGSAPI_RenderCurrentPatch.py\u201d script from <a href=\"https:\/\/tsugi-studio.com\/web\/gamesynth\/api\/jp\/examples.html#davinci\">our website<\/a>, and paste it into the following folder:<br \/>C:\\ProgramData\\Blackmagic Design\\DaVinci Resolve\\Fusion\\Scripts\\Edit<\/p>\n<p>The script will work with both the free and Studio versions of Resolve, and if you open the program, it should appear in the \u201cWorkspace\u201d menu, under the \u201cScripts\u201d section.<\/p>\n<p><a class=\"blog-picture-lity\" data-lity=\"\" style=\"max-width: 200px; display:block; margin: 0 auto\" href=\"https:\/\/tsugi-studio.com\/blog\/wp-content\/uploads\/2024\/11\/davinci\/3.png\"><br \/>\n<img decoding=\"async\" src=\"https:\/\/tsugi-studio.com\/blog\/wp-content\/uploads\/2024\/11\/davinci\/3.png\" alt=\"\u30a2\u30c9\u30aa\u30f3\"><\/a><\/p>\n<h2 class=\"tsugiblog-blackheader\" style=\"margin-top: 40px;padding: 16px 18px;max-width: 670px;background-position: right center;background-repeat: no-repeat;background-size: contain;letter-spacing: 0.05em;color: #ffffff;background-color: #251d31;background-image: url('https:\/\/tsugi-studio.com\/blog\/wp-content\/uploads\/2024\/11\/davinci\/header-bg1.png');\">RENDERING SOUND OVER A CLIP<\/h2>\n<p>The script offers several ways to render the current GameSynth patch and to add it to a timeline.<\/p>\n<p>When selecting the \u201cOver Clip\u201d mode, a wave file matching the exact duration of the current video clip (on which the playhead is located) will be generated. This is especially useful when you need to add environmental sound effects, such as rain, urban or forest ambiences, room tones, and so on.<\/p>\n<p>You can select the audio track on which the new audio clip will be inserted or create a new one. Please note that rendering will not be allowed if there is already an audio clip on the section of the timeline where the new clip is to be inserted.<\/p>\n<p><img decoding=\"async\" style=\"display:block; margin: 0 auto\" src=\"https:\/\/tsugi-studio.com\/blog\/wp-content\/uploads\/2024\/11\/davinci\/4.png\" alt=\"Rendering1\"><\/p>\n<h2 class=\"tsugiblog-blackheader\" style=\"margin-top: 40px;padding: 16px 18px;max-width: 670px;background-position: right center;background-repeat: no-repeat;background-size: contain;letter-spacing: 0.05em;color: #ffffff;background-color: #251d31;background-image: url('https:\/\/tsugi-studio.com\/blog\/wp-content\/uploads\/2024\/11\/davinci\/header-bg2.png');\">RENDERING SOUND AT THE PLAYHEAD<\/h2>\n<p>The previous mode is intended for infinite GameSynth patches, for which the exact amount of audio will be generated. In the case of one-shot patches with a fixed duration, they will stay unchanged if they are shorter than the clip, or will be trimmed to match its duration if they are longer.<\/p>\n<p>However, to insert a one-shot patch at a specific position (or render an infinite patch with an arbitrary duration), you can use the \u201cAt Playhead\u201d insertion mode. The new audio clip will be inserted precisely at the playhead\u2019s position, and if the patch is infinite, it will have the duration you specified.<\/p>\n<p><img decoding=\"async\" style=\"display:block; margin: 0 auto\" src=\"https:\/\/tsugi-studio.com\/blog\/wp-content\/uploads\/2024\/11\/davinci\/5.png\" alt=\"Rendering1\"><\/p>\n<h2 class=\"tsugiblog-blackheader\" style=\"margin-top: 40px;padding: 16px 18px;max-width: 670px;background-position: right center;background-repeat: no-repeat;background-size: contain;letter-spacing: 0.05em;color: #ffffff;background-color: #251d31;background-image: url('https:\/\/tsugi-studio.com\/blog\/wp-content\/uploads\/2024\/11\/davinci\/header-bg3.png');\">RENDERING SOUND ON MARKERS<\/h2>\n<p>The last insertion mode, \u201cAt markers\u201d, allows you to render variations of a GameSynth patch on each marker of the timeline. This can prove particularly useful when a video contains repeated actions (footsteps, gunshots, water drops, etc.).<\/p>\n<p>In this mode, you can select the color of the markers on which the audio clips will be added. Like in the previous mode, you can specify the rendering duration if the current GameSynth patch is infinite.<\/p>\n<p>New audio tracks will automatically be added to prevent clips from overlapping when markers are too close.<\/p>\n<p><img decoding=\"async\" style=\"display:block; margin: 0 auto\" src=\"https:\/\/tsugi-studio.com\/blog\/wp-content\/uploads\/2024\/11\/davinci\/6.png\" alt=\"Rendering1\"><\/p>\n<p>Using procedural audio is a great way to speed up your workflow while maintaining the highest audio quality. Indeed, no potentially damaging post-processing is needed as the required files can be re-generated (for example, if the duration of a video clip changes, etc.).<\/p>\n<p>This script is using the GameSynth Tool API. <a href=\"https:\/\/tsugi-studio.com\/web\/gamesynth\/api\/en\/index.html\">Check its website<\/a> to discover other integrations: with 3D animation software, game engines, DAWs, and more!<\/p>\n<div style=\"margin:30px 0px;\">\n<p style=\"font-size:75%;\">\nNote: as of 12\/11\/2024, support for the UI Manager &#8211; used by this script and many others &#8211; has been removed from the free version of DaVinci Resolve by Blackmagic Design. Therefore, this script will now only work on the Studio version.\n<\/p>\n<\/div>\n<p><a class=\"gs-learn-more\" href=\"https:\/\/tsugi-studio.com\/web\/en\/products-gamesynth.html\" rel=\"noopener\"><img decoding=\"async\" src=\"https:\/\/tsugi-studio.com\/blog\/wp-content\/uploads\/2020\/06\/2020_06_Introducing-Modular-Weapons-Modules-banner-1.png\" alt=\"GameSynth\"><\/a><\/p>\n<p><a class=\"gs-learn-more\" href=\"https:\/\/discord.com\/invite\/hacFY2EmgF\"><img decoding=\"async\" src=\"https:\/\/tsugi-studio.com\/blog\/wp-content\/uploads\/2023\/04\/discord.png\" alt=\"discord\"><\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Imagine generating high-quality audio ambiences that perfectly match the duration of your video clips or automatically inserting sound variations on markers in your timeline.<\/p>\n","protected":false},"author":1,"featured_media":7180,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[15,6],"tags":[],"class_list":["post-7179","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-procedural-audio","category-gamesynth"],"_links":{"self":[{"href":"https:\/\/tsugi-studio.com\/blog\/wp-json\/wp\/v2\/posts\/7179","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/tsugi-studio.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/tsugi-studio.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/tsugi-studio.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/tsugi-studio.com\/blog\/wp-json\/wp\/v2\/comments?post=7179"}],"version-history":[{"count":27,"href":"https:\/\/tsugi-studio.com\/blog\/wp-json\/wp\/v2\/posts\/7179\/revisions"}],"predecessor-version":[{"id":7208,"href":"https:\/\/tsugi-studio.com\/blog\/wp-json\/wp\/v2\/posts\/7179\/revisions\/7208"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/tsugi-studio.com\/blog\/wp-json\/wp\/v2\/media\/7180"}],"wp:attachment":[{"href":"https:\/\/tsugi-studio.com\/blog\/wp-json\/wp\/v2\/media?parent=7179"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/tsugi-studio.com\/blog\/wp-json\/wp\/v2\/categories?post=7179"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/tsugi-studio.com\/blog\/wp-json\/wp\/v2\/tags?post=7179"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}