{"id":4990,"date":"2024-07-04T09:55:32","date_gmt":"2024-07-04T00:55:32","guid":{"rendered":"https:\/\/blog.criware.com\/?p=4990"},"modified":"2024-08-03T13:36:15","modified_gmt":"2024-08-03T04:36:15","slug":"adx-beginners-guide-11-dynamic-mixing-with-react","status":"publish","type":"post","link":"https:\/\/blog.criware.com\/index.php\/2024\/07\/04\/adx-beginners-guide-11-dynamic-mixing-with-react\/","title":{"rendered":"ADX Beginner\u2019s Guide #11 \u2013 Dynamic mixing with REACT"},"content":{"rendered":"<p>In <a href=\"https:\/\/blog.criware.com\/index.php\/2024\/06\/17\/adx-beginners-guide-10-categories\/\">the last post<\/a> of this beginner\u2019s guide, we learned how Categories can help us organize and control the parameters of a group of Cues. This is precisely what they can do when combined with the REACT system, allowing us to perform dynamic mixing in ADX.<\/p>\n<h1 style=\"font-size: 150%; font-weight: bold; margin-top: 40px;\">Ducking volume<\/h1>\n<p><strong>REACT<\/strong> is a system that lets you define how sounds should change in response to other sounds being played.<\/p>\n<p>REACT has two modes of operation: <strong>Ducker<\/strong> and <strong>AISAC Mod Trigger<\/strong>.<\/p>\n<p>The ducker is used to change the parameters of the Cues belonging to the target category when a sound from the triggering category is played. In its simplest form, you can temporarily lower the volume of the sounds from the other Categories.<\/p>\n<p>For example, to maintain good intelligibility, you can create a REACT object that lowers the volume of the music Cues every time a dialog Cue is triggered. This is called a ducking effect.<\/p>\n<p>Categories must be set beforehand. Then, a REACT object can be created in the Project Tree:<\/p>\n<ul>\n<li>In the REACT folder, create a new REACT object.<\/li>\n<li>In the <strong>Inspector<\/strong>, set the <em>REACT Type<\/em> to <em>Ducker<\/em>.<\/li>\n<li>The <em>Changing Category<\/em> property corresponds to the category that is affected by the parameter change. Set it to the Music category.<\/li>\n<li>The <em>Trigger Category<\/em> property corresponds to the category that triggers the change. If a Cue from this category is played back, the volume (or other parameters) of the Cues from the <em>Changing Category<\/em> is modified. Set it to the Voice category.<\/li>\n<li>Then, the <em>Change Parameter <\/em>can be set to <em>Volume Level<\/em>, and the <em>Change Level Value<\/em> to 0.15. This means that the volume of the <em>Changing Category<\/em> will be lowered to 0.15.<\/li>\n<li><em>Change Time<\/em> and <em>Return Time<\/em> are the times it takes to reach the <em>Change Level value<\/em> and the time it takes to return to its initial state, respectively. To sound more natural, you usually want the <em>Change Time<\/em> to be fast (100 to 500 ms), and the <em>Return Time<\/em> to be longer (1000 to 2000 ms).<\/li>\n<li>The<em> Hold Type<\/em> property determines how long the <em>Change Level Value<\/em> must be maintained. Two modes are possible:\n<ul>\n<li><em>While Playing<\/em>: this will maintain the <em>Change Level Value<\/em> while the Trigger sound is being played back. This is perfect for our case.<\/li>\n<li>\n<em>Fixed Time<\/em>: this will maintain the <em>Change Level Value<\/em> during the time specified by the <em>Hold Time<\/em>.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<p style=\"text-align:center;\">\n<img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/blog.criware.com\/wp-content\/uploads\/2024\/02\/01-REACT-Ducking-Volume.png\" alt=\"01 REACT Ducking Volume\" width=\"1621\" height=\"465\" class=\"alignnone size-full wp-image-4993\" srcset=\"https:\/\/blog.criware.com\/wp-content\/uploads\/2024\/02\/01-REACT-Ducking-Volume.png 1621w, https:\/\/blog.criware.com\/wp-content\/uploads\/2024\/02\/01-REACT-Ducking-Volume-300x86.png 300w, https:\/\/blog.criware.com\/wp-content\/uploads\/2024\/02\/01-REACT-Ducking-Volume-768x220.png 768w, https:\/\/blog.criware.com\/wp-content\/uploads\/2024\/02\/01-REACT-Ducking-Volume-1024x294.png 1024w\" sizes=\"auto, (max-width: 1621px) 100vw, 1621px\" \/><\/p>\n<p>To help you determine how the REACT will affect the sound, you can look at the <strong>REACT visualization<\/strong> in the <strong>REACT view<\/strong>. The Cues belonging to the Changing and Trigger categories are also listed, so you can check which Cues will affect which.<\/p>\n<p>Once everything is set up, you should now hear the music being automatically ducked by the dialog, like in this video:<\/p>\n<div style=\"max-width: 700px; margin: 0 auto; margin-bottom: 20px; border: 1px solid #aaa;\">\n<div style=\"width: 800px;\" class=\"wp-video\"><video class=\"wp-video-shortcode\" id=\"video-4990-1\" width=\"800\" height=\"423\" preload=\"metadata\" controls=\"controls\"><source type=\"video\/mp4\" src=\"https:\/\/blog.criware.com\/wp-content\/uploads\/2024\/02\/Video_01_REACT_Ducking.mp4?_=1\" \/><a href=\"https:\/\/blog.criware.com\/wp-content\/uploads\/2024\/02\/Video_01_REACT_Ducking.mp4\">https:\/\/blog.criware.com\/wp-content\/uploads\/2024\/02\/Video_01_REACT_Ducking.mp4<\/a><\/video><\/div>\n<\/div>\n<h1 style=\"font-size: 150%; font-weight: bold; margin-top: 40px;\">Ducking AISAC<\/h1>\n<p>Ducking only the volume may not be enough to achieve certain effects. Fortunately, we can also use REACT to change an AISAC Control, which opens up the system to many more parameters.<\/p>\n<p>In addition to changing the volume of a category, ducking an AISAC will also allow you to change its pitch, filtering, pan, etc, enabling more creative effects. Since the curves that control the parameters can be drawn freely, this also means that it is possible to use REACT to bring other sounds to the forefront instead of lowering them.<\/p>\n<p>A typical use for ducking AISAC is to simulate explosive sounds. Not only do these types of sounds require room to get louder, but they can also change our hearing for a short time, a phenomenon known as tinnitus. To simulate this effect, we can filter the high frequencies of the other playing sounds so that they become muffled, in addition to lowering their volume.<\/p>\n<ul>\n<li>To switch a Ducker REACT to control an AISAC, simply select the desired AISAC Control in the <em>Change Parameter<\/em> property.<\/li>\n<li>The <em>Change Level Value<\/em> now corresponds to the value of the AISAC control. We recommend that you set it to 0 to get the full range of the AISAC and use the AISAC graphs to adjust the maximum values for each parameter.<\/li>\n<li>For an explosion, you should set your Ambience category as the <em>Changing Category<\/em>, and your Weapon category as the <em>Trigger Category<\/em>.<\/li>\n<li>\nThe other properties of the REACT can stay unchanged.<\/li>\n<\/ul>\n<p style=\"text-align:center;\">\n<img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/blog.criware.com\/wp-content\/uploads\/2024\/02\/02-REACT-Ducking-AISAC.png\" alt=\"02 REACT Ducking AISAC\" width=\"1398\" height=\"714\" class=\"alignnone size-full wp-image-4994\" srcset=\"https:\/\/blog.criware.com\/wp-content\/uploads\/2024\/02\/02-REACT-Ducking-AISAC.png 1398w, https:\/\/blog.criware.com\/wp-content\/uploads\/2024\/02\/02-REACT-Ducking-AISAC-300x153.png 300w, https:\/\/blog.criware.com\/wp-content\/uploads\/2024\/02\/02-REACT-Ducking-AISAC-768x392.png 768w, https:\/\/blog.criware.com\/wp-content\/uploads\/2024\/02\/02-REACT-Ducking-AISAC-1024x523.png 1024w\" sizes=\"auto, (max-width: 1398px) 100vw, 1398px\" \/>\n<\/p>\n<p>Here is how an explosion can affect the sound of an ambience with REACT:<\/p>\n<div style=\"max-width: 700px; margin: 0 auto; margin-bottom: 20px; border: 1px solid #aaa;\">\n<div style=\"width: 800px;\" class=\"wp-video\"><video class=\"wp-video-shortcode\" id=\"video-4990-2\" width=\"800\" height=\"423\" preload=\"metadata\" controls=\"controls\"><source type=\"video\/mp4\" src=\"https:\/\/blog.criware.com\/wp-content\/uploads\/2024\/02\/Video_02_REACT_AISAC.mp4?_=2\" \/><a href=\"https:\/\/blog.criware.com\/wp-content\/uploads\/2024\/02\/Video_02_REACT_AISAC.mp4\">https:\/\/blog.criware.com\/wp-content\/uploads\/2024\/02\/Video_02_REACT_AISAC.mp4<\/a><\/video><\/div>\n<\/div>\n<h1 style=\"font-size: 150%; font-weight: bold; margin-top: 40px;\">AISAC Modulation Trigger<\/h1>\n<p>The second mode of operation for REACT is called <strong>AISAC Mod Trigger<\/strong>, for AISAC Modulation Trigger. As the name implies, it is used to trigger an AISAC when its <em>Control Type <\/em>is set to <em>Auto Modulation, One Shot <\/em>(you can refer to <u>our post about AISAC<\/u> for more details).<\/p>\n<p>In Ducker mode, since the properties are linked to an AISAC control, they will simply revert to their initial values when the REACT ends. However, in the AISAC Mod Trigger mode, different modulations can be applied at the start and end of the REACT. It is even possible to activate the modulation only at the start or at the end.<br \/>\nThe AISAC Mod Trigger mode uses a <strong>Trigger Key<\/strong> to identify which Auto Modulation AISAC needs to be triggered by the REACT system. For instance, by setting the <em>Return AISAC Mod Key<\/em> to 1, any AISAC using the same Key will be triggered as soon as the REACT ends.<\/p>\n<p>&nbsp;<\/p>\n<p style=\"text-align:center;\">\n<img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/blog.criware.com\/wp-content\/uploads\/2024\/02\/03-REACT-Key-Trigger.png\" alt=\"03 REACT Key Trigger\" width=\"748\" height=\"423\" class=\"alignnone size-full wp-image-4995\" srcset=\"https:\/\/blog.criware.com\/wp-content\/uploads\/2024\/02\/03-REACT-Key-Trigger.png 748w, https:\/\/blog.criware.com\/wp-content\/uploads\/2024\/02\/03-REACT-Key-Trigger-300x170.png 300w\" sizes=\"auto, (max-width: 748px) 100vw, 748px\" \/>\n<\/p>\n<p>For instance, if we have a fireplace, we can muffle the sound while some fuel is being poured onto it, and then release a big burst of fire when all the fuel has been poured. Moreover, since there can be a different Auto Modulation AISAC on each track, various layers could come back with different timings, which is not possible in Ducker mode.<\/p>\n<p>Here is how to set REACT to AISAC Mod Trigger:<\/p>\n<ul>\n<li>Create a new REACT object.<\/li>\n<li>Then change the <em>REACT Type<\/em> property to <em>AISAC Mod Trigger<\/em>.<\/li>\n<li>The settings available are different than in Ducker mode.<\/li>\n<li>The <em>Changing<\/em> and <em>Trigger<\/em> <em>Categories <\/em>are still required.<\/li>\n<li>However, instead of <em>Change<\/em> and <em>Return Time<\/em>, you must set the Keys in <em>Change AISAC Mod Key<\/em> and <em>Return AISAC Mod Key<\/em>.\n<ul>\n<li><em>Change AISAC Mod Key<\/em>: this is the AISAC modulation key value that triggers the change.<\/li>\n<li><em>Return AISAC Mod Key<\/em>: this is the AISAC modulation key value that triggers the return to the original state.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>This is all you need for the REACT part. Now you need to create some AISACs:<\/p>\n<ul>\n<li>If the <em>Change<\/em> and <em>Return Keys<\/em> are different, you will need to create two separate AISACs.<\/li>\n<li>Once the AISACs created, change their Control Type to <em>Auto Modulation, One Shot.<\/em><\/li>\n<li>Set the <em>Time<\/em> for the modulation.<\/li>\n<li>Then, change the <em>Trigger Type <\/em>to <em>Key<\/em>, and set the <em>Trigger Key<\/em> that corresponds to the <em>Change AISAC Mod Key <\/em>and<em> Return AISAC Mod Key<\/em> in the REACT object.<\/li>\n<li>In the properties of the Cues linked to the REACT object, you can optionally add a <strong>Sequence End for REACT <\/strong>marker on the Timeline to accurately time when the return key is triggered.<\/li>\n<\/ul>\n<p style=\"text-align:center;\">\n<img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/blog.criware.com\/wp-content\/uploads\/2024\/02\/04-REACT-AISACModTrigger.png\" alt=\"04 REACT AISACModTrigger\" width=\"1613\" height=\"850\" class=\"alignnone size-full wp-image-4996\" srcset=\"https:\/\/blog.criware.com\/wp-content\/uploads\/2024\/02\/04-REACT-AISACModTrigger.png 1613w, https:\/\/blog.criware.com\/wp-content\/uploads\/2024\/02\/04-REACT-AISACModTrigger-300x158.png 300w, https:\/\/blog.criware.com\/wp-content\/uploads\/2024\/02\/04-REACT-AISACModTrigger-768x405.png 768w, https:\/\/blog.criware.com\/wp-content\/uploads\/2024\/02\/04-REACT-AISACModTrigger-1024x540.png 1024w, https:\/\/blog.criware.com\/wp-content\/uploads\/2024\/02\/04-REACT-AISACModTrigger-390x205.png 390w\" sizes=\"auto, (max-width: 1613px) 100vw, 1613px\" \/><\/p>\n<p>Now when you trigger a Cue from the <em>Trigger Category<\/em>, all the Cues\u2019 AISAC in the <em>Changing Category<\/em> that have the same Trigger Keys as the REACT will be activated.<\/p>\n<p>Here is how it sounds in our fireplace example:<\/p>\n<div style=\"max-width: 700px; margin: 0 auto; margin-bottom: 20px; border: 1px solid #aaa;\">\n<div style=\"width: 800px;\" class=\"wp-video\"><video class=\"wp-video-shortcode\" id=\"video-4990-3\" width=\"800\" height=\"423\" preload=\"metadata\" controls=\"controls\"><source type=\"video\/mp4\" src=\"https:\/\/blog.criware.com\/wp-content\/uploads\/2024\/02\/Video_03_REACT_AISACModTrigger.mp4?_=3\" \/><a href=\"https:\/\/blog.criware.com\/wp-content\/uploads\/2024\/02\/Video_03_REACT_AISACModTrigger.mp4\">https:\/\/blog.criware.com\/wp-content\/uploads\/2024\/02\/Video_03_REACT_AISACModTrigger.mp4<\/a><\/video><\/div>\n<\/div>\n<p>REACT provides a simple way to implement dynamic mixing by helping you determine which sounds to prioritize. It also opens the door to new, innovative effects. In the <a href=\"https:\/\/blog.criware.com\/index.php\/2024\/07\/08\/adx-beginners-guide-12-interactive-music-with-aisac-and-selectors\/\">next post<\/a> of this beginner\u2019s guide, we will start diving into interactive music, for which ADX offers many interesting features.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In the last post of this beginner\u2019s guide, we learned how Categories can help us organize and control the parameters<\/p>\n","protected":false},"author":2,"featured_media":5556,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"colormag_page_container_layout":"default_layout","colormag_page_sidebar_layout":"default_layout","footnotes":""},"categories":[5,7],"tags":[],"class_list":["post-4990","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-adx","category-tutorials"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/blog.criware.com\/index.php\/wp-json\/wp\/v2\/posts\/4990","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.criware.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.criware.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.criware.com\/index.php\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.criware.com\/index.php\/wp-json\/wp\/v2\/comments?post=4990"}],"version-history":[{"count":10,"href":"https:\/\/blog.criware.com\/index.php\/wp-json\/wp\/v2\/posts\/4990\/revisions"}],"predecessor-version":[{"id":5566,"href":"https:\/\/blog.criware.com\/index.php\/wp-json\/wp\/v2\/posts\/4990\/revisions\/5566"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.criware.com\/index.php\/wp-json\/wp\/v2\/media\/5556"}],"wp:attachment":[{"href":"https:\/\/blog.criware.com\/index.php\/wp-json\/wp\/v2\/media?parent=4990"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.criware.com\/index.php\/wp-json\/wp\/v2\/categories?post=4990"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.criware.com\/index.php\/wp-json\/wp\/v2\/tags?post=4990"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}