{"id":1702,"date":"2019-06-27T00:58:30","date_gmt":"2019-06-27T00:58:30","guid":{"rendered":"http:\/\/procedural-audio.com\/blog\/?p=1702"},"modified":"2019-06-27T00:58:30","modified_gmt":"2019-06-27T00:58:30","slug":"creatures-controls","status":"publish","type":"post","link":"http:\/\/procedural-audio.com\/blog\/2019\/06\/27\/creatures-controls\/","title":{"rendered":"Creatures &#038; Controls"},"content":{"rendered":"<h2 style=\"border-left:4px solid; padding-left:10px; margin-top:0px;\" >Introduction<\/h2>\n<p>GameSynth\u2019s Modular model offers a great visual patching system for creating sound procedurally. Part of this package includes signal generators such as the <strong>Creature<\/strong> and <strong>Motor<\/strong> modules, which are a great starting point for more complex ideas. Since these modules are blank canvases, we need to exert some control to get the desired effect. Fortunately, GameSynth also gives you a few different ways to do this! Moreover, not only can you use the purpose-built <strong>Control Signal<\/strong> modules, but you can also use audio signals as control signals. This month\u2019s blog will show off a few of these control methods and how you can visualize them.<\/p>\n<h2 style=\"border-left:4px solid; padding-left:10px;\">Setup<\/h2>\n<p>To better understand what the modules are doing; it can be helpful to visualise our signals. We can do this using the <strong>Analyzer<\/strong>, which appears in the bottom right of the main window once we activate it via the icon of the three descending bars on the top left. We can then drag any signals into the left and right inlets at the top of the Analyzer, and further change between waveform and spectral views by clicking on the display. A module must be part of a patch which leads to an <strong>Output<\/strong>, or else it won\u2019t send any signal to the Analyzer. This omission is an optimization feature of GameSynth which halts processing any module which is not functionally relevant to the patch.<\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-full wp-image-1705\" src=\"http:\/\/procedural-audio.com\/blog\/wp-content\/uploads\/2019\/06\/a.png\" alt=\"a\" width=\"901\" height=\"200\" srcset=\"http:\/\/procedural-audio.com\/blog\/wp-content\/uploads\/2019\/06\/a.png 901w, http:\/\/procedural-audio.com\/blog\/wp-content\/uploads\/2019\/06\/a-150x33.png 150w, http:\/\/procedural-audio.com\/blog\/wp-content\/uploads\/2019\/06\/a-300x67.png 300w, http:\/\/procedural-audio.com\/blog\/wp-content\/uploads\/2019\/06\/a-768x170.png 768w\" sizes=\"(max-width: 901px) 100vw, 901px\" \/><\/p>\n<p>Of course, we also need to hear what we\u2019re dealing with, and the <strong>Creature<\/strong> module offers us a great way to facilitate this. I have routed the signal through a <strong>Saturator<\/strong> to taste, but you can use whatever signal processing sounds best to you. I have also used a <strong>Biquad Filter <\/strong>to remove any unwanted low-frequency rumble.<\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-full wp-image-1706\" src=\"http:\/\/procedural-audio.com\/blog\/wp-content\/uploads\/2019\/06\/b.png\" alt=\"b\" width=\"900\" height=\"308\" srcset=\"http:\/\/procedural-audio.com\/blog\/wp-content\/uploads\/2019\/06\/b.png 900w, http:\/\/procedural-audio.com\/blog\/wp-content\/uploads\/2019\/06\/b-150x51.png 150w, http:\/\/procedural-audio.com\/blog\/wp-content\/uploads\/2019\/06\/b-300x103.png 300w, http:\/\/procedural-audio.com\/blog\/wp-content\/uploads\/2019\/06\/b-768x263.png 768w\" sizes=\"(max-width: 900px) 100vw, 900px\" \/><\/p>\n<h2 style=\"border-left:4px solid; padding-left:10px;\">Envelope<\/h2>\n<p>The simplest way to control an audio signal is with an <strong>Envelope<\/strong>. Envelopes are functionally the same as <strong>Automation Curves<\/strong>, and so I won\u2019t cover the latter in any extra detail. If we double-click on the Envelope module, we have access to a window that allows us to custom-define points, or we can right-click on the display to get a list of pre-defined shapes.<\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-full wp-image-1707\" src=\"http:\/\/procedural-audio.com\/blog\/wp-content\/uploads\/2019\/06\/c.png\" alt=\"c\" width=\"900\" height=\"397\" srcset=\"http:\/\/procedural-audio.com\/blog\/wp-content\/uploads\/2019\/06\/c.png 900w, http:\/\/procedural-audio.com\/blog\/wp-content\/uploads\/2019\/06\/c-150x66.png 150w, http:\/\/procedural-audio.com\/blog\/wp-content\/uploads\/2019\/06\/c-300x132.png 300w, http:\/\/procedural-audio.com\/blog\/wp-content\/uploads\/2019\/06\/c-768x339.png 768w\" sizes=\"(max-width: 900px) 100vw, 900px\" \/><\/p>\n<p><audio style=\"display: block; margin: 20px auto;\" controls=\"\" src=\"http:\/\/procedural-audio.com\/blog\/wp-content\/uploads\/2019\/06\/envelope-a.wav\"><\/audio><\/p>\n<p>When we play the sound, we can see that the envelope is identical to the waveform displayed on the Analyzer. To understand how the <strong>Variation <\/strong>parameter changes this shape, we can dial in 10% to get a small amount of randomization.<\/p>\n<p><img decoding=\"async\" loading=\"lazy\" src=\"http:\/\/procedural-audio.com\/blog\/wp-content\/uploads\/2019\/06\/d.png\" alt=\"d\" width=\"900\" height=\"216\" class=\"alignnone size-full wp-image-1727\" srcset=\"http:\/\/procedural-audio.com\/blog\/wp-content\/uploads\/2019\/06\/d.png 900w, http:\/\/procedural-audio.com\/blog\/wp-content\/uploads\/2019\/06\/d-150x36.png 150w, http:\/\/procedural-audio.com\/blog\/wp-content\/uploads\/2019\/06\/d-300x72.png 300w, http:\/\/procedural-audio.com\/blog\/wp-content\/uploads\/2019\/06\/d-768x184.png 768w\" sizes=\"(max-width: 900px) 100vw, 900px\" \/><\/p>\n<p><audio style=\"display: block; margin: 20px auto;\" controls=\"\" src=\"http:\/\/procedural-audio.com\/blog\/wp-content\/uploads\/2019\/06\/envelope-b.wav\"><\/audio><\/p>\n<p>As we can see, Variation (in this case) represents a percentage of deviation from each point and not just macro amplitude scaling. Being able to visualize control signals helps in making these sorts of observations easier.<\/p>\n<h2 style=\"border-left:4px solid; padding-left:10px;\">Curve<\/h2>\n<p><strong>Curves<\/strong> are used to extract envelopes from pre-existing audio, which allows us to create natural sounding envelopes easily. To do this, we can drop our wave file directly onto the Curve module, and then click the display to access settings where we change the <strong>Curve Type <\/strong>to <strong>Amplitude <\/strong>(you can also extract <strong>Pitch<\/strong> and <strong>Noise <\/strong>envelopes!). I am using a short sample of a pony whinnying as my source.<\/p>\n<p><audio style=\"display: block; margin: 20px auto;\" controls=\"\" src=\"http:\/\/procedural-audio.com\/blog\/wp-content\/uploads\/2019\/06\/ponywhinny.wav\"><\/audio><\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-full wp-image-1709\" src=\"http:\/\/procedural-audio.com\/blog\/wp-content\/uploads\/2019\/06\/e-1.png\" alt=\"e\" width=\"900\" height=\"386\" srcset=\"http:\/\/procedural-audio.com\/blog\/wp-content\/uploads\/2019\/06\/e-1.png 900w, http:\/\/procedural-audio.com\/blog\/wp-content\/uploads\/2019\/06\/e-1-150x64.png 150w, http:\/\/procedural-audio.com\/blog\/wp-content\/uploads\/2019\/06\/e-1-300x129.png 300w, http:\/\/procedural-audio.com\/blog\/wp-content\/uploads\/2019\/06\/e-1-768x329.png 768w\" sizes=\"(max-width: 900px) 100vw, 900px\" \/><\/p>\n<p><audio style=\"display: block; margin: 20px auto;\" controls=\"\" src=\"http:\/\/procedural-audio.com\/blog\/wp-content\/uploads\/2019\/06\/curve-a.wav\"><\/audio><\/p>\n<p>Again, the waveform displayed in the Curve module shows up the same in the Analyzer. Since the sound source is a much deeper sound, we can use the <strong>Scale Offset <\/strong>module to pitch the sound down.<\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-full wp-image-1710\" src=\"http:\/\/procedural-audio.com\/blog\/wp-content\/uploads\/2019\/06\/f.png\" alt=\"f\" width=\"900\" height=\"471\" srcset=\"http:\/\/procedural-audio.com\/blog\/wp-content\/uploads\/2019\/06\/f.png 900w, http:\/\/procedural-audio.com\/blog\/wp-content\/uploads\/2019\/06\/f-150x79.png 150w, http:\/\/procedural-audio.com\/blog\/wp-content\/uploads\/2019\/06\/f-300x157.png 300w, http:\/\/procedural-audio.com\/blog\/wp-content\/uploads\/2019\/06\/f-768x402.png 768w\" sizes=\"(max-width: 900px) 100vw, 900px\" \/><\/p>\n<p><audio style=\"display: block; margin: 20px auto;\" controls=\"\" src=\"http:\/\/procedural-audio.com\/blog\/wp-content\/uploads\/2019\/06\/curve-b.wav\"><\/audio><\/p>\n<p>Setting the <strong>Scale <\/strong>to 0.25 scales the waveform to a quarter of its original size, which means that the waveform is less dynamic. So that the waveform isn\u2019t too bassy, we can push the waveform back up by setting the <strong>Offset <\/strong>to 0.10, raising the overall waveform by one-tenth (so that the lowest point of the waveform after playback will be 0.10). We can also scale by negative values to invert the phase.<\/p>\n<h2 style=\"border-left:4px solid; padding-left:10px;\">LFO<\/h2>\n<p><strong>LFOs<\/strong> offer a continuous waveform which can be great for controlling the pitch and modulation of other modules. We can also randomize the waveform <strong>Shape <\/strong>at playback by ticking the boxes next to the corresponding shapes. This feature can generate a great selection of vocal utterances, which is especially handy for run-time implementation.<\/p>\n<p><img decoding=\"async\" loading=\"lazy\" style=\"margin-bottom:12px;\" class=\"alignnone size-full wp-image-1711\" src=\"http:\/\/procedural-audio.com\/blog\/wp-content\/uploads\/2019\/06\/g.png\" alt=\"g\" width=\"324\" height=\"317\" srcset=\"http:\/\/procedural-audio.com\/blog\/wp-content\/uploads\/2019\/06\/g.png 324w, http:\/\/procedural-audio.com\/blog\/wp-content\/uploads\/2019\/06\/g-150x147.png 150w, http:\/\/procedural-audio.com\/blog\/wp-content\/uploads\/2019\/06\/g-300x294.png 300w\" sizes=\"(max-width: 324px) 100vw, 324px\" \/><\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-full wp-image-1712\" src=\"http:\/\/procedural-audio.com\/blog\/wp-content\/uploads\/2019\/06\/h.png\" alt=\"h\" width=\"900\" height=\"214\" srcset=\"http:\/\/procedural-audio.com\/blog\/wp-content\/uploads\/2019\/06\/h.png 900w, http:\/\/procedural-audio.com\/blog\/wp-content\/uploads\/2019\/06\/h-150x36.png 150w, http:\/\/procedural-audio.com\/blog\/wp-content\/uploads\/2019\/06\/h-300x71.png 300w, http:\/\/procedural-audio.com\/blog\/wp-content\/uploads\/2019\/06\/h-768x183.png 768w\" sizes=\"(max-width: 900px) 100vw, 900px\" \/><\/p>\n<p><audio style=\"display: block; margin: 20px auto;\" controls=\"\" src=\"http:\/\/procedural-audio.com\/blog\/wp-content\/uploads\/2019\/06\/LFO.wav\"><\/audio><\/p>\n<p>To generate my samples, I set the <strong>Attack<\/strong> of the LFO to 0.1. It\u2019s interesting to note the effect that this has on the different waveform shapes. The <strong>Sine\u2019s<\/strong> first peak is slightly lower, but the <strong>SawUp <\/strong>has a nonlinear ramp up.<\/p>\n<h2 style=\"border-left:4px solid; padding-left:10px;\">Audio Signals<\/h2>\n<p>We can determine what kind of signal we are dealing with by looking at the color of the connector circle. Red is for binary operations like triggers, Blue is for control signals, and Green is for audio signals. Despite this distinct separation, we can use different signal types interchangeably. For example, we can use an <strong>Audio Generation<\/strong> module such as <strong>Chirp <\/strong>to control the Pitch of our Creature module. Using audio signals in this way can produce more chaotic results.<\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-full wp-image-1713\" src=\"http:\/\/procedural-audio.com\/blog\/wp-content\/uploads\/2019\/06\/i.png\" alt=\"i\" width=\"900\" height=\"455\" srcset=\"http:\/\/procedural-audio.com\/blog\/wp-content\/uploads\/2019\/06\/i.png 900w, http:\/\/procedural-audio.com\/blog\/wp-content\/uploads\/2019\/06\/i-150x76.png 150w, http:\/\/procedural-audio.com\/blog\/wp-content\/uploads\/2019\/06\/i-300x152.png 300w, http:\/\/procedural-audio.com\/blog\/wp-content\/uploads\/2019\/06\/i-768x388.png 768w\" sizes=\"(max-width: 900px) 100vw, 900px\" \/><\/p>\n<p><audio style=\"display: block; margin: 20px auto;\" controls=\"\" src=\"http:\/\/procedural-audio.com\/blog\/wp-content\/uploads\/2019\/06\/audiosignal.wav\"><\/audio><\/p>\n<h2 style=\"border-left:4px solid; padding-left:10px;\">Conclusion<\/h2>\n<p>I hope that this has helped to make better sense of the different signals available in the Modular model, as well as of the Analyzer, which is an essential tool for understanding these signals and diagnosing audio problems. \u00a0If you are stuck for ideas, try wiring patches in weird configurations to see what sorts of crazy sounds you can create.<\/p>\n<p style=\"font-style:italic\"; margin-bottom: 30px;>Article written by <a href=\"http:\/\/gu-on.com\/\" target=\"_blank\">Kevin Doran<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Introduction GameSynth\u2019s Modular model offers a great visual patching system for creating sound procedurally. Part of this package includes signal generators such as the<\/p>\n","protected":false},"author":1,"featured_media":1703,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":[],"categories":[6,12],"tags":[],"_links":{"self":[{"href":"http:\/\/procedural-audio.com\/blog\/wp-json\/wp\/v2\/posts\/1702"}],"collection":[{"href":"http:\/\/procedural-audio.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/procedural-audio.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/procedural-audio.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/procedural-audio.com\/blog\/wp-json\/wp\/v2\/comments?post=1702"}],"version-history":[{"count":20,"href":"http:\/\/procedural-audio.com\/blog\/wp-json\/wp\/v2\/posts\/1702\/revisions"}],"predecessor-version":[{"id":1756,"href":"http:\/\/procedural-audio.com\/blog\/wp-json\/wp\/v2\/posts\/1702\/revisions\/1756"}],"wp:featuredmedia":[{"embeddable":true,"href":"http:\/\/procedural-audio.com\/blog\/wp-json\/wp\/v2\/media\/1703"}],"wp:attachment":[{"href":"http:\/\/procedural-audio.com\/blog\/wp-json\/wp\/v2\/media?parent=1702"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/procedural-audio.com\/blog\/wp-json\/wp\/v2\/categories?post=1702"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/procedural-audio.com\/blog\/wp-json\/wp\/v2\/tags?post=1702"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}