{"id":914,"date":"2019-08-30T14:50:18","date_gmt":"2019-08-30T18:50:18","guid":{"rendered":"http:\/\/www.joshuarosenstock.com\/teaching\/imgd3200-a19\/?p=914"},"modified":"2019-08-30T14:58:46","modified_gmt":"2019-08-30T18:58:46","slug":"matt-johannesen-animated-abstraction","status":"publish","type":"post","link":"https:\/\/www.joshuarosenstock.com\/teaching\/imgd3200-a19\/animated-abstraction\/mdjohannesen\/matt-johannesen-animated-abstraction\/","title":{"rendered":"Matt Johannesen &#8211; Animated Abstraction"},"content":{"rendered":"\n<hr class=\"wp-block-separator\" \/>\n\n\n\n<p>For this project, I decided to try making something I had been thinking about since the last assignment: a series of infinite falling or rising squares, forming some sort of colorful tunnel.  This was partly inspired by some of the square works of Frank Stella:<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/wpr-public.s3.amazonaws.com\/ttbook\/styles\/story_full_image\/s3\/images\/stella_doublegrayscramble_lr.jpg?itok=04fTkVqZ\" alt=\"\" width=\"548\" height=\"308\" \/><\/figure><\/div>\n\n\n\n<p style=\"text-align:left\">I knew from the start that in order to get that effect to work, I would have to automatically shift the squares up or down a layer when one reached the end of its animation cycle.  I figured this would be easy to do, with some sort of &#8220;for loop&#8221; and counter.<\/p>\n\n\n\n<hr class=\"wp-block-separator\" \/>\n\n\n\n<p>Alas, Max is not Java.  I quickly learned that variables simply aren&#8217;t used very often, and not in the way that other languages use them.  For instance, Max patches seem to be unable to passively read variable data &#8211; instead, a &#8220;bang&#8221; signal must be sent first in order for the value to be used.  It very quickly became cumbersome to keep attaching arbitrary &#8220;bang&#8221; sources (like metronome blocks or buttons) just to be able to read a value in real time.<\/p>\n\n\n\n<p>After about a week of fighting with Max documentation and my own preconceptions about how programming should work, I finally got a result I liked:<\/p>\n\n\n\n<figure class=\"wp-block-embed-youtube wp-block-embed is-type-video is-provider-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"Funky Fall\" width=\"1000\" height=\"563\" src=\"https:\/\/www.youtube.com\/embed\/GYcsM7eSlaQ?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n\n\n\n<p>In order to get this working, I had to strip out some more complicated features that would have made the patch easier for me to tweak (i.e. options to switch direction and variables to make commonly used numbers).  My final patch is below:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"683\" height=\"576\" src=\"http:\/\/www.joshuarosenstock.com\/teaching\/imgd3200-a19\/wp-content\/uploads\/sites\/10\/2019\/08\/image-4.png\" alt=\"\" class=\"wp-image-915\" srcset=\"https:\/\/www.joshuarosenstock.com\/teaching\/imgd3200-a19\/wp-content\/uploads\/sites\/10\/2019\/08\/image-4.png 683w, https:\/\/www.joshuarosenstock.com\/teaching\/imgd3200-a19\/wp-content\/uploads\/sites\/10\/2019\/08\/image-4-356x300.png 356w\" sizes=\"auto, (max-width: 683px) 100vw, 683px\" \/><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>For this project, I decided to try making something I had been thinking about since the last assignment: a series of infinite falling or rising squares, forming some sort of colorful tunnel. This was partly inspired by some of the square works of Frank Stella: I knew from the start that in order to get&#8230; <\/p>\n<div class=\"link-more\"><a href=\"https:\/\/www.joshuarosenstock.com\/teaching\/imgd3200-a19\/animated-abstraction\/mdjohannesen\/matt-johannesen-animated-abstraction\/\">Read More<\/a><\/div>\n","protected":false},"author":132,"featured_media":915,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"cybocfi_hide_featured_image":"","footnotes":""},"categories":[10],"tags":[],"class_list":["post-914","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-animated-abstraction"],"jetpack_featured_media_url":"https:\/\/www.joshuarosenstock.com\/teaching\/imgd3200-a19\/wp-content\/uploads\/sites\/10\/2019\/08\/image-4.png","_links":{"self":[{"href":"https:\/\/www.joshuarosenstock.com\/teaching\/imgd3200-a19\/wp-json\/wp\/v2\/posts\/914","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.joshuarosenstock.com\/teaching\/imgd3200-a19\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.joshuarosenstock.com\/teaching\/imgd3200-a19\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.joshuarosenstock.com\/teaching\/imgd3200-a19\/wp-json\/wp\/v2\/users\/132"}],"replies":[{"embeddable":true,"href":"https:\/\/www.joshuarosenstock.com\/teaching\/imgd3200-a19\/wp-json\/wp\/v2\/comments?post=914"}],"version-history":[{"count":1,"href":"https:\/\/www.joshuarosenstock.com\/teaching\/imgd3200-a19\/wp-json\/wp\/v2\/posts\/914\/revisions"}],"predecessor-version":[{"id":917,"href":"https:\/\/www.joshuarosenstock.com\/teaching\/imgd3200-a19\/wp-json\/wp\/v2\/posts\/914\/revisions\/917"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.joshuarosenstock.com\/teaching\/imgd3200-a19\/wp-json\/wp\/v2\/media\/915"}],"wp:attachment":[{"href":"https:\/\/www.joshuarosenstock.com\/teaching\/imgd3200-a19\/wp-json\/wp\/v2\/media?parent=914"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.joshuarosenstock.com\/teaching\/imgd3200-a19\/wp-json\/wp\/v2\/categories?post=914"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.joshuarosenstock.com\/teaching\/imgd3200-a19\/wp-json\/wp\/v2\/tags?post=914"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}