{"id":1825,"date":"2018-07-06T10:01:08","date_gmt":"2018-07-06T01:01:08","guid":{"rendered":"http:\/\/blog.criware.com\/?p=1825"},"modified":"2018-07-06T10:01:08","modified_gmt":"2018-07-06T01:01:08","slug":"atomcraft-how-to-2","status":"publish","type":"post","link":"https:\/\/blog.criware.com\/index.php\/2018\/07\/06\/atomcraft-how-to-2\/","title":{"rendered":"AtomCraft \u2013 How-to? #2"},"content":{"rendered":"<p>This is the second installment of this series where we look at the implementation of some of the most common game audio tasks in AtomCraft, the authoring tool of <a href=\"http:\/\/www.criware.com\/en\/products\/adx2.html\">ADX2<\/a> (check <a href=\"http:\/\/blog.criware.com\/index.php\/2018\/06\/14\/atomcraft-how-to-1\/\">here<\/a> for the first post).<\/p>\n<p>These posts are not meant to be exhaustive references but rather a collection of pointers to put you on the right path. When available, we will link to other posts with more detailed information.<\/p>\n<p>In addition, you can download a demo project that contains an implementation of all the examples. This will allow you to get started in no time. The techniques described here will work both with the native <a href=\"http:\/\/www.criware.com\/en\/\">CRIWARE SDK<\/a> and the <a href=\"https:\/\/unityplugin.crimiddleware.com\/\">ADX2 plugin for Unity<\/a>.<\/p>\n<p><a href=\"http:\/\/blog.criware.com\/wp-content\/uploads\/2018\/07\/HowTo.zip\"><br \/>\n<img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-1813\" src=\"http:\/\/blog.criware.com\/wp-content\/uploads\/2018\/06\/zip.png\" alt=\"zip\" width=\"80\" height=\"78\" \/><br \/>\n<\/a><\/p>\n<p style=\"font-weight: bold;\">Download the demo project (requires AtomCraft 2.35)<\/p>\n<p>In this post, let\u2019s see how to\u2026<\/p>\n<p>&nbsp;<\/p>\n<h5>Change sound parameters from the game<\/h5>\n<p>In the previous post, we have seen how to switch the sounds to be played based on the context of the game (for example when selecting the correct footstep sound based on the surface material). Sometime we may simply want to update one or more parameters of the sound based on what is happening in the game. In ADX2, such real-time parameter control is achieved through the use of AISACs.<\/p>\n<ul>\n<li style=\"list-style: decimal; margin-bottom: 15px;\"><strong>Select a Cue or a Track<\/strong>, click on the \u201cNo Automation\u201d label and <strong>specify an AISAC<\/strong>.<\/li>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/blog.criware.com\/wp-content\/uploads\/2018\/07\/AISAC1.png\" alt=\"AISAC1\" width=\"444\" height=\"400\" class=\"alignnone size-full wp-image-1833\" srcset=\"https:\/\/blog.criware.com\/wp-content\/uploads\/2018\/07\/AISAC1.png 444w, https:\/\/blog.criware.com\/wp-content\/uploads\/2018\/07\/AISAC1-300x270.png 300w\" sizes=\"auto, (max-width: 444px) 100vw, 444px\" \/><\/p>\n<p>&nbsp;<\/p>\n<li style=\"list-style: decimal; margin-bottom: 15px;\"><strong>Select the AISAC tab of the Cue or the Track <\/strong>and press on the + button to <strong>configure the link<\/strong> between the AISAC control (here AISAC 0) and the sound parameter (here the volume of the Track)<\/li>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/blog.criware.com\/wp-content\/uploads\/2018\/07\/AISAC2b.png\" alt=\"AISAC2b\" width=\"1313\" height=\"346\" class=\"alignnone size-full wp-image-1834\" srcset=\"https:\/\/blog.criware.com\/wp-content\/uploads\/2018\/07\/AISAC2b.png 1313w, https:\/\/blog.criware.com\/wp-content\/uploads\/2018\/07\/AISAC2b-300x79.png 300w, https:\/\/blog.criware.com\/wp-content\/uploads\/2018\/07\/AISAC2b-768x202.png 768w, https:\/\/blog.criware.com\/wp-content\/uploads\/2018\/07\/AISAC2b-1024x270.png 1024w\" sizes=\"auto, (max-width: 1313px) 100vw, 1313px\" \/><\/p>\n<p>&nbsp;<\/p>\n<li style=\"list-style: decimal; margin-bottom: 15px;\"><strong>Edit the mapping<\/strong> from the AISAC input value (between 0 and 1) and the parameter value by drawing the curve or entering values on the keyboard (in the right panel)<\/li>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/blog.criware.com\/wp-content\/uploads\/2018\/07\/AISAC4.png\" alt=\"AISAC4\" width=\"1163\" height=\"349\" class=\"alignnone size-full wp-image-1835\" srcset=\"https:\/\/blog.criware.com\/wp-content\/uploads\/2018\/07\/AISAC4.png 1163w, https:\/\/blog.criware.com\/wp-content\/uploads\/2018\/07\/AISAC4-300x90.png 300w, https:\/\/blog.criware.com\/wp-content\/uploads\/2018\/07\/AISAC4-768x230.png 768w, https:\/\/blog.criware.com\/wp-content\/uploads\/2018\/07\/AISAC4-1024x307.png 1024w\" sizes=\"auto, (max-width: 1163px) 100vw, 1163px\" \/>\n<\/ul>\n<p>The AISAC is not limited to a single parameter of a single Track. It can control different parameters on many Tracks.<\/p>\n<p>Please check the River Cue of the sample project. We added 3 Tracks to it, each one with a looping sound (small stream, river and waterfall). We assigned the same AISAC to the 3 Tracks and linked it to their volumes. This gives us a way to mix the three water sound sources: by moving the AISAC cursor from the left to the right, you can get a more and more impressive sound.<\/p>\n<ul>\n<li style=\"list-style: none;\">\n<img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/blog.criware.com\/wp-content\/uploads\/2018\/07\/AISAC5.png\" alt=\"AISAC5\" width=\"1147\" height=\"727\" class=\"alignnone size-full wp-image-1836\" srcset=\"https:\/\/blog.criware.com\/wp-content\/uploads\/2018\/07\/AISAC5.png 1147w, https:\/\/blog.criware.com\/wp-content\/uploads\/2018\/07\/AISAC5-300x190.png 300w, https:\/\/blog.criware.com\/wp-content\/uploads\/2018\/07\/AISAC5-768x487.png 768w, https:\/\/blog.criware.com\/wp-content\/uploads\/2018\/07\/AISAC5-1024x649.png 1024w\" sizes=\"auto, (max-width: 1147px) 100vw, 1147px\" \/>\n<\/li>\n<\/ul>\n<p>To learn more about AISAC, you can check this <a href=\"https:\/\/www.youtube.com\/watch?v=K6GC1_Yl7w8\">video tutorial<\/a>.<\/p>\n<p>For other ways to create a rich, evolving ambience sound (including with AISAC), please check this <a href=\"http:\/\/blog.criware.com\/index.php\/2017\/03\/16\/creating-ambiences-in-atomcraft\/\">blog post<\/a>.<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<h5>Compose interactive music<\/h5>\n<p>Games often require that the music adapts itself to what is happening. There are several ways to implement interactive music in ADX2 but one of the most useful is to add block to your Cue.<\/p>\n<ul>\n<li style=\"list-style: decimal; margin-bottom: 15px;\">Create a Cue and <strong>add a Block<\/strong> from the context menu. It is now a Block Cue and every Track you will add will follow the block structure.<\/li>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/blog.criware.com\/wp-content\/uploads\/2018\/07\/BlockMusic1.png\" alt=\"BlockMusic1\" width=\"663\" height=\"291\" class=\"alignnone size-full wp-image-1838\" srcset=\"https:\/\/blog.criware.com\/wp-content\/uploads\/2018\/07\/BlockMusic1.png 663w, https:\/\/blog.criware.com\/wp-content\/uploads\/2018\/07\/BlockMusic1-300x132.png 300w\" sizes=\"auto, (max-width: 663px) 100vw, 663px\" \/><br \/>\n&nbsp;<\/p>\n<li style=\"list-style: decimal; margin-bottom: 15px;\">Make sure the <strong>timeline\u2019s scale follows your song\u2019s tempo and signature<\/strong> to make it easier to edit and visualize your Blocks.<\/li>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/blog.criware.com\/wp-content\/uploads\/2018\/07\/BlockMusic2.png\" alt=\"BlockMusic2\" width=\"647\" height=\"391\" class=\"alignnone size-full wp-image-1839\" srcset=\"https:\/\/blog.criware.com\/wp-content\/uploads\/2018\/07\/BlockMusic2.png 647w, https:\/\/blog.criware.com\/wp-content\/uploads\/2018\/07\/BlockMusic2-300x181.png 300w\" sizes=\"auto, (max-width: 647px) 100vw, 647px\" \/><br \/>\n&nbsp;<\/p>\n<li style=\"list-style: decimal; margin-bottom: 15px;\"><strong>Create Blocks for each segments<\/strong> of your music and add waveforms onto the Tracks.<\/li>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/blog.criware.com\/wp-content\/uploads\/2018\/07\/BlockMusic3.png\" alt=\"BlockMusic3\" width=\"1147\" height=\"494\" class=\"alignnone size-full wp-image-1840\" srcset=\"https:\/\/blog.criware.com\/wp-content\/uploads\/2018\/07\/BlockMusic3.png 1147w, https:\/\/blog.criware.com\/wp-content\/uploads\/2018\/07\/BlockMusic3-300x129.png 300w, https:\/\/blog.criware.com\/wp-content\/uploads\/2018\/07\/BlockMusic3-768x331.png 768w, https:\/\/blog.criware.com\/wp-content\/uploads\/2018\/07\/BlockMusic3-1024x441.png 1024w\" sizes=\"auto, (max-width: 1147px) 100vw, 1147px\" \/><\/p>\n<p>&nbsp;<\/p>\n<li style=\"list-style: decimal; margin-bottom: 15px;\">In the right panel, set the<strong> looping and transitioning options<\/strong> for each block.<\/li>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/blog.criware.com\/wp-content\/uploads\/2018\/07\/BlockMusic4.png\" alt=\"BlockMusic4\" width=\"1074\" height=\"459\" class=\"alignnone size-full wp-image-1841\" srcset=\"https:\/\/blog.criware.com\/wp-content\/uploads\/2018\/07\/BlockMusic4.png 1074w, https:\/\/blog.criware.com\/wp-content\/uploads\/2018\/07\/BlockMusic4-300x128.png 300w, https:\/\/blog.criware.com\/wp-content\/uploads\/2018\/07\/BlockMusic4-768x328.png 768w, https:\/\/blog.criware.com\/wp-content\/uploads\/2018\/07\/BlockMusic4-1024x438.png 1024w\" sizes=\"auto, (max-width: 1074px) 100vw, 1074px\" \/><\/p>\n<\/ul>\n<p>In the sample project, try the BlockMusic Cue. Jump between the different sections of the composition by clicking on the block headers.<\/p>\n<p>To learn different ways to implement interactive music in your game, you can also check this <a href=\"http:\/\/blog.criware.com\/index.php\/2017\/04\/11\/composing-adaptive-music-in-atomcraft\/\">blog post<\/a>.<\/p>\n<p>&nbsp;<br \/>\n&nbsp;<\/p>\n<h5>Play a sound effect in sync with the music<\/h5>\n<p>Even if you are not working on a rhythm game, there are many cases where it is more pleasing to have a sound effect playing in synchronization with the music. Fortunately, this is very easy to achieve in AtomCraft.<\/p>\n<p>&nbsp;<\/p>\n<ul>\n<li style=\"list-style: decimal; margin-bottom: 15px;\">Add a <strong>BeatSync<\/strong> parameter to your music Cue.<\/li>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/blog.criware.com\/wp-content\/uploads\/2018\/07\/BeatSync1.png\" alt=\"BeatSync1\" width=\"714\" height=\"278\" class=\"alignnone size-full wp-image-1842\" srcset=\"https:\/\/blog.criware.com\/wp-content\/uploads\/2018\/07\/BeatSync1.png 714w, https:\/\/blog.criware.com\/wp-content\/uploads\/2018\/07\/BeatSync1-300x117.png 300w\" sizes=\"auto, (max-width: 714px) 100vw, 714px\" \/><\/p>\n<p>&nbsp;<\/p>\n<li style=\"list-style: decimal; margin-bottom: 15px;\">Click on the Sync tab of your Cue and set the <strong>tempo and the beats<\/strong> on which the sound effects can be played.<\/li>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/blog.criware.com\/wp-content\/uploads\/2018\/07\/BeatSync2.png\" alt=\"BeatSync2\" width=\"909\" height=\"338\" class=\"alignnone size-full wp-image-1843\" srcset=\"https:\/\/blog.criware.com\/wp-content\/uploads\/2018\/07\/BeatSync2.png 909w, https:\/\/blog.criware.com\/wp-content\/uploads\/2018\/07\/BeatSync2-300x112.png 300w, https:\/\/blog.criware.com\/wp-content\/uploads\/2018\/07\/BeatSync2-768x286.png 768w\" sizes=\"auto, (max-width: 909px) 100vw, 909px\" \/><\/p>\n<p>&nbsp;<\/p>\n<li style=\"list-style: decimal; margin-bottom: 15px;\">Create your sound effect Cue normally.<\/li>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/blog.criware.com\/wp-content\/uploads\/2018\/07\/BeatSync3.png\" alt=\"BeatSync3\" width=\"759\" height=\"235\" class=\"alignnone size-full wp-image-1844\" srcset=\"https:\/\/blog.criware.com\/wp-content\/uploads\/2018\/07\/BeatSync3.png 759w, https:\/\/blog.criware.com\/wp-content\/uploads\/2018\/07\/BeatSync3-300x93.png 300w\" sizes=\"auto, (max-width: 759px) 100vw, 759px\" \/><br \/>\n&nbsp;<\/p>\n<li style=\"list-style: decimal; margin-bottom: 15px;\">Create a triggering Cue with an <strong>Action track<\/strong> that targets your sound effect Cue and Add a <strong>Start action<\/strong> on the Action track.<\/li>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/blog.criware.com\/wp-content\/uploads\/2018\/07\/BeatSync4.png\" alt=\"BeatSync4\" width=\"612\" height=\"366\" class=\"alignnone size-full wp-image-1845\" srcset=\"https:\/\/blog.criware.com\/wp-content\/uploads\/2018\/07\/BeatSync4.png 612w, https:\/\/blog.criware.com\/wp-content\/uploads\/2018\/07\/BeatSync4-300x179.png 300w\" sizes=\"auto, (max-width: 612px) 100vw, 612px\" \/><br \/>\n&nbsp;<\/p>\n<li style=\"list-style: decimal; margin-bottom: 15px;\">To test the synchronization, trigger the music and action Cues in the Session window.<\/li>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/blog.criware.com\/wp-content\/uploads\/2018\/07\/BeatSync5.png\" alt=\"BeatSync5\" width=\"662\" height=\"537\" class=\"alignnone size-full wp-image-1846\" srcset=\"https:\/\/blog.criware.com\/wp-content\/uploads\/2018\/07\/BeatSync5.png 662w, https:\/\/blog.criware.com\/wp-content\/uploads\/2018\/07\/BeatSync5-300x243.png 300w\" sizes=\"auto, (max-width: 662px) 100vw, 662px\" \/>\n<\/ul>\n<p>Check the BeatSyncMusic, BeatSyncSFX and BeatSyncTrigger Cues in the sample project. When the music is playing and you trigger the sound effect, it will only play once the first beat of the next measure is reached.<\/p>\n<p>It is possible to perform a lot of other cool tricks with the Actions, like changing the value of a specific Cue parameter etc. To learn more about the Actions in AtomCraft, please check this <a href=\"http:\/\/blog.criware.com\/index.php\/2017\/08\/04\/time-for-action\/\">blog post<\/a>.<\/p>\n<p>&nbsp;<\/p>\n<p>That\u2019s all for this time! Please do not hesitate to <a href=\"mailto:global-sales@criware.com\">contact us<\/a> if you think some specific tasks or techniques should be part of this series.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>This is the second installment of this series where we look at the implementation of some of the most common<\/p>\n","protected":false},"author":2,"featured_media":1828,"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-1825","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\/1825","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=1825"}],"version-history":[{"count":16,"href":"https:\/\/blog.criware.com\/index.php\/wp-json\/wp\/v2\/posts\/1825\/revisions"}],"predecessor-version":[{"id":1861,"href":"https:\/\/blog.criware.com\/index.php\/wp-json\/wp\/v2\/posts\/1825\/revisions\/1861"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.criware.com\/index.php\/wp-json\/wp\/v2\/media\/1828"}],"wp:attachment":[{"href":"https:\/\/blog.criware.com\/index.php\/wp-json\/wp\/v2\/media?parent=1825"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.criware.com\/index.php\/wp-json\/wp\/v2\/categories?post=1825"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.criware.com\/index.php\/wp-json\/wp\/v2\/tags?post=1825"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}