{"id":2721,"date":"2020-01-20T10:37:36","date_gmt":"2020-01-20T01:37:36","guid":{"rendered":"https:\/\/blog.criware.com\/?p=2721"},"modified":"2020-01-20T10:37:36","modified_gmt":"2020-01-20T01:37:36","slug":"tips-for-using-sequence-marker-auto-generation-in-atom-craft","status":"publish","type":"post","link":"https:\/\/blog.criware.com\/index.php\/2020\/01\/20\/tips-for-using-sequence-marker-auto-generation-in-atom-craft\/","title":{"rendered":"Tips for using Sequence Marker Auto Generation in Atom Craft"},"content":{"rendered":"<h2 style=\"font-size: 150%; font-weight: bold; margin-top: 40px;\">Introduction<\/h2>\n<p>In previous blogs, we have looked at embedding markers within Materials to allow looping of our audio. In this month\u2019s blog, we will look at other ways to make use of markers in Atom Craft. We will also look at embedding them within our wave files and retrieving them using Atom Craft\u2019s Sequence Marker Generator.<\/p>\n<p><!-- download start --><\/p>\n<div style=\"max-width: 800px; margin: 0 auto; margin-bottom: 20px; text-align:center;\">\n<a style=\"display: inline-block; border: 1px solid #ccc; padding: 20px;\" href=\"https:\/\/blog.criware.com\/wp-content\/uploads\/2020\/01\/2020_01_SequenceMarkerAutoGeneration.zip\"><br \/>\n<img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-1813\" src=\"https:\/\/blog.criware.com\/wp-content\/uploads\/2018\/06\/zip.png\" alt=\"zip\" width=\"80\" height=\"78\"><br \/>\n2020_01_SequenceMarkerAutoGeneration.zip<\/a>\n<\/div>\n<p><!-- download end --><\/p>\n<p><em>This project was created using CRIWARE SDK for Unity V3.00.01 and Unity V2019.2.10f1 <\/em><\/p>\n<h2 style=\"font-size: 150%; font-weight: bold; margin-top: 40px;\">Atom Craft Setup<\/h2>\n<p>Setting up Atom Craft to automatically generate markers is straightforward. Simply navigate to View -&gt; Sequence Marker Auto Generation Setting for Waveform Registration and tick the box at the top of the window. This window also details the naming conventions for creating markers, which we can refer to when embedding markers in our DAW. We can then click OK when we are done.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" style=\"margin: 0 auto; display: block;\" src=\"https:\/\/blog.criware.com\/wp-content\/uploads\/2020\/01\/24-1.png\" alt=\"24-1\" width=\"813\" height=\"700\" class=\"alignnone size-full wp-image-2730\" srcset=\"https:\/\/blog.criware.com\/wp-content\/uploads\/2020\/01\/24-1.png 813w, https:\/\/blog.criware.com\/wp-content\/uploads\/2020\/01\/24-1-300x258.png 300w, https:\/\/blog.criware.com\/wp-content\/uploads\/2020\/01\/24-1-768x661.png 768w\" sizes=\"auto, (max-width: 813px) 100vw, 813px\" \/><\/p>\n<p>Also, Atom Craft interprets markers for looping purposes by default, so make sure to set Override Loop Information Flag in the Inspector to \u201cTrue\u201d on any Materials where you don\u2019t want this behaviour.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" style=\"margin: 0 auto; display: block;\" src=\"https:\/\/blog.criware.com\/wp-content\/uploads\/2020\/01\/24-2.png\" alt=\"24-2\" width=\"426\" height=\"438\" class=\"alignnone size-full wp-image-2731\" srcset=\"https:\/\/blog.criware.com\/wp-content\/uploads\/2020\/01\/24-2.png 426w, https:\/\/blog.criware.com\/wp-content\/uploads\/2020\/01\/24-2-292x300.png 292w\" sizes=\"auto, (max-width: 426px) 100vw, 426px\" \/><\/p>\n<h2 style=\"font-size: 150%; font-weight: bold; margin-top: 40px;\">Markers in Reaper<\/h2>\n<p>If using Reaper, all we need to do to create markers is line up our playhead cursor and press M. Pressing Shift+M will automatically bring up the naming dialogue when creating a new marker, or we can double-click on any existing markers to rename them. We can then use the Sequence Marker Generator window in Atom Craft, or the documentation, as a reference for naming.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" style=\"margin: 0 auto; display: block;\" src=\"https:\/\/blog.criware.com\/wp-content\/uploads\/2020\/01\/24-3-1.png\" alt=\"24-3\" width=\"506\" height=\"602\" class=\"alignnone size-full wp-image-2743\" srcset=\"https:\/\/blog.criware.com\/wp-content\/uploads\/2020\/01\/24-3-1.png 506w, https:\/\/blog.criware.com\/wp-content\/uploads\/2020\/01\/24-3-1-252x300.png 252w\" sizes=\"auto, (max-width: 506px) 100vw, 506px\" \/><\/p>\n<p>Then we can drag-select the items we want to render, open the Render dialogue, and ensure that we select \u201cMarkers only\u201d in the dropdown near the bottom of the window.<\/p>\n<h2 style=\"font-size: 150%; font-weight: bold; margin-top: 40px;\">Random Start Offset<\/h2>\n<p><img loading=\"lazy\" decoding=\"async\" style=\"margin: 0 auto; display: block;\" src=\"https:\/\/blog.criware.com\/wp-content\/uploads\/2020\/01\/24-4.png\" alt=\"24-4\" width=\"893\" height=\"263\" class=\"alignnone size-full wp-image-2733\" srcset=\"https:\/\/blog.criware.com\/wp-content\/uploads\/2020\/01\/24-4.png 893w, https:\/\/blog.criware.com\/wp-content\/uploads\/2020\/01\/24-4-300x88.png 300w, https:\/\/blog.criware.com\/wp-content\/uploads\/2020\/01\/24-4-768x226.png 768w\" sizes=\"auto, (max-width: 893px) 100vw, 893px\" \/><\/p>\n<p>\nIf we use several Sequence Start Markers in our Cues, ADX2 will randomly pick playback from one of these starting points. We can use this feature to randomise our playback slightly, without having to render multiple versions of the same thing.<\/p>\n<p>\nWe could use the Randomize Start Offset feature, but this might accidentally cut mid-way through a transient. So, to have better control of our playback, it makes more sense to use markers. It also helps that these can be tweaked right from within our DAW.<\/p>\n<p>\nThe example below shows a burst-fire shot with a Sequence Start Marker before each transient.\n<\/p>\n<div style=\"max-width: 800px; margin: 0 auto; margin-bottom: 20px;\">\n<div style=\"width: 800px;\" class=\"wp-video\"><video class=\"wp-video-shortcode\" id=\"video-2721-1\" width=\"800\" height=\"450\" preload=\"metadata\" controls=\"controls\"><source type=\"video\/mp4\" src=\"https:\/\/blog.criware.com\/wp-content\/uploads\/2020\/01\/2001_SequenceMarker-StartOffset.mp4.mp4?_=1\" \/><a href=\"https:\/\/blog.criware.com\/wp-content\/uploads\/2020\/01\/2001_SequenceMarker-StartOffset.mp4.mp4\">https:\/\/blog.criware.com\/wp-content\/uploads\/2020\/01\/2001_SequenceMarker-StartOffset.mp4.mp4<\/a><\/video><\/div>\n<\/div>\n<h2 style=\"font-size: 150%; font-weight: bold; margin-top: 40px;\">Granular Playback<\/h2>\n<p>Expanding on the previous topic, we can also create a granular playback engine by embedding multiple Sequence Start markers within our audio, and controlling playback using a short envelope.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" style=\"margin: 0 auto; display: block;\" src=\"https:\/\/blog.criware.com\/wp-content\/uploads\/2020\/01\/24-5.png\" alt=\"24-5\" width=\"936\" height=\"293\" class=\"alignnone size-full wp-image-2734\" srcset=\"https:\/\/blog.criware.com\/wp-content\/uploads\/2020\/01\/24-5.png 936w, https:\/\/blog.criware.com\/wp-content\/uploads\/2020\/01\/24-5-300x94.png 300w, https:\/\/blog.criware.com\/wp-content\/uploads\/2020\/01\/24-5-768x240.png 768w\" sizes=\"auto, (max-width: 936px) 100vw, 936px\" \/><\/p>\n<p>The granular aspect of this topic was covered in greater detail in one of our previous blogs, which you can check out below:<\/p>\n<div style=\"margin: 0 auto; display: block; text-align:center;\">\n<blockquote class=\"wp-embedded-content\" data-secret=\"PPnpSDA9Y2\"><p><a href=\"https:\/\/blog.criware.com\/index.php\/2018\/12\/17\/granular-synthesis-in-adx-2\/\">Granular Synthesis in ADX 2<\/a><\/p><\/blockquote>\n<p><iframe loading=\"lazy\" class=\"wp-embedded-content\" sandbox=\"allow-scripts\" security=\"restricted\" style=\"position: absolute; clip: rect(1px, 1px, 1px, 1px);\" src=\"https:\/\/blog.criware.com\/index.php\/2018\/12\/17\/granular-synthesis-in-adx-2\/embed\/#?secret=PPnpSDA9Y2\" data-secret=\"PPnpSDA9Y2\" width=\"600\" height=\"338\" title=\"Embedded WordPress Post\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\"><\/iframe>\n<\/div>\n<p>The example below showcases a granular rock and gravel sound.<\/p>\n<div style=\"max-width: 800px; margin: 0 auto; margin-bottom: 20px;\">\n<div style=\"width: 800px;\" class=\"wp-video\"><video class=\"wp-video-shortcode\" id=\"video-2721-2\" width=\"800\" height=\"450\" preload=\"metadata\" controls=\"controls\"><source type=\"video\/mp4\" src=\"https:\/\/blog.criware.com\/wp-content\/uploads\/2020\/01\/2001_SequenceMarker-Granular.mp4.mp4?_=2\" \/><a href=\"https:\/\/blog.criware.com\/wp-content\/uploads\/2020\/01\/2001_SequenceMarker-Granular.mp4.mp4\">https:\/\/blog.criware.com\/wp-content\/uploads\/2020\/01\/2001_SequenceMarker-Granular.mp4.mp4<\/a><\/video><\/div>\n<\/div>\n<h2 style=\"font-size: 150%; font-weight: bold; margin-top: 40px;\">Callbacks<\/h2>\n<p>\nAnother fantastic feature in ADX2 is the ability to run Callbacks from within Cues. This feature can be used to trigger things like gameplay events or animations.<\/p>\n<p>\nIn the prototype that I have put together below, I used a sample which has sets of firework explosions coupled together. I used the example from the Sequence Marker Generator window in Atom Craft, to come up with \u201cCALLBACK NAME=callback1 ID=1 TAG=BF\u201d, with the numerical values were incremented at each marker. Since the explosions were coupled, I denoted \u201cBF\u201d for \u201cBig Firework\u201d and \u201cSF\u201d for \u201cSmall Firework\u201d. This decision was made so that it would be easier for me to read in my DAW, but feel free to be more descriptive in your Tag naming.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" style=\"margin: 0 auto; display: block;\" src=\"https:\/\/blog.criware.com\/wp-content\/uploads\/2020\/01\/24-6.png\" alt=\"24-6\" width=\"1399\" height=\"363\" class=\"alignnone size-full wp-image-2735\" srcset=\"https:\/\/blog.criware.com\/wp-content\/uploads\/2020\/01\/24-6.png 1399w, https:\/\/blog.criware.com\/wp-content\/uploads\/2020\/01\/24-6-300x78.png 300w, https:\/\/blog.criware.com\/wp-content\/uploads\/2020\/01\/24-6-768x199.png 768w, https:\/\/blog.criware.com\/wp-content\/uploads\/2020\/01\/24-6-1024x266.png 1024w\" sizes=\"auto, (max-width: 1399px) 100vw, 1399px\" \/><\/p>\n<p>The <em>SetEventCallback<\/em> function needed to register Callbacks can be accessed via <em>CriAtomExSequencer<\/em>. However, this callback returns all related marker information as one line of characters. So, to save some time, we can save the following script to our Unity project, and access it by typing using <em>CriWareExtensions<\/em>; at the top of <a href=\"https:\/\/gist.github.com\/TakaakiIchijo\/bde623ce973c64b5ed11da3160f3c370\" target=\"_blank\">our code<\/a>.<\/p>\n<p>Once the extension is in place, the rest is easy to implement. In our start method, we set our event callback, and then check if the retrieved value for our Marker\u2019s Tag is \u201cBF\u201d or \u201cSF\u201d. These callbacks then trigger corresponding particle effects systems.<\/p>\n<div style=\"max-width: 800px; margin: 0 auto; margin-bottom: 20px;\">\n<div style=\"width: 800px;\" class=\"wp-video\"><video class=\"wp-video-shortcode\" id=\"video-2721-3\" width=\"800\" height=\"450\" preload=\"metadata\" controls=\"controls\"><source type=\"video\/mp4\" src=\"https:\/\/blog.criware.com\/wp-content\/uploads\/2020\/01\/2001_SequenceMarker-StartOffset.mp4.mp4?_=3\" \/><a href=\"https:\/\/blog.criware.com\/wp-content\/uploads\/2020\/01\/2001_SequenceMarker-StartOffset.mp4.mp4\">https:\/\/blog.criware.com\/wp-content\/uploads\/2020\/01\/2001_SequenceMarker-StartOffset.mp4.mp4<\/a><\/video><\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Introduction In previous blogs, we have looked at embedding markers within Materials to allow looping of our audio. In this<\/p>\n","protected":false},"author":2,"featured_media":2722,"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-2721","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\/2721","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=2721"}],"version-history":[{"count":13,"href":"https:\/\/blog.criware.com\/index.php\/wp-json\/wp\/v2\/posts\/2721\/revisions"}],"predecessor-version":[{"id":2748,"href":"https:\/\/blog.criware.com\/index.php\/wp-json\/wp\/v2\/posts\/2721\/revisions\/2748"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.criware.com\/index.php\/wp-json\/wp\/v2\/media\/2722"}],"wp:attachment":[{"href":"https:\/\/blog.criware.com\/index.php\/wp-json\/wp\/v2\/media?parent=2721"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.criware.com\/index.php\/wp-json\/wp\/v2\/categories?post=2721"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.criware.com\/index.php\/wp-json\/wp\/v2\/tags?post=2721"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}