{"id":5860,"date":"2026-05-06T17:15:52","date_gmt":"2026-05-06T21:15:52","guid":{"rendered":"https:\/\/dems.asc.ohio-state.edu\/?p=5860"},"modified":"2026-05-06T17:15:52","modified_gmt":"2026-05-06T21:15:52","slug":"cycle-three-a-collective-sound-explorer","status":"publish","type":"post","link":"https:\/\/dems.asc.ohio-state.edu\/?p=5860","title":{"rendered":"Cycle Three: A Collective Sound Explorer"},"content":{"rendered":"\n<p>As I alluded to in the <a href=\"https:\/\/dems.asc.ohio-state.edu\/?p=5840\" data-type=\"link\" data-id=\"https:\/\/dems.asc.ohio-state.edu\/?p=5840\">previous cycle<\/a>, I wanted to really focus on creating an experience for multiple people in this cycle, as part of my original goal was to do something for a group of people. As the ideas I was exploring in cycle two didn&#8217;t work out so great, I pivoted to creating an experience with several different kinds of sound manipulation, as opposed to one &#8220;instrument&#8221; that everyone could interact with at once. The different systems I picked to include in this cycle were: the 2D movement-based sound explorer from my first cycle, a patch that resynthesizes from a mic input using the Data Knot package, a FM theremin also using motion tracking, and an iPad connected to parameters of the different instruments using Max&#8217;s MiraWeb package. <\/p>\n\n\n\n<p>Since the 3D version had some large issues, I chose to go back to the 2D version, since it was much easier to interact with. While the the code didn&#8217;t change much in regard to <em>how<\/em> it was working, I expanded the control capabilities for more &#8220;natural&#8221; input. In both cycles one and two, people found it unintuitive that only one hand had any effect on the sound, so for this time, I wanted to get two handed control working. I did this by just duplicating the original FluCoMa code, basically creating two &#8220;voices&#8221; for the instrument. I then mapped the coordinates of each wrist (received from MediaPipe in TouchDesigner over OSC) to a voice. By analyzing the sample folders with different thresholds for detection, I was able to create two different corpuses for the wrists to move through. <\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1438\" height=\"694\" src=\"https:\/\/dems.asc.ohio-state.edu\/wp-content\/uploads\/2026\/05\/Screenshot-2026-05-06-at-3.54.01-PM.png\" alt=\"\" class=\"wp-image-5879\" style=\"aspect-ratio:2.403540930835606\" srcset=\"https:\/\/dems.asc.ohio-state.edu\/wp-content\/uploads\/2026\/05\/Screenshot-2026-05-06-at-3.54.01-PM.png 1438w, https:\/\/dems.asc.ohio-state.edu\/wp-content\/uploads\/2026\/05\/Screenshot-2026-05-06-at-3.54.01-PM-300x145.png 300w, https:\/\/dems.asc.ohio-state.edu\/wp-content\/uploads\/2026\/05\/Screenshot-2026-05-06-at-3.54.01-PM-1024x494.png 1024w, https:\/\/dems.asc.ohio-state.edu\/wp-content\/uploads\/2026\/05\/Screenshot-2026-05-06-at-3.54.01-PM-768x371.png 768w\" sizes=\"auto, (max-width: 1438px) 100vw, 1438px\" \/><\/figure>\n\n\n\n<p>As I mentioned earlier, the mic input resynthesis was done using the package DataKnot for MaxMSP, which is used for real time audio analysis and processing, based in FluCoMa&#8217;s tools. The patch I used takes the signal from the microphone, looks for the onset of a sound (determined by a dB threshold) and triggers waves resynthesized from the most present pitches in the original. The signal onset detection also randomly triggers some strumming and &#8220;shaking&#8221; noise. While this instrument isn&#8217;t controlled with a camera, I did put a camera in front of the microphone, so that the user could still create visuals.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1590\" height=\"786\" src=\"https:\/\/dems.asc.ohio-state.edu\/wp-content\/uploads\/2026\/05\/Screenshot-2026-05-06-at-3.51.54-PM.png\" alt=\"\" class=\"wp-image-5877\" style=\"width:575px;height:auto\" srcset=\"https:\/\/dems.asc.ohio-state.edu\/wp-content\/uploads\/2026\/05\/Screenshot-2026-05-06-at-3.51.54-PM.png 1590w, https:\/\/dems.asc.ohio-state.edu\/wp-content\/uploads\/2026\/05\/Screenshot-2026-05-06-at-3.51.54-PM-300x148.png 300w, https:\/\/dems.asc.ohio-state.edu\/wp-content\/uploads\/2026\/05\/Screenshot-2026-05-06-at-3.51.54-PM-1024x506.png 1024w, https:\/\/dems.asc.ohio-state.edu\/wp-content\/uploads\/2026\/05\/Screenshot-2026-05-06-at-3.51.54-PM-768x380.png 768w, https:\/\/dems.asc.ohio-state.edu\/wp-content\/uploads\/2026\/05\/Screenshot-2026-05-06-at-3.51.54-PM-1536x759.png 1536w\" sizes=\"auto, (max-width: 1590px) 100vw, 1590px\" \/><\/figure>\n\n\n\n<p>The theremin portion of the patch was done with a simple FM synth patch I have (fmcore~.maxpat). The y-values of the left wrist controlled the volume of the wave being played, while the y-values of the right wrist controlled the pitch. I had to smooth out the pitch values with zl.stream and zl.sum, taking the average of the most recent 5 values in order to prevent the pitch from wobbling around from unstable data. <\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1172\" height=\"886\" src=\"https:\/\/dems.asc.ohio-state.edu\/wp-content\/uploads\/2026\/05\/Screenshot-2026-05-06-at-4.09.19-PM.png\" alt=\"\" class=\"wp-image-5880\" style=\"width:568px;height:auto\" srcset=\"https:\/\/dems.asc.ohio-state.edu\/wp-content\/uploads\/2026\/05\/Screenshot-2026-05-06-at-4.09.19-PM.png 1172w, https:\/\/dems.asc.ohio-state.edu\/wp-content\/uploads\/2026\/05\/Screenshot-2026-05-06-at-4.09.19-PM-300x227.png 300w, https:\/\/dems.asc.ohio-state.edu\/wp-content\/uploads\/2026\/05\/Screenshot-2026-05-06-at-4.09.19-PM-1024x774.png 1024w, https:\/\/dems.asc.ohio-state.edu\/wp-content\/uploads\/2026\/05\/Screenshot-2026-05-06-at-4.09.19-PM-768x581.png 768w\" sizes=\"auto, (max-width: 1172px) 100vw, 1172px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"880\" height=\"1164\" src=\"https:\/\/dems.asc.ohio-state.edu\/wp-content\/uploads\/2026\/05\/Screenshot-2026-05-06-at-4.12.22-PM.png\" alt=\"\" class=\"wp-image-5883\" style=\"aspect-ratio:0.7560221155953918;width:267px;height:auto\" srcset=\"https:\/\/dems.asc.ohio-state.edu\/wp-content\/uploads\/2026\/05\/Screenshot-2026-05-06-at-4.12.22-PM.png 880w, https:\/\/dems.asc.ohio-state.edu\/wp-content\/uploads\/2026\/05\/Screenshot-2026-05-06-at-4.12.22-PM-227x300.png 227w, https:\/\/dems.asc.ohio-state.edu\/wp-content\/uploads\/2026\/05\/Screenshot-2026-05-06-at-4.12.22-PM-774x1024.png 774w, https:\/\/dems.asc.ohio-state.edu\/wp-content\/uploads\/2026\/05\/Screenshot-2026-05-06-at-4.12.22-PM-768x1016.png 768w\" sizes=\"auto, (max-width: 880px) 100vw, 880px\" \/><figcaption class=\"wp-element-caption\">Inside fmcore~.maxpat<\/figcaption><\/figure>\n\n\n\n<p>The little grey box with the &#8220;FM THEREMIN&#8221; header in those pictures is where I connected the patch on my computer to an external iPad for parameter control. I did this with Max&#8217;s built-in package <em>Mira<\/em>, which allows you to connect a device on the same network to a Max patch. In addition to the pitch, FM ratio and depth of the theremin, I also gave the iPad user seven parameters for the Data Knot processing, as well as a mixer for all of the instruments<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1138\" height=\"392\" src=\"https:\/\/dems.asc.ohio-state.edu\/wp-content\/uploads\/2026\/05\/Screenshot-2026-05-06-at-4.12.52-PM.png\" alt=\"\" class=\"wp-image-5882\" srcset=\"https:\/\/dems.asc.ohio-state.edu\/wp-content\/uploads\/2026\/05\/Screenshot-2026-05-06-at-4.12.52-PM.png 1138w, https:\/\/dems.asc.ohio-state.edu\/wp-content\/uploads\/2026\/05\/Screenshot-2026-05-06-at-4.12.52-PM-300x103.png 300w, https:\/\/dems.asc.ohio-state.edu\/wp-content\/uploads\/2026\/05\/Screenshot-2026-05-06-at-4.12.52-PM-1024x353.png 1024w, https:\/\/dems.asc.ohio-state.edu\/wp-content\/uploads\/2026\/05\/Screenshot-2026-05-06-at-4.12.52-PM-768x265.png 768w\" sizes=\"auto, (max-width: 1138px) 100vw, 1138px\" \/><figcaption class=\"wp-element-caption\">The other two Mira windows as they appear in my patch. <\/figcaption><\/figure>\n\n\n\n<p>In addition to this, I also expanded upon my original TouchDesigner patch\u2013which was handling the motion capture via Google MediaPipe\u2013to create some particle visuals based on the landmark skeleton from MediaPipe. First, I went copied the code for one video stream into three, to capture data for all three instrument users. I mostly followed <a href=\"https:\/\/youtu.be\/Tx9qfTqGGzQ?si=aS-os1RVZOy4I4hd\" data-type=\"link\" data-id=\"https:\/\/youtu.be\/Tx9qfTqGGzQ?si=aS-os1RVZOy4I4hd\">this<\/a> tutorial to create them, as I&#8217;m not the best at TouchDesigner, but I took a couple of my own liberties. The two largest of those were that I used the skeleton video feed out of MediaPipe as input for the particles, and I also used noise to generate colors instead of the input video, as the skeleton is only white. Lastly, I placed the three skeletons in different spots on the screen in relation to where each station would be set up in the motion lab. Code is posted below.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"2158\" height=\"1210\" src=\"https:\/\/dems.asc.ohio-state.edu\/wp-content\/uploads\/2026\/05\/Screenshot-2026-05-06-at-2.33.43-PM.png\" alt=\"\" class=\"wp-image-5885\" style=\"aspect-ratio:1.783498656404472;width:498px;height:auto\" srcset=\"https:\/\/dems.asc.ohio-state.edu\/wp-content\/uploads\/2026\/05\/Screenshot-2026-05-06-at-2.33.43-PM.png 2158w, https:\/\/dems.asc.ohio-state.edu\/wp-content\/uploads\/2026\/05\/Screenshot-2026-05-06-at-2.33.43-PM-300x168.png 300w, https:\/\/dems.asc.ohio-state.edu\/wp-content\/uploads\/2026\/05\/Screenshot-2026-05-06-at-2.33.43-PM-1024x574.png 1024w, https:\/\/dems.asc.ohio-state.edu\/wp-content\/uploads\/2026\/05\/Screenshot-2026-05-06-at-2.33.43-PM-768x431.png 768w, https:\/\/dems.asc.ohio-state.edu\/wp-content\/uploads\/2026\/05\/Screenshot-2026-05-06-at-2.33.43-PM-1536x861.png 1536w, https:\/\/dems.asc.ohio-state.edu\/wp-content\/uploads\/2026\/05\/Screenshot-2026-05-06-at-2.33.43-PM-2048x1148.png 2048w\" sizes=\"auto, (max-width: 2158px) 100vw, 2158px\" \/><figcaption class=\"wp-element-caption\">Overview of code, as well as example of what the visuals look like. Only my webcam is routed through the patch in this image.<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"2560\" height=\"464\" src=\"https:\/\/dems.asc.ohio-state.edu\/wp-content\/uploads\/2026\/05\/Screenshot-2026-05-06-at-4.26.57-PM-scaled.png\" alt=\"\" class=\"wp-image-5886\" srcset=\"https:\/\/dems.asc.ohio-state.edu\/wp-content\/uploads\/2026\/05\/Screenshot-2026-05-06-at-4.26.57-PM-scaled.png 2560w, https:\/\/dems.asc.ohio-state.edu\/wp-content\/uploads\/2026\/05\/Screenshot-2026-05-06-at-4.26.57-PM-300x54.png 300w, https:\/\/dems.asc.ohio-state.edu\/wp-content\/uploads\/2026\/05\/Screenshot-2026-05-06-at-4.26.57-PM-1024x186.png 1024w, https:\/\/dems.asc.ohio-state.edu\/wp-content\/uploads\/2026\/05\/Screenshot-2026-05-06-at-4.26.57-PM-768x139.png 768w, https:\/\/dems.asc.ohio-state.edu\/wp-content\/uploads\/2026\/05\/Screenshot-2026-05-06-at-4.26.57-PM-1536x279.png 1536w, https:\/\/dems.asc.ohio-state.edu\/wp-content\/uploads\/2026\/05\/Screenshot-2026-05-06-at-4.26.57-PM-2048x371.png 2048w\" sizes=\"auto, (max-width: 2560px) 100vw, 2560px\" \/><figcaption class=\"wp-element-caption\">More detailed look at my visual chain.<\/figcaption><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Results<\/h2>\n\n\n\n<p>While there were some oversights I made when creating my patches, as well as when I presented this cycle, I overall feel that this was a very successful experience. People seemed really interested in the sounds the experience made, as well as in making them themselves. With the two camera-controlled parts, people seemed to understand their movement was controlling something right away, which was another goal of mine.  I think that the sounds that the system made were quite interesting as well once every station had someone providing input. People also enjoyed the visuals, and seeing the particles flow with their movements. <\/p>\n\n\n\n<p>While my mistakes in this cycle weren&#8217;t too numerous, they definitely detracted from the experience a considerable amount. In terms of presentation, I didn&#8217;t explain much about how to use each station. Part of this was deliberate, as I wanted to see how first-time users could pick up on the controls. However, there were still a few basic instructions that I should&#8217;ve given, such as how far to stand from the cameras, as well as that the camera by the microphone was not controlling any sound, just the mic. I also made a mistake by making the volume sliders on the iPad full range, as it just resulted in the instruments getting turned down too quiet. I think people also had a hard time understanding what the iPad was controlling in the first place, as some of the terms used for the knobs were jargon-y. <\/p>\n\n\n\n<p>I think if I were to continue this into a cycle 4, I&#8217;d focus much more on making things more easily understood by the user. This class has taught me that the most effective interactive systems are made to create <em>potential<\/em> for experiences, not designing the experience itself. My ultimate goal with things like this is to create something that anyone can walk up to, interact with, and make something cool sounding regardless if they know every detail of how it works or if they haven&#8217;t even played an instrument before. While I think that these three cycles have shown a lot of progression towards that goal, I still have a lot of work to do. <\/p>\n\n\n\n<figure class=\"wp-block-video\"><video height=\"1080\" style=\"aspect-ratio: 1920 \/ 1080;\" width=\"1920\" controls src=\"https:\/\/dems.asc.ohio-state.edu\/wp-content\/uploads\/2026\/05\/IMG_1252-1.mov\"><\/video><\/figure>\n\n\n\n<figure class=\"wp-block-video\"><video height=\"1080\" style=\"aspect-ratio: 1920 \/ 1080;\" width=\"1920\" controls src=\"https:\/\/dems.asc.ohio-state.edu\/wp-content\/uploads\/2026\/05\/IMG_1253-1.mov\"><\/video><\/figure>\n\n\n\n<p>Longer video from Michael pending<\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>As I alluded to in the previous cycle, I wanted to really focus on creating an experience for multiple people in this cycle, as part of my original goal was to do something for a group of people. As the ideas I was exploring in cycle two didn&#8217;t work out so great, I pivoted to [&hellip;]<\/p>\n","protected":false},"author":121,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-5860","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/dems.asc.ohio-state.edu\/index.php?rest_route=\/wp\/v2\/posts\/5860","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/dems.asc.ohio-state.edu\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/dems.asc.ohio-state.edu\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/dems.asc.ohio-state.edu\/index.php?rest_route=\/wp\/v2\/users\/121"}],"replies":[{"embeddable":true,"href":"https:\/\/dems.asc.ohio-state.edu\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=5860"}],"version-history":[{"count":5,"href":"https:\/\/dems.asc.ohio-state.edu\/index.php?rest_route=\/wp\/v2\/posts\/5860\/revisions"}],"predecessor-version":[{"id":5889,"href":"https:\/\/dems.asc.ohio-state.edu\/index.php?rest_route=\/wp\/v2\/posts\/5860\/revisions\/5889"}],"wp:attachment":[{"href":"https:\/\/dems.asc.ohio-state.edu\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=5860"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/dems.asc.ohio-state.edu\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=5860"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/dems.asc.ohio-state.edu\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=5860"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}