{"id":1275,"date":"2019-10-28T12:39:33","date_gmt":"2019-10-28T12:39:33","guid":{"rendered":"http:\/\/digital.eca.ed.ac.uk\/sonicstructures\/?p=1275"},"modified":"2019-10-28T22:18:48","modified_gmt":"2019-10-28T22:18:48","slug":"lecture-07-demonstrating-interface-control","status":"publish","type":"post","link":"https:\/\/digital.eca.ed.ac.uk\/sonicstructures\/2019\/10\/lecture-07-demonstrating-interface-control\/","title":{"rendered":"Lecture 07 &#8211; demonstrating interface control"},"content":{"rendered":"\n<h3 class=\"wp-block-heading\">One to one<\/h3>\n\n\n\n<p>Here, we take a simple model, where a fader is connected to a parameter in Max, directly. We&#8217;ll use the built-in mappings tools for this. <\/p>\n\n\n\n<p>First we have to scale the values of the fader to something useful inside your patch. Then we map it to control our patch.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">One to Many<br><\/h3>\n\n\n\n<p>Here we take a slightly more complex approach mapping one controller to several places at the same time. Again, we scale to something useful and remap the controller to different parameters.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">One to Many, non-linear<\/h3>\n\n\n\n<p>here we control multiple parameters with the same controller in a non-linear fashion. We&#8217;ll do this using the Nodes object.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">A note on exponents<\/h3>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/digital.eca.ed.ac.uk\/sonicstructures\/files\/2019\/10\/scaleExpoentHelper.maxpat.zip\"><img decoding=\"async\" loading=\"lazy\" width=\"738\" height=\"613\" src=\"https:\/\/digital.eca.ed.ac.uk\/sonicstructures\/files\/2019\/10\/NoteOnExponent.png\" alt=\"\" class=\"wp-image-1279\" srcset=\"https:\/\/digital.eca.ed.ac.uk\/sonicstructures\/files\/2019\/10\/NoteOnExponent.png 738w, https:\/\/digital.eca.ed.ac.uk\/sonicstructures\/files\/2019\/10\/NoteOnExponent-300x249.png 300w, https:\/\/digital.eca.ed.ac.uk\/sonicstructures\/files\/2019\/10\/NoteOnExponent-100x83.png 100w, https:\/\/digital.eca.ed.ac.uk\/sonicstructures\/files\/2019\/10\/NoteOnExponent-150x125.png 150w, https:\/\/digital.eca.ed.ac.uk\/sonicstructures\/files\/2019\/10\/NoteOnExponent-200x166.png 200w, https:\/\/digital.eca.ed.ac.uk\/sonicstructures\/files\/2019\/10\/NoteOnExponent-450x374.png 450w, https:\/\/digital.eca.ed.ac.uk\/sonicstructures\/files\/2019\/10\/NoteOnExponent-600x498.png 600w\" sizes=\"(max-width: 738px) 100vw, 738px\" \/><\/a><\/figure>\n\n\n\n<div class=\"wp-block-file\"><a href=\"https:\/\/digital.eca.ed.ac.uk\/sonicstructures\/files\/2019\/10\/scaleExpoentHelper.maxpat.zip\">scaleExpoentHelper.maxpat<\/a><a href=\"https:\/\/digital.eca.ed.ac.uk\/sonicstructures\/files\/2019\/10\/scaleExpoentHelper.maxpat.zip\" class=\"wp-block-file__button\" download>Download<\/a><\/div>\n\n\n\n<p><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Randomize<\/h3>\n\n\n\n<p>To do this properly, you need to know the minimum and maximum of your parameter so that you can randomize within sensible boundaries. OR you randomise between 0-1 and then scale up locally within your patch. <\/p>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/digital.eca.ed.ac.uk\/sonicstructures\/files\/2019\/10\/randomiseParams.zip\"><img decoding=\"async\" loading=\"lazy\" width=\"1024\" height=\"714\" src=\"https:\/\/digital.eca.ed.ac.uk\/sonicstructures\/files\/2019\/10\/RandomizeParams-1024x714.png\" alt=\"\" class=\"wp-image-1282\" srcset=\"https:\/\/digital.eca.ed.ac.uk\/sonicstructures\/files\/2019\/10\/RandomizeParams-1024x714.png 1024w, https:\/\/digital.eca.ed.ac.uk\/sonicstructures\/files\/2019\/10\/RandomizeParams-300x209.png 300w, https:\/\/digital.eca.ed.ac.uk\/sonicstructures\/files\/2019\/10\/RandomizeParams-768x536.png 768w, https:\/\/digital.eca.ed.ac.uk\/sonicstructures\/files\/2019\/10\/RandomizeParams-100x70.png 100w, https:\/\/digital.eca.ed.ac.uk\/sonicstructures\/files\/2019\/10\/RandomizeParams-150x105.png 150w, https:\/\/digital.eca.ed.ac.uk\/sonicstructures\/files\/2019\/10\/RandomizeParams-200x139.png 200w, https:\/\/digital.eca.ed.ac.uk\/sonicstructures\/files\/2019\/10\/RandomizeParams-450x314.png 450w, https:\/\/digital.eca.ed.ac.uk\/sonicstructures\/files\/2019\/10\/RandomizeParams-600x418.png 600w, https:\/\/digital.eca.ed.ac.uk\/sonicstructures\/files\/2019\/10\/RandomizeParams-900x628.png 900w, https:\/\/digital.eca.ed.ac.uk\/sonicstructures\/files\/2019\/10\/RandomizeParams.png 1226w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n\n\n\n<div class=\"wp-block-file\"><a href=\"https:\/\/digital.eca.ed.ac.uk\/sonicstructures\/files\/2019\/10\/randomiseParams.zip\">randomiseParams<\/a><a href=\"https:\/\/digital.eca.ed.ac.uk\/sonicstructures\/files\/2019\/10\/randomiseParams.zip\" class=\"wp-block-file__button\" download>Download<\/a><\/div>\n\n\n\n<p>Edit to the above. It&#8217;s slightly more complex, but you can randomize and make lists of parameter ranges a little nicer is you follow the patch below. <\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" loading=\"lazy\" width=\"1024\" height=\"567\" src=\"https:\/\/digital.eca.ed.ac.uk\/sonicstructures\/files\/2019\/10\/randomizer2-1024x567.png\" alt=\"\" class=\"wp-image-1295\" srcset=\"https:\/\/digital.eca.ed.ac.uk\/sonicstructures\/files\/2019\/10\/randomizer2-1024x567.png 1024w, https:\/\/digital.eca.ed.ac.uk\/sonicstructures\/files\/2019\/10\/randomizer2-300x166.png 300w, https:\/\/digital.eca.ed.ac.uk\/sonicstructures\/files\/2019\/10\/randomizer2-768x425.png 768w, https:\/\/digital.eca.ed.ac.uk\/sonicstructures\/files\/2019\/10\/randomizer2-100x55.png 100w, https:\/\/digital.eca.ed.ac.uk\/sonicstructures\/files\/2019\/10\/randomizer2-150x83.png 150w, https:\/\/digital.eca.ed.ac.uk\/sonicstructures\/files\/2019\/10\/randomizer2-200x111.png 200w, https:\/\/digital.eca.ed.ac.uk\/sonicstructures\/files\/2019\/10\/randomizer2-450x249.png 450w, https:\/\/digital.eca.ed.ac.uk\/sonicstructures\/files\/2019\/10\/randomizer2-600x332.png 600w, https:\/\/digital.eca.ed.ac.uk\/sonicstructures\/files\/2019\/10\/randomizer2-900x498.png 900w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<div class=\"wp-block-file\"><a href=\"https:\/\/digital.eca.ed.ac.uk\/sonicstructures\/files\/2019\/10\/randomizer2.zip\">randomizer2<\/a><a href=\"https:\/\/digital.eca.ed.ac.uk\/sonicstructures\/files\/2019\/10\/randomizer2.zip\" class=\"wp-block-file__button\" download>Download<\/a><\/div>\n\n\n\n<p>If you understand the above and tihnk you&#8217;d like to use a randomizer for your patch parameters in a patch. Here it is encapsulated into a an abstraction. Connect it to a pattrstoarage object, edit the parameter ranges and away you go. Automated randomizing across your whole set of parameters. This is a very good way of finding the tolerances and ranges of your patch that you like and discovering connections and sounds that you can&#8217;t get by trial and error.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" loading=\"lazy\" width=\"1024\" height=\"634\" src=\"https:\/\/digital.eca.ed.ac.uk\/sonicstructures\/files\/2019\/10\/bpatcheredRandomizer-1024x634.png\" alt=\"\" class=\"wp-image-1297\" srcset=\"https:\/\/digital.eca.ed.ac.uk\/sonicstructures\/files\/2019\/10\/bpatcheredRandomizer-1024x634.png 1024w, https:\/\/digital.eca.ed.ac.uk\/sonicstructures\/files\/2019\/10\/bpatcheredRandomizer-300x186.png 300w, https:\/\/digital.eca.ed.ac.uk\/sonicstructures\/files\/2019\/10\/bpatcheredRandomizer-768x475.png 768w, https:\/\/digital.eca.ed.ac.uk\/sonicstructures\/files\/2019\/10\/bpatcheredRandomizer-100x62.png 100w, https:\/\/digital.eca.ed.ac.uk\/sonicstructures\/files\/2019\/10\/bpatcheredRandomizer-150x93.png 150w, https:\/\/digital.eca.ed.ac.uk\/sonicstructures\/files\/2019\/10\/bpatcheredRandomizer-200x124.png 200w, https:\/\/digital.eca.ed.ac.uk\/sonicstructures\/files\/2019\/10\/bpatcheredRandomizer-450x278.png 450w, https:\/\/digital.eca.ed.ac.uk\/sonicstructures\/files\/2019\/10\/bpatcheredRandomizer-600x371.png 600w, https:\/\/digital.eca.ed.ac.uk\/sonicstructures\/files\/2019\/10\/bpatcheredRandomizer-900x557.png 900w, https:\/\/digital.eca.ed.ac.uk\/sonicstructures\/files\/2019\/10\/bpatcheredRandomizer.png 1904w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<div class=\"wp-block-file\"><a href=\"https:\/\/digital.eca.ed.ac.uk\/sonicstructures\/files\/2019\/10\/pattrRandomizer.zip\">pattrRandomizer<\/a><a href=\"https:\/\/digital.eca.ed.ac.uk\/sonicstructures\/files\/2019\/10\/pattrRandomizer.zip\" class=\"wp-block-file__button\" download>Download<\/a><\/div>\n\n\n\n<p><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">MiraWeb<\/h3>\n\n\n\n<ul><li>Place a miraweb over the interface objects in your patch<\/li><li>connect to the patch using the URL provided by miraweb<\/li><li>control your patch.<\/li><\/ul>\n\n\n\n<p>It should be possible to control your patch with another computer using the browser on that computer. This could be your mobile phone, a tablet or another laptop. Miraweb can do this for you.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/digital.eca.ed.ac.uk\/sonicstructures\/files\/2019\/10\/miraWebDemo.maxpat.zip\"><img decoding=\"async\" loading=\"lazy\" width=\"820\" height=\"682\" src=\"https:\/\/digital.eca.ed.ac.uk\/sonicstructures\/files\/2019\/10\/mirawebDemo.png\" alt=\"\" class=\"wp-image-1285\" srcset=\"https:\/\/digital.eca.ed.ac.uk\/sonicstructures\/files\/2019\/10\/mirawebDemo.png 820w, https:\/\/digital.eca.ed.ac.uk\/sonicstructures\/files\/2019\/10\/mirawebDemo-300x250.png 300w, https:\/\/digital.eca.ed.ac.uk\/sonicstructures\/files\/2019\/10\/mirawebDemo-768x639.png 768w, https:\/\/digital.eca.ed.ac.uk\/sonicstructures\/files\/2019\/10\/mirawebDemo-100x83.png 100w, https:\/\/digital.eca.ed.ac.uk\/sonicstructures\/files\/2019\/10\/mirawebDemo-150x125.png 150w, https:\/\/digital.eca.ed.ac.uk\/sonicstructures\/files\/2019\/10\/mirawebDemo-200x166.png 200w, https:\/\/digital.eca.ed.ac.uk\/sonicstructures\/files\/2019\/10\/mirawebDemo-450x374.png 450w, https:\/\/digital.eca.ed.ac.uk\/sonicstructures\/files\/2019\/10\/mirawebDemo-600x499.png 600w\" sizes=\"(max-width: 820px) 100vw, 820px\" \/><\/a><\/figure>\n\n\n\n<div class=\"wp-block-file\"><a href=\"https:\/\/digital.eca.ed.ac.uk\/sonicstructures\/files\/2019\/10\/miraWebDemo.maxpat.zip\">miraWebDemo.maxpat<\/a><a href=\"https:\/\/digital.eca.ed.ac.uk\/sonicstructures\/files\/2019\/10\/miraWebDemo.maxpat.zip\" class=\"wp-block-file__button\" download>Download<\/a><\/div>\n\n\n\n<p><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">OSC  &#8211; open sound control<\/h3>\n\n\n\n<ul><li>This is a very powerful control protocol, implemented in most sensible audio software these days. Ideally, you&#8217;ll have both; control of a software system by midi and via this protocol. <\/li><li>OSC will quickly turn your phone into a controller for MaxMSP. There are various free apps out there: OSC Controller by Adam Katz and oscHook seem OK, but there are plenty to choose from.<\/li><li>Relies on network connection, can be local (i.e. using the network protocol within your own machine using localhost or 127.0.0.1 as the IP address. Or connecting to one or many devices on your network through a dedicated router&#8230; OR connecting to any computer in the world provided firewalls are open and you can push the data through. <\/li><\/ul>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>One to one Here, we take a simple model, where a fader is connected to a parameter in Max, directly. We&#8217;ll use the built-in mappings tools for this. First we have to scale the values of the fader to something &hellip;<\/p>\n<p class=\"read-more\"> <a class=\"more-link\" href=\"https:\/\/digital.eca.ed.ac.uk\/sonicstructures\/2019\/10\/lecture-07-demonstrating-interface-control\/\"> <span class=\"screen-reader-text\">Lecture 07 &#8211; demonstrating interface control<\/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":[5,11],"tags":[],"acf":[],"_links":{"self":[{"href":"https:\/\/digital.eca.ed.ac.uk\/sonicstructures\/wp-json\/wp\/v2\/posts\/1275"}],"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=1275"}],"version-history":[{"count":6,"href":"https:\/\/digital.eca.ed.ac.uk\/sonicstructures\/wp-json\/wp\/v2\/posts\/1275\/revisions"}],"predecessor-version":[{"id":1298,"href":"https:\/\/digital.eca.ed.ac.uk\/sonicstructures\/wp-json\/wp\/v2\/posts\/1275\/revisions\/1298"}],"wp:attachment":[{"href":"https:\/\/digital.eca.ed.ac.uk\/sonicstructures\/wp-json\/wp\/v2\/media?parent=1275"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/digital.eca.ed.ac.uk\/sonicstructures\/wp-json\/wp\/v2\/categories?post=1275"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/digital.eca.ed.ac.uk\/sonicstructures\/wp-json\/wp\/v2\/tags?post=1275"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}