{"id":1081,"date":"2018-10-22T12:12:48","date_gmt":"2018-10-22T12:12:48","guid":{"rendered":"http:\/\/digital.eca.ed.ac.uk\/sonicstructures\/?p=1081"},"modified":"2019-11-06T20:51:57","modified_gmt":"2019-11-06T20:51:57","slug":"tutorial-granulation","status":"publish","type":"post","link":"https:\/\/digital.eca.ed.ac.uk\/sonicstructures\/2018\/10\/tutorial-granulation\/","title":{"rendered":"Tutorial &#8211; granulation"},"content":{"rendered":"<p>At this tutorial, we&#8217;ll look in detail at some techniques for playing back samples in novel ways. In particular, we&#8217;ll explore granulation using 3rd party externals and building our own abstractions.&nbsp; Bring headphones and a laptop with MaxMSP installed on it if you have one.<\/p>\n<p>To save you scrolling here are the grain players we built in class together<\/p>\n<p><a href=\"http:\/\/digital.eca.ed.ac.uk\/sonicstructures\/files\/2018\/10\/grainTutorialsBuiltInClass.zip\">grainTutorialsBuiltInClass<\/a><\/p>\n<h3>The tutorial<\/h3>\n<h2 id=\"sec-1\"><span class=\"section-number-2\">1<\/span> Introducing Grains<\/h2>\n<div id=\"text-1\" class=\"outline-text-2\">\n<blockquote><p>\u201cAll sound is an integration of grains, of elementary sonic particles, of sonic quanta\u2026All sound, even continuous musical variation, is conceived as an assemblage of a large number of elementary sounds adequately disposed in time.\u201d<\/p><\/blockquote>\n<p><a class=\"org-ref-reference\" href=\"file:\/\/\/Users\/mparker\/Dropbox\/UoE-paperwork\/teaching\/Programme\/SS\/Tutorial-Grains\/grains.html#xenakis_formalized_1992\">xenakis_formalized_1992<\/a><\/p>\n<p>Granular approach to processing sound was proposed by the physicist Dennis Gabor. His thinking was much along the same lines as Fourier&#8217;s proposition that all sound can be described in a certain way. In Fourier&#8217;s case, the proposition is that any signal can be described in terms of discrete sine waves, all added together with differing phase positions and amplitudes. This is aligned with a reading of the universe of sound as being wave-like. Gabor&#8217;s proposal is that we can regard the universe of sound as being composed of sonic quanta or particles and that any sound can be synthesised or created by organising the quanta in specific ways.<\/p>\n<p>In reality both approaches have limitations, even amongst the ultrafast computers we have access to, but they both offer extremely interesting options to the sonic artist.<\/p>\n<p>Today we focus on a particular granulation technique: time-based granulation of sampled sound.<\/p>\n<p>To do this we&#8217;ll need a number of important tools:<\/p>\n<ul class=\"org-ul\">\n<li>a grain window or envelope<\/li>\n<li>a buffer to store sound<\/li>\n<li>a way of playing back sound from the buffer and applying the window<\/li>\n<li>a way of moving around the playhead within the buffer<\/li>\n<li>a way of controlling multiple parameters to give variety and variation<\/li>\n<li>a way of making sure that you can do this multiple times, so you have multiple copies<\/li>\n<\/ul>\n<p>Some helpful starting points are below. We&#8217;ll use these prefabricated materials to get us moving quickly, you can explore the prefabs in your own time after the tutorial.<\/p>\n<\/div>\n<div id=\"outline-container-sec-1-1\" class=\"outline-3\">\n<h3 id=\"sec-1-1\"><span class=\"section-number-3\">1.1<\/span> Managing externals<\/h3>\n<div id=\"text-1-1\" class=\"outline-text-3\">\n<p>Max can be augmented with a lot of externals made by 3rd parties. A great benefit of this is that you can include very bespoke pieces of code within your work that are designed to do very specific things, or to optimise how Max can be used.<\/p>\n<p>I managed my 3rd part externals so that they can be found on all of my computers using the cloud. I have a folder in <code>~\/Dropbox<\/code> called <code>~\/Dropbox\/MaxCore<\/code>. Inside that folder are two other folders<\/p>\n<p><code>3rdPartyMax<\/code> and <code>tinparkAbstractions<\/code><\/p>\n<p>These are folders where I place 3rd party externals and my own abstractions respectively.<\/p>\n<p>As they&#8217;re on dropbox, they remain in sync across machines and I can access the files anywhere with an internet connection.<\/p>\n<p>To tell max to find the files, you need to navigate to<\/p>\n<p><code>Options&gt;File Preferences<\/code><\/p>\n<p>and then choose and name your maxCore folder from where ever it is.<\/p>\n<\/div>\n<\/div>\n<div id=\"outline-container-sec-1-2\" class=\"outline-3\">\n<h3 id=\"sec-1-2\"><span class=\"section-number-3\">1.2<\/span> Download some externals\/abstractions<\/h3>\n<div id=\"text-1-2\" class=\"outline-text-3\">\n<p>First download mp.grainWindow. This is supposed to be used as a bpatcher. Place it inside your MaxCore directory. <a href=\"http:\/\/digital.eca.ed.ac.uk\/sonicstructures\/files\/2018\/10\/mp.grainWindow.zip\">digital.eca.ed.ac.uk\/sonicstructures\/files\/2018\/10\/mp.grainWindow.zip<\/a><\/p>\n<p>Here is the grain that we&#8217;re going to make together today. It is unannotated. If you get lost today, download this and make sure you attempt to annotate what&#8217;s there. <a href=\"http:\/\/digital.eca.ed.ac.uk\/sonicstructures\/files\/2018\/10\/aGrain.maxpat.zip\">aGrain.maxpat<\/a><a href=\"http:\/\/digital.eca.ed.ac.uk\/sonicstructures\/files\/2018\/10\/aGrain.maxpat.zip\"><img decoding=\"async\" loading=\"lazy\" class=\"alignnone wp-image-1095 size-large\" src=\"http:\/\/digital.eca.ed.ac.uk\/sonicstructures\/files\/2018\/10\/aGrain-1024x797.png\" alt=\"\" width=\"605\" height=\"471\" srcset=\"https:\/\/digital.eca.ed.ac.uk\/sonicstructures\/files\/2018\/10\/aGrain-1024x797.png 1024w, https:\/\/digital.eca.ed.ac.uk\/sonicstructures\/files\/2018\/10\/aGrain-300x233.png 300w, https:\/\/digital.eca.ed.ac.uk\/sonicstructures\/files\/2018\/10\/aGrain-768x597.png 768w, https:\/\/digital.eca.ed.ac.uk\/sonicstructures\/files\/2018\/10\/aGrain-100x78.png 100w, https:\/\/digital.eca.ed.ac.uk\/sonicstructures\/files\/2018\/10\/aGrain-150x117.png 150w, https:\/\/digital.eca.ed.ac.uk\/sonicstructures\/files\/2018\/10\/aGrain-200x156.png 200w, https:\/\/digital.eca.ed.ac.uk\/sonicstructures\/files\/2018\/10\/aGrain-450x350.png 450w, https:\/\/digital.eca.ed.ac.uk\/sonicstructures\/files\/2018\/10\/aGrain-600x467.png 600w, https:\/\/digital.eca.ed.ac.uk\/sonicstructures\/files\/2018\/10\/aGrain-900x700.png 900w, https:\/\/digital.eca.ed.ac.uk\/sonicstructures\/files\/2018\/10\/aGrain.png 1454w\" sizes=\"(max-width: 605px) 100vw, 605px\" \/><\/a><\/p>\n<p>To make a click-free granulation system, we need to be sure that we don&#8217;t change any parameter when the grain is playing, we need to delay these changes until the grain window is at 0 and no sound is coming through. Changing the size of grains can cause clicks, but for OsX users, there is a handy external called vb.phasor0~ which only passes changes when the phasor~ ramp is at 0. This is an advanced and very useful feature, but don&#8217;t worry about using it for now.<\/p>\n<p>Get it and many other amazing externals from here: <a href=\"http:\/\/vboehm.net\/downloads\/\">vboehm.net\/downloads\/<\/a><\/p>\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>At this tutorial, we&#8217;ll look in detail at some techniques for playing back samples in novel ways. In particular, we&#8217;ll explore granulation using 3rd party externals and building our own abstractions.&nbsp; Bring headphones and a laptop with MaxMSP installed on &hellip;<\/p>\n<p class=\"read-more\"> <a class=\"more-link\" href=\"https:\/\/digital.eca.ed.ac.uk\/sonicstructures\/2018\/10\/tutorial-granulation\/\"> <span class=\"screen-reader-text\">Tutorial &#8211; granulation<\/span> Read More &raquo;<\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[7],"tags":[],"acf":[],"_links":{"self":[{"href":"https:\/\/digital.eca.ed.ac.uk\/sonicstructures\/wp-json\/wp\/v2\/posts\/1081"}],"collection":[{"href":"https:\/\/digital.eca.ed.ac.uk\/sonicstructures\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/digital.eca.ed.ac.uk\/sonicstructures\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/digital.eca.ed.ac.uk\/sonicstructures\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/digital.eca.ed.ac.uk\/sonicstructures\/wp-json\/wp\/v2\/comments?post=1081"}],"version-history":[{"count":5,"href":"https:\/\/digital.eca.ed.ac.uk\/sonicstructures\/wp-json\/wp\/v2\/posts\/1081\/revisions"}],"predecessor-version":[{"id":1307,"href":"https:\/\/digital.eca.ed.ac.uk\/sonicstructures\/wp-json\/wp\/v2\/posts\/1081\/revisions\/1307"}],"wp:attachment":[{"href":"https:\/\/digital.eca.ed.ac.uk\/sonicstructures\/wp-json\/wp\/v2\/media?parent=1081"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/digital.eca.ed.ac.uk\/sonicstructures\/wp-json\/wp\/v2\/categories?post=1081"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/digital.eca.ed.ac.uk\/sonicstructures\/wp-json\/wp\/v2\/tags?post=1081"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}