18-090 https://courses.ideate.cmu.edu/18-090/f2016 Twisted Signals Thu, 22 Dec 2016 20:26:10 +0000 en-US hourly 1 https://wordpress.org/?v=4.6.28 https://i2.wp.com/courses.ideate.cmu.edu/18-090/f2016/wp-content/uploads/2016/08/cropped-Screen-Shot-2016-03-29-at-3.48.29-PM-1.png?fit=32%2C32&ssl=1 18-090 https://courses.ideate.cmu.edu/18-090/f2016 32 32 PFFT Amplitude Filter https://courses.ideate.cmu.edu/18-090/f2016/2016/12/22/pfft-amplitude-filter/ Thu, 22 Dec 2016 20:26:10 +0000 https://courses.ideate.cmu.edu/18-090/f2016/?p=575

Gravity Sound now allows a user to determine the cutoff amplitude for each string. A pfft~ object then only allows frequencies whose amplitude is below the cutoff value to output. This is useful when a string has modulation, delay, reverb affecting its signal and it’s volume begins to overwhelm the rest of the strings. The value for the filter cutoff is assigned to the absolute value of the string’s x coordinate. So whenever, the string is directly parallel to the camera’s direction vector, the filter cutoff is 0 and technically no signal should go through for that string. If a user has a string selected, they can toggle the filter on and off by pressing the filter button. Each string can have it’s own filter cutoff, depending on its position.

Value from OSC determines the cutoff amplitude

Value from OSC determines the cutoff amplitude

gravity convolution https://courses.ideate.cmu.edu/18-090/f2016/2016/12/22/gravity-convolution/ Thu, 22 Dec 2016 18:25:29 +0000 https://courses.ideate.cmu.edu/18-090/f2016/?p=572 screen-shot-2016-12-22-at-1-16-51-pm

The following video shows how each string’s convolution reverb can be assigned to a different impulse response. The dry/wet of the reverb can also be assigned. If you look carefully in the video, when a string is selected the left menu will show what impulse response it is using. However, it will not show the proper dry/wet value it is assigned to. If I assigned the string to 40%, deselected and then selected it again, it may not show 40% but it is actually still assigned to 40% until I adjust the slider again.

Impulse Responses: 1) I placed a mic inside a giant singing bowl and recorded it’s decay after being struck 2) Dropped a large flat book in a shower 3) and 4) Stuck a spring in between the piano strings and waited for it to explode out


gravity flanger https://courses.ideate.cmu.edu/18-090/f2016/2016/12/22/gravity-flanger/ Thu, 22 Dec 2016 17:59:15 +0000 https://courses.ideate.cmu.edu/18-090/f2016/?p=567 Flanger is receiving values via OSC to control delay output of each individual string

Flanger is receiving values via OSC to control delay output of each individual string

Gravity Sound connects strings to planets in our solar system where each string’s tension is equal to the gravitational pull between the two objects it’s connecting. A frequency can then be found, knowing the length and tension of the string.

The strings in Gravity Sound now have delay capabilities. Select the delay button on the left menu and a parallel solar system will appear. If a string is selected (highlighted red when selected), a user can then create a string in the delay solar system which will modulate the selected string. Only one delay string can modulate a selected string at a time. The resulting values that are sent to MAX/MSP over OSC are:

delayTime =  abs(y coordinate of string midpoint)          ….(absolute value)

delayRate =  string length x 3            …units are AU. which is the distance between the Earth&Sun

delayDepth = 4           …changing this in real time didn’t sound so great. 4 sounded okay

delayFeedback = 1 – abs(sin( angle between camera and string midpoint) x 2)    …wanted it to be                                                                                                                                                close to 1

delayWetness = 100 * abs(cos(angle between camera and string midpoint) / 2)


Ambisonic Processing in the Public Sphere https://courses.ideate.cmu.edu/18-090/f2016/2016/12/18/ambisonic-processing-in-the-public-sphere/ Mon, 19 Dec 2016 00:30:51 +0000 https://courses.ideate.cmu.edu/18-090/f2016/?p=555 by Anna Gusman and Kabir Mantha

Our piece explores the potential of design, and in particular intelligent environments, to be viewed as theatrical spaces, and by doing so questions the sociopolitical role of speculation in both art and design as well as their relationship.

The Product:


In this piece we lay down the framework for a speculative collaborative environment, and by this we mean a truly collaborative environment, not just an environment to collaborate in. An environment to collaborate in is a phenomenon that is quite common around campus these days. The bottom two floors of Hunt Library are a great example of such a space. However, a collaborative environment isn’t just one where you go to work with a group, rather the environment itself is a melting pot of ideas and inspiration in which people are constantly listening to, and learning from one another. The common anomaly of seeing someone sitting in a so called collaborative space with their headphones on, completely defeats the purpose of the space. Yet, sometimes you genuinely do need to finish writing that paper, or documenting that project, and being completely tuned into a space is just distracting. With our current technology, this is either an all or nothing decision you need to make: you can either put in headphones and cut yourself off from the world, or not. This, however, does throw the baby out with the bathwater.

Imagine a way to reorganize and customize your sound field so that you can keep exactly that which is constructive within earshot, while getting rid of all those noisy or distracting elements. The people at the other table are having a fascinating discussion about particle physics? Bring them closer. The person beside you complaining to their best friend about their mother? Get rid of that from your work flow. What’s more, we have a tangible interface that allows you to interact with the sounds in your environment by just moving stones in a little zen garden. This way, when you put in your headphones, you don’t have to completely tune out of your surroundings. Instead, you could focus while still absorbing new ideas and perspectives.


The Implementation:

To realize this idea, we experimented with ambisonic sound processing in Max and how we could relate this system to a physical representation or tangible interface for users to interact with. Using Max’s HOA library as a starting point, we began to construct the framework for binaural audio processing. The HOA library allowed us to map out our sound sources (in this case, multiple microphones) on a cartesian plane, giving us the ability to select and reposition sounds from the places we planted our mics. However, because we did not want our user to have to interact directly with a messy and complicated patch, we worked on finding alternatives means of sound source selection. Using the cartesian plane as our model, we milled a wooden basin at the roughly scaled dimensions of the media lab to provide a tangible surface for user interaction. Emulating the style of a desktop rock garden, we included sand and rocks that would come to represent the sound sources that users had the option to manipulate. To relate this tangible interface to our max patch, we used an aka.leapmotion object and programmed the X, Y and Z planes for receiving leapmotion finger data in order to capture the user’s hand movements when moving the rock sound sources around. In the future, we plan to improve this interaction by replacing the leapmotion interface with one that is embedded within the basin itself. We plan to experiment with a system that detects pressure or relative space rather than fixed position.

img_3120-2 img_3127-2 img_3124-2

Our setup for the single user product experience included a MOTU, 4 Sennheiser receivers with 4 lavalier microphones, the rock garden with 4 stones, a leapmotion and our max patch for binaural audio.  


After completing this tool, we thought about the possibilities of extending the scope of the interaction to incorporate multiple people, even an audience. Immediately we thought of incorporating the 8 speakers in the media lab into our project as a way to to do this. Several changes that we made to the patch to accommodate this was making the output 8-channel as opposed to binaural. We also smoothened the patch presentation so that during a performance we could easily activate and manipulate the levels of the sound sources around the room as a two person team. While one        person at the rock garden had the capability of moving individual sound sources spatially (as that is all that our leapmotion interface afforded), the other working at the patch was the person selecting and monitoring the sound sources for the other to use.

The Performance:

img_3278   img_3277

Starting with this prototype of a speculative intelligent environment, we started thinking more about the social and political implications of such an environment. First of all, how would people even interact with such a space? Why would people enter it? The person wearing the headphones in the description above has an enormous amount of power over the others. He can amplify and silence the others at will. The only way this is a viable environment is if everyone is given the potential to exercise this power. This implies that this speculative collaborative environment would look somewhat like a computer cluster, except instead of a computer each seat would come with its sonic interface.

Secondly, we realized that this could very easily devolve into a tool for being nosy or spying, which made us wonder how the expectations for privacy in such a space shifts. In such an environment, where every word you say is potential inspiration for someone else, the idea of privacy and personal space becomes very different. It is almost as if by entering the space, you have agreed to your words and ideas becoming a part of creative commons. This kind of an environment may sound extreme, but you give up your data to strangers on a day to day basis. Every click of your mouse inside a browser, every photo uploaded to Facebook is another piece of you beyond your control. Our environment is merely an amplification of the existing invasion of privacy.

However, for us the most interesting implications were the political ones. This device could enables people to cultivate selective hearing. This has astonishing political implications. The user gets the power to silence entire conversations or perspectives just by moving a stone. This could very literally lead to an echo chamber, an augmented reality (or rather diminished reality) in which all dissenting voices are silenced. However, this too is just a natural extension of what the filtering and feedback algorithms of Google, Facebook, and YouTube lead to.

We wanted to use this speculative intelligent environment as the stage for a performance that highlights the invasion of personal space and thought.

Through all this speculation, we realized that, while our hypothetical intelligent environment is far from anything we have right now, the underlying principles and consequences are just continuations of trends that are already well underway. This leads us to question whether the narrative of inevitability that is so often associated with technology is real, or just an intelligent design decision. Another idea we were exploring was the relationship between speculative art and design, and their ethical concerns. A particularly haunting example is that of the dystopian science fiction novel Neuromancer. This became such a cult classic that much of what is known today as cyberspace is actually designed around the speculative reality that this novel was trying to warn us against. Our piece serves as a commentary on such a cycle of progression, while very much partaking in the same system it references.


Max Patches


<pre><code> ———-begin_max5_patcher———- 6022.3oc6c01biZjs9yd9UPo67gcqxCC86PxWR1T2JU9PxjZmj5tYmIkKr.a SBBzBH6IYqc+se6W.DXAnlVRLV1L0T1xsZf97bd5yo6yo6l+8qtXw0oeJLeg 0WX8AqKt3e+pKtPVjnfKJ+6KVrx+SKi8ykUageQQ1lnEWp9pn.YgoW+auwCW U3Z+hk2Ekb6UYgKKT2aDkZ6boEFgE+BPbD+BBscr90xKJYypnj3vB4SATVn3 gIe.+YZ5pEaqY5lhGWUUQE+w5P0Sbwh5acdweDKKcwBQA+mW8JwOtTSANI7A t3U8vKB+jTjV7uVEVjkZAbr9J+kEQ2GZA5BTHUEdSZRQdzeJaG.tf2OVwHPa ByCBwWZQ.R7BBFFufiCZt1O41NgmFs0D+UpB+5rH+XS.tkoqVElTrCx89vj. qnj0aJrDOjbqhTq+uveOJwuHMqCLD.GOFBfdaAQ.vShhdHIJ5rOVWaTz4DCS WuonHMoC4FRVLj.R4RSaADhq94XjuwyRLPH4p4b+aC2gK71GpT7ucIGMyRie adXw2IHG+fjajGGEDlAJ+Mr72npaTbTR3xzMIEM6Ez.CotZigDWI5QkPIhbj 5pcr.v95L8c+v6+o+9O+M+z28te38eL4myCsJtKJ25gnh611ox5u7vCOXWC0 1oY29W+XxGS9IQUy4cGysPV2D5WrIiC4ax4vjUP3M9ahKJ6nVp+rD5q2JKJ2 xm2MtpVqSyJrnXrqs399Cu6m9e+BK4cOMI9OJeD0OfGtKLwxuTUZwqzpz6CC rs95f.dwJ6pbkGWOILMHt3sWqeAuJbpRdgeRgUleQncmbA.nCxf23Mj3RZPQ fptYHpxIF9okgj9nH.HylayyFHf5b9iwxO2JNcoe7co4EV+kH6P6KUzlU9B4 O7u9kV+Q5Fqk9IVKuiaEPPpBsj0969QK+f.tlH2J5lFLL9EmsIIQvbREJ2fn atILi2bjWV25HztpHliApHWuZUDQoaPTnb3FryPMTMTK5eI5RUUnrO1cbP0l 20Jj2S2OKz51zz5dg41V5ZWjANPb1Az.mQnyCb9qCt2OYYXfUQzZt8HNs868 +za+92+ibadgY4eg0GS.1VBinq8+8GaBRPqS9iJKQVaVGvM97k7ZtripxM5w qOfqEaW+Ol.ss99e98+j0c97gLllDZ8wE.6OtP1ZBuOLq9I7khFkTwyAuq4F JSuort4hNv7NnYV+OhBe26+ls1GiR11or6dcjNXCFLBKWFrlMfbj9NQtxAfv NSrK9t0EQoI9weg05rHtgJANV4miqIEHOmdHc1jFG1w.zX3wCadXbMrgEc6E n2Sxwk1y7djXUWfgAyzwSvapACkkardyLbZwB0PU5RpoCL9RWgJ8QicPNwW. du5509Y7VcQX1UgI9WqDJmOOC8regmMfvybYOuE9glYQyoveFK78XBnv5Zq7 NfDWCFTACS2ZB.3TMZhwaB.N3zXurGPYJrX9t0gIum68M3aTyvkSEbb5JVQN GH7QHJJlQ323HSSimlv0hQS0XNmMet23urUeilH4ARDQL0L7.tOSPR9nY4Cr U9+tHdvCDtvxYAv1SPcQmIn0lf0xQwucVYhYg0EtgNLbi3r0mvSuw7z6jn1D Dk9wj2k712cyM5NeSX2TLfMwi.bY8iWpIX5xgH.jvgL4vCQFBUBYXYZbZl5d 6Xi.L9i+xN+Dnwy3Tgwg+Yf+x+a08rUSyCRvdx1CEybnxOgA.FscKqIFiFXD Id1bzyk6ZkJfQrzSAduA4TFkn8iqWeaqltKA4fIW14m5AUM.6V6mDF2UXyqm UV9c9AoOH9h2.FfgoPFGEx.TiSi.1GC65zL9.CaI2PDA5guruO0790AHlIFh PnTNn8R6VkFzxoGerMkiPztGkgyks+AotYrNKUDRI9bfU2.jmAZg3n6CsE89 6PSPGZ9A.hD3QdpbyH6lCAl0uVY8oY+ZLg4H4cHlHJ+xO44R.r1LPkRT9.rq hKxusIuH5lnk9UHScxHyxReP0ZNhlS+Gc.bXhgVKQbmHPD+eb4jv4vRFcYxu NVlL0DZOUlLGhvgGZ13HUHKIDjDVffJd24.iCdDYb+RGHGxyPFmmHLfXhqmv ioCzszJ5KHNGXHutDtmO4.W.NUdXd4R75xTGjZ5.C4CEDR4+iKwhfp9Ri2AG x4JUDCEta.Al3wmwwKbh2+rK7y0PhmKhvmif.PccPpYk7Bh1gbFJf2HVEz.g urGVWWTNDxPJGAfseox2FZUER.pIu8Rgr0S.qhS8CDItzJOrn6H74Z5v6DNR XNNN.Hejypnh5oILeWTPPXx4X.myS2jsLzB0EPZbWXFoFHopECKPMgjwRX+L haa3l51zEpLXmTLzlvMaIoPdxLd6x8fxH5DxS8SFFpOXQltZARLLBEUDtpbg PuHyOHZSt3JtT7C++LZ0lh6p+6v3v6U8rqqw04Kixy8qKfaSPrFLBqK3tvna uqXaC35auIJNVZv4ppF6haEO3FdSZVI4OA0FmpiNHl33ohaISUVKaSO9F.2F qJOHPFUQwU4.keh4hQf8bGpuAdN.OUXI4M.Gr5S7hF3FTGsJHqY7p1VgcCIU W2kMEo0HknZFvjuINkSe5hJSNFVJUz7xU49d6eeSZ1J+hlA9SeZeuo8TP5ll 048.IcR0QhqH6BooGCSopbmvXCizvyLOP2lktYcman.WSSjBFHSKbouGO5yE WOCMeDDyqL7KmINdNhdZp9yrv3G4NiWR0yY1czSc2QLS6t6pxi0rmHkmnRFe OthbOPipJuPtzmGdgpmOIrq08lwSkTLUcFBpBFIy4reVj84RBMXjYkn.sDE. NZtzO973N5Z+7nk09M3B+eeqalnje7N+7vYWHOQbgz2Nrak+ZAU2ZYzxtbvP McT3L9XopVhqbtrJvjtdmYV.2Cp0EfY5DDY.pMEnXz0.FE97vkwco91hkxjE vBp4hzjXJPVtxQb4SCT4Jw0DLz4yGPgBrCBWlFDlIvquRrldrtlOH9MY9w5B d3CD71lo98LnE73FrWdzsIBon9SeNYjbfNccQzJALW4upCrDbXXIiOFaEVRY lfkXswxKeBguqsjqo8t1G.D3ABn.nl.5H2WDFAYMatp77bQMRwufnXwt1Kuc ddtXg+50MJ9hFWh.d+M0nNJgBQQQIphf0EkEdeT00SpK0OiCZEbDaSlpQ9o5 3nUt7.yR1DUmfIoh9UU2vJbFplbHySsTGQpccg6VTVL7j3zk+tZ4H5TUX55v jnj0Yg47ApTmaq5utbandU2qF51e+irs09K6TCbAevjQAoIhFQKnVTb0iSvg TaN6lBirFI9q63hU6byd9xbtPtI+Z+LglnbT2UJnEEoows+p5qKN7lhxudcT RxiPwBtMod+xLQva5+quNk+kqF5dK+l7q1jn91q38iKtJ2+91ncgebbYG612 9O4mDsxuHja0TItN0eoZlG2kuLKMNtk7p9l663aB3j3kgODEHB1TiUop3a3U OZcEIZQsVNH51v7h1kU3ead6R1oqKunMWW1I8J9bXVGKBJVqJz5rtoYOxll. aU9NKWa+f5kq8NGSInleQGV2fNpz9o57s6Rvt2Y+0u+2Q5CtqUc8EUdDJMVX HznZD8.MZhLhiiC4BURBMPCgFmtk0FkVslM5CC1Z3Prn.5gwHEC4hVnSvQkC 4RERE8vps.w6BTHhcaYWfOTCVOpdaiARSYKHJWzqKndBi8JERTnGwXqoVw15 38RCdW88aCrQCSycKnMlGaiJznF7duUQCPUqKa7UOZB3XP0dvfO2e0TwEAAP LTflHR40UG6.b8D9wTHSsgCvtPDQtnMb53RgibR+Wzd012X19WzyZou00007 6aqu15mVEsGdM6h7tXEWQD07dzUW1ZkpxD+eKdS3a.5pP8Wtj+ve71jghYBn gVizdhhp.ooRHfm4Bw2lEFlbPpB4l3fHVh+RtMf5xY7Ss..OeEfeILNN8A8U AMGK6Gjilk34331x9bGRoKTtNwbrYt.WfZi23Qp2.TSmfBeNKnxyEkuMMN3f 5Rwp2fcDOHfHkFPSW.GtPTdOptAKDiGO3J0bOtRbHGFc8lBkK5lStbTiQlOg sq8iKGAbMFMz.l2Np5Ws0WzQM5Kq7WKh8RWqjNB5.CR.EoYPBPOih5Rcp45J r96aS3RbLcIuWuNJXXOEpqVEnH749Vi+f.Trw4B0AZy777bcEPJPkK.O9reJ WVSmQ3ZuKcArorMrZIJwsIWtmueYr3E5GHgFuP4bmAxl.ooKlFBGy7nTFh9x CMGXM03Xq9eWPs6A14uxnH.ALw69SvTJWtlNsV5mY8Zf0qgVutqwEgNTji5U hb.2mYKGod2dKXzAOvl5Lx+LX6szGCrbes.rVmFODEDaZxkYHT03DIkVIAvy sU3PutOHzCFVnLmC04AuRQq3suVm4GOG7nHlx35tdwBPL0ssKlTg6dXEtigG 008Nmq3W74jR5d3PygSIedy9LcNdLOGaFyC5wd9x+nNGCvYlA13P5quQTSAG tS4pw3b9MnZQ2yU9qqto26uMBmke0G.+ZGmiZpi7hl+ntotmUXGEdv3sKtbc LAgkKy68d3u9nEpQ85PUl8zFQlpKBOXv0C98QgOLXGf3nb4BDu0uagVcuvnT wxtNH1CDN668i2DldytKHpsRC2Pys8qYaU076RyJzrtUhIpiuiOdpBt3rKP1 UsJwpqTCk9J4Rgp3p.+B+qjQGVk0eNQS9+2v4aPWRYFFcfHQFR3d..THRjoY 4RTu4OjjzEstSP4cxw1yyAKN7+dC+i3xOxuUNdLcuSHUyR7E7ahC.54pR7Fz CBAZdSpdXs+wNkzwURL9JoFekLiuRWiuROiuRfi4WJv7KEZ9khL+RMmHALmI ALmJALmKALmLALmMAMmMAMmMAMmMAMmMAMmMAMmMAMmMAMmMAMmMAMmMgLmM gLmMgLmMgLmMgLmMgLmMgLmMgLmMgLmMgLmMgMmMgMmMgMmMgMmMgMmMgMmM gMmMgMmMgMmMgMmMQLmMQLmMQLmMQLmMQNfAfaNahXNahXNahXNahXNahZNa hZNahZNahZNahNZ1zUxzXtyDekkVOu2ExcAZ+ylrp1JYdwhK63bJ+QUEoeUw 5WUh9UkpeUY5WUW8qpm9Usbhj5UWvHp6HTXfQnw.iPkAFgNCLBkFXDZMvHTa fQn2fiPuAGgdCNB8FbD5M3HzavQn2fiPuAGgdCNB8FbD5MzHzanQn2Piw.4H zanQn2PiPugFgdCMB8FZD5MzHza3Qn2viPugGgdCOFOaiPugGgdCOB8FdD5M 7Hza3Qn2HiPuQFgdiLB8FYD5MxXFRxHzajQn2HiPuQFgdiLB8FcD5M5HzazQ n2niPuQ2mda6tioUphZtmveUy84mQawh8m6yiahOQG1gg1SxrdBN6x5o1o7b Nemy46bNemy46bNemy46bNemy46bNemy46bNemy46bNemy46bNemy46bNemy 46bNemy46bNemy46bNemy46bNemy467bNemvfieJO69.un44qvtua4jI6DCT 43r7cPAy8yWpN+yzzpSEhyrrcpznefn417rEAXNsmyo8bNsmyo8bNsmyo8bN smyo8bNsmyo8bNsmyo8bNsmyo8bNsmyo8bNsmyo8bNsmyo8bNsmyo8bNsmyo 8bNsmyo87oYZO64XANeoebn3TAFXa8Ffi3CNcd.AiHKF3MXhq7kCAR95XlO. OjZmY1W1JoGgy+2iGDjYcmeRv+rKYlteYFhkuevHvgEYmmThr9Zc3.H.FiO2 05+itjYv9k4JsN5bRqKNBvqeIcrzOqHLOxOo2iDbnmF5dlZl8D2gABxSK5u0 2bSGBLvYwPuW.kRJRoxQ6o6d2qkBmihP06wkumFMe0asmxiBe3SuiB+imRdU QZWJYxffjhF6hqd6CNdc7mWS5XdmYpi5MmE.x57sYjF.fhe.JeSo+Tyhduc. PCHZkdqcdwv+y6cXMvgbvgbTCkS8Nbff+7YmaP4pKG2vgreqdQQUIVjmfluA t6WsTZZ5YE+se.wau5ymi3wfF34jbtoc4O.8LtMvPyZA5ofJLo9MD6Y1.22A GjPQW3.Y+zmJGcnyKGcfgbhCopW+NN3ZU7KD6En8qve43+eSxZ+kC9VTE.1K dAXpCcKOS7WhF98J1k67giDfz2KnxWirdM150jNfB19QBrjyPXCiDvmVA4f+ .CsV6G2U2E39kYG43jnFIyCx+OVx8xzUqBSJ1QveegeVwhN1dFfN5Fz8K.R3 PaOC0KZOfZvjp4L4X1fIEM4F6xDGaOWJVlNcaGOfqL3w1.J1SrV8atoSl32e b+KtUurTNkv5q7WVDcenEnCNk63gREUCq1TMPvQs60z7F2qH81aiqM2r7tvk +dXfd6bnl6Rn82cDTQzzgtoumppq35aMhHtCpGkL3KMxMI6BQ6lXDqe83wc8 +ce63P+0qRKhRS5xSnozVk6QO3oORQZwXkW3h3nD0Nm5C0vlT.Dk2F7JWBWp GqLDhDQVppe9Ag4EQI9RTaakXtspz1WU0UvUPTtfwIwWmNUiG21C6IV6gNcs GrFsGJd5ZOPMZOdf8zdVEErNkaEojDyHDaByCJVnPkIbXmh19HOdxBPCYw8P jEO2cjEO2Sir3nidAYtrfYzGKKxhNExhFhBvYxn7t5zdbI8zd.G+1iqNsG3z gOLcZOhFMXZZOTcZOnoCezwkhrQOQ3Ct0iZf1yDgOHcbwMRSWDWhMzwwQrVj odH0J3P8NqWrjg5uHLeFJCTjKxUUDzlT9Wm.KftvS.jT1lodjx2uzOpfSgbn iGVOmCvqjJcO6TzoRV.GaYg5ssgi2YjOxh9bIKLxzYBvQGSRS2rRzwCKXxZM LcF.BhMYC.goC73McC.gwzs8LMNXYTcaOvoo8nCad5nyT2SvTU.PFbqYSW1N VREEcBrjR0QWSgizq.2irSYCmpVgFrliTY2hXtx.4yvHajz2trfSg7RNExKj ZC3Mawh6WzvcYjGKK7hNERiNQWgL5wYYKa9tkCyBPUybtrfSgXnyvrvSWPhn 5DLBh2z0dzYBXSVqgni6bJXxbWQzwdLY5BAKgoK9LMtOITcaOSD9nkQKxz1d .5zdlH9rNwSfrO8UqbW83Mn9IvFtrUCzoUCzsU2Za4eBa0PcZ0vmZXMRmVMR uVMXmyAgSQqVGu7D7SMdsNgZ3QlPdBvqA5vqwO030.c303mZ7ZmSvTJbc8pm 8P8mZLiBUYmBoQmI2NY9lwdmf.ISAPaX4BOk4wJwzxnIWUvI.Zw5LPUzzMPd rNCTEOcI9BiOFcjNhsGsFHFcOwsr2N1Tpi8i5WWVzof6A0UWOMSJA6na6Yhz 05npmrVCx8Tj+LFo1.G6QF7NIQmRFRevgNQlGmXTppQW9RVtJ3Tp+9THD5L6 YzDRMzwAsXmQagml1CT21CZZZO5LKCzz4DQGeHSWjMgdOsVNdPsBG+z4FPGx 7zEIQfNZK3zsRx.53VBNcQRDnisYvzwd.5vlAS2rm.5LpFvzsRo.5XLDLc9R A5DaGzz1b1WPa.3os8rW00DhO5X8wvViZiI3ud88gY4k2RYCYwJ+eSENI1kx +LJQ8mxc5yhrPwofkp9xyPlE9YKuKpHbYwlL0lf3StpcNyhUoAgYIahJOvr3 PvqJ2AEOZyPrc+SrIHJ88E9Eaxu56CS1n1jEbQ+F+MwEsgqqu8ln335fe07k RS0V2nLzXkGlWOJ7ddXf7.+jOUTDSdzTZi3ePbPsU2Eo7Z.UWDlf8bjwDDSg L4YwmM1EhjmZbaC1V4kA29rb.dpmfimqCV8IdQfVwniikI2p1dIPV8KiHNeI KccZVkhmeod00eSQ5sY9AQhsbWkFt93H6xR1VF+ae7FWYwJNfFUcMMYm0JC0 d24uEuIrZ63zshve4R9CnE3h.Lp7DEzlViXdhhpD3iXC7ayBCSFcKTFhTBR7 O01nxkBYG+F2uDFGm9vvstlawoOH2jSDOGG25N0cz5cgD4AaqMyE3p1QXDOh fOdDEfMqtNL6aSiCFM3JzzNR9NwCBjGQg1fl78w2.4Wy+4U++T3qdDA ———–end_max5_patcher———– </code></pre>


8 Channel

<pre><code> ———-begin_max5_patcher———- 3235.3oc6cs0jiZiE94d9UP4JO5wgitvk8ob4gr4grSpzyV6kIS0EMVsMYvf W.2yLIU1e6qt.XrMfkTaSOSxlK1Xg.Nmy2mN5HgNp+sWbyr6y+.qblyew4MN 2byu8hatQVjnfap+8My1D8g3znRY0lEmuYCKqZ1b04pXenRV9s+iu+0e6e04 a96u90u5ucayoSVJOY98+xKQdMEtMpJdcR1p6JXwUpmMJ.uvcN+Kh3K.Bk+x cgqyaqunrcaRxRYURo.1WX9tplRcqKsr5ioL4yclnfe+EuP7w7mpB95u9md8 Wd6qe0O1nj+bVOpI3NhZ5Qj5mmGHUSh2ymZduT7XEMR6iIr2+XRYx8IoIUer 6SO+gGJY0JfqPf6Juo4wuisbYQzpx3h7zztBXbZR76pVWjua05tkyxhtOks9 zKPchGO8D2uZS9R1AkjWrjK7cJoKUyeLplmjbgAjBC7EeQfgvflaeVzFkw91 7cYKui+YQL6tuccT1JVwBtok+nl0Kd0ZGkEU8wsLkfLalya++.2g.GcDfi.3 Ez4NTWprUCR5w.BnZib+Px2d22mscWU4n3EYH7pLYUVT5r4idjUXZF68b0+D WNo4QKumSv5wMiev4cy3ij9W7bU1Ky7xLHqUJPs2omlSnAz6sErsrrkN7mTJ u2odzdeMz9PuEdHNgIDeQ0+KktugUVFshchx6535Pn7OBEGAXwgPf3XDRbLx WbLFDGy+29rNdZXc7PJqCxyebyC54w7LT2ve8tkI4+b1qx9xW8vCMmMMIiEy 8KW0Uf65WA0TyGxypJS9UobAvBZHEB7GwZI6jHf3t.DFKpz1gQ10gsPGhySy KZbIiAe9ieduG0sCoNVxNpQqesutHg63wBaL6WWFE+eatmGHZgHJITJOdDeW O4QD.78NTx5Ziwiv5BEdtCvXEmiH8fSnmixw6iJJ87106WcfnGPwtD57dOZ. qpE1tsQYrz9BykzTX45nk4uWbhWBivvTVFWkkAPRm0T3bLLU2nGn2HLEERlO zQcue8XDKDg0vj5g2fzti6LW5fVVvhA.CUTG6+f1JFaKx2lWTkjmotA3PKPg zjGYKDs96AI7FqSBfJM73PYvfpXAQfcsqUde51tlP8ck7NrOf7vxiBCnf+gL v8wBw8DUW1urqrJ4gj3nFKSyyNpnH+8Jo4B5N8e1igiPszaIl2KBBy+GtdR4 bXIiVYfCuTtL0zzdsbYNFgiLV+tXW4X9nTrzrffFd2mCLNzkMlVQnONn9hbI z19oEMl8w0wz36pWy40IKWxxtTw.dQ4Y63sV20iEBOZjuRqPSjcfqlA9uMpf KuUrh6Tii6fAOcfAAOjAIQ3ZQXCF21jTw1T1NNhxjXwELW7AW4+IV6uRx9w0 Qkr82p6W8PRZpjxeWyic1phnkIcbp0sRxOg1lGsQyPntgp3r7UkcPqiiuAn8 8sFh.YTPhqxEIOxOffgybGZuAgtPnJLJt.3RTGwKZjaPauqH+t8utuBm1EZe 2kcU4sVJQ0tbskWmGsPDAoC3fbvNDGpimiuSP2lBODEyFXz9Ta6mgfoxnl7I 0Lc+vwavGn6DocQaCOhUCubwRtGbtuXgw6qhWGkwCmrTeSG4IZ5P9ZZ5H8Z5 BdRyQxbsmKkmUDJeaUxFA9z3NpGb.dZ3P6jTXIN7TmqpmU66lnsBqKoO6J9I ZWoj+HaWEFPt0qcJfiJZumhSgV18rc5GREzY2OZE0y3vwqeGN66WpuYZWNwa DjqJhWuvE9seOdDIkQOdffv0lVELNIdyrQhbALKxkzjRYnKG78AVkifqNh3x 6hppJRteWEa+Qk03VMvIPmzcr7GZJto7tReZd1pdPv2Pea8i6fZWtl2o+v.9 A0sQSw8btjrjJtFcpsquZUattqT8hO1VvJYU2sLpJ5NIyWVL+HP9eujSsPAT eUzMtHb.+HdfnfGBKh8QF+T2Oj7wYGbmPx6j6hvPWhXdmdI+PR8g7akanut2 IrRrDmfeSbATXfZbQnPDBz7lz7vN7iSJomqjZ8U5Y8U5a8UFX8UFZ8UBt1eo f8WJx9KEa+kZOQBrmIA1Sk.64Rf8jIvd1Dxd1Dxd1Dxd1Dxd1Dxd1Dxd1Dxd 1Dxd1Dxd1Dxd1D1d1D1d1D1d1D1d1D1d1D1d1D1d1D1d1D1d1D1d1Dwd1Dwd 1Dwd1Dwd1Dwd1Dwd1Dwd1Dwd1Dwd1Dwd1D0d1D0d1D0d1D0d1D8ID.t8rIp8 rIp8rIp8rIp8rIO6YSd1yl7rmM4YOaxyX1zcqJx2s8jA9JKscbuy.w60Z3QS 1TakNOa17ddE4GUUr9UkneUo5WUO8qpu9UMP+pFpeUqGHod0ELntF.XfAHFX .jAFfYfAfFX.pAF.afA3Fx.bCY.tgL.2PFfaHCvMjA3Fx.bCY.tgL.2PFfaX CvMrA3F1DGjFfaXCvMrA3F1.bCa.tgM.2vFfaDCvMhA3Fw.biXROaFfaDCvM hA3Fw.biX.tQL.2nFfaTCvMpA3F0.biZRHIFfaTCvMpA3F0.biZ.t4Y.t4Y. t4Y.t4Y.t4cNbq4MjczqJRlHJ0uKI04kuYylutLu93x3nTFWP3wU67RP7M++ cW302xkZrDJgFnVCn0YBDJb7kKk2yyBge.iPgy5nrk+69zYuyqyHUZOQQiqx teRoxlf6nwRjHUJP74Lt22x1ECmWmavc7mS391n24nF3tC1INpnhUlDk4HA+ 9VA9gisLbUqGDQtjIvdZv3FB5yig3gzb9SrOLdDUKnNaRkpDUy094C4Eahp5 Ry0e0fhFzLLeRRSrxAcAhFqo.3KsPXrpo.wlrCy85qW80DGMVxEiPJ0pdcl+ 7oVCxdgfyCKnP2+vweG1fDdV7rNk3+SQ6YY+6bRN2yt7CX.O7vXQ3.pb1CQg E9gggAhboCg+bpK9SrCRSQe1A54oOeFXFFt4A47Yv0eD6uaXCB97.9ed5+eW 11n32ohCb.GEvYsWfurQQPnM8WN3pJkifQxkS5QGbkyc7u.67EDmuf1WpUcd KAQ0y6ml4C9PCGh+.YNaiR6q4B575rZyjvtbfeT9+0NO3ushOPn9xVDnmlA9 8t3sQis3sIJ6iJXxfmx9TyI4vYXfGQ9x2V3FBAxoZZA3QBON4xm3rR3+v85U jyoDNeUTbUxiLGnGNUf4lREUiTmwmvEs40ftYunVrp7UhTQqIgBVyD6cL5kW Acygfy2bDZHZ5P2zumJn+jSWWhXuo63HF8cYmZhNcZTuj6TLQuKZQJKZ6lbY 1.1iK.aosptGCQW+8PEsXrxKTl+yGsqkIU.YhYefwqdAendr0sec1qDKYkUI YsY97aZMVcpy9rDtwXsLoTv2VNb5TpqzHR34yJNhb9sW4At7xiNlGw9KyTYe 70PdDIC4nxyljkay4sYqoLdTrJGHqSTZhZ+Ho926eXWNsvSGqp+zYU0oMvz0 HvinCHiMCjwHYd.RBVD.c.4lBtBnrNfbvjYToZYToSq7.5HOvzIOHcjGzzIO XcjG7zIODcjGxzIOTcjG5zIOd5HOdSm73qi73OMxCVG+OmqSlC2CMNZM0dE7 gKkZPGoFzUpOXkDeEkZjNRM5SMaMVGoFqmTCmrzsuFRMbIhHcxs0fN7ZxmZ7 ZPGdM4SMdMnCul7IFuVNHS3o5u9nfvUuhF+vCGnU8uuFJgNwfimtfdO5Q0u7 HVuJSTPTXjtxyzDjIVGmoGIzWS4Aoyzw3Y3zMfCBVrm7igvd9kanbORQMnU0 utBMOP95B+f9pGxWodtf7KjZ+MT9yqgJPuDyUvEVd.cjGX5jGjNxCZ5jGrNx yz3wQGGfS2DwA53uQrnulJ4Qmo+EMcyLHnS+4vzMoZfNdeNBTupxiNSxGLcS WOnyf9goK9KPmg8fmVw4bNmAxzJOmEtlP6iNderTZTu3vnsaejUTVeKkBxrM Q+hZjVxsUPd3MYpeJeS7yJXhbZQUe4pAeVTQ75jJVb0tB0Ko7CAp2rsb6QuH aWRc5uvMAun9MbdzKqb+62T7Wyfaqhp1Ud2Ozti+xU8Gh1kVcn4pyl55wawb saItpyVmZNGMx2PBz7mX.rORsWzJ1EbocZhTeMsabtj1c6VhGxWsW5SBPXYN fsebn0WFxvc61Naf7c1ha6aqgus98sY11lbQyqYaE7yd7KVd1FtAMo4Z5xNa AC06V+aR2wZdc48CDQww7Gvw+kbvSlefK7ZsXghhZT3Kn.9cELVlwRnb1Cnh MmcrZYND3g7u7B2+hkll+9wkttKAg2HWDBzPW2f1F08H8AH4VYt6B+.HPshM ngz1+hNbYTfcatmU7c4oKM13529GICZHBjIb3BnKe2bAjeM+9K9e.jWi88A ———–end_max5_patcher———– </code></pre>


Sound Source Switcher

<pre><code> ———-begin_max5_patcher———- 556.3oc2WFsajBBEF9Z8ovv0ta.jYXl8UoYSCpjVZTz.X2ooou6q.5LSarpM oNQ6MZ3ebN7+cDOG30v.PZ0ItFD8mn6hBBdMLHvIYEB5FG.JYmxJXZ2iApZL EbCH1+ShbuX5S+BcnWrlYxdTHe3dEOy3iMBs+2v3HLMwdKA1eM5uc+GYSoP1 FX2jftH5mNmJrSUadof6l19ILqprjKMdMqzagg1KwyjII+esDzGMC+jOTEUr 7RtVGQFBW5H3tyQKBevdihcni+Zz1q5kLuTy8gF.NGkqRDK.zICA89ogFh1v PiGB5cSBMkrgYFMDyjIYlPWyL2TlxUCAVxHfgot0tH5Q6scv4gVMSwJ4Ft5d tjk5MMbPrweJ1wQfTl7gkGe7XEoOl7SGezX3i2+SGe3zku27zm1XLUxAner8 mjPbK8O5piiOecB3Ubc61NXFQ6780q08oPOP3e2Vo7ekB+nU+NyUi0mOAR2J 4JJc4SUjQanf2JoJBd4SUi07ASfalu.gSlpbAETHje7vUNxs5uO+oqZTY81p qXUzE3y4ZiPdFy6trWlqdnGE44b40UfyEZaQY2K.3fuHmqc1OG6fuY1gLG6f tY1AOG6.uY1wdzz0zhGzJa0i8.cqokOHxJa8Sxb7ygamevqL+fVY9Atj9w2J iUW+LWo6hoyJsM8epRYGRicCER+P2V8AJ9yh9memSgoZa5aZai1n78YOcvuO SPYUNWIaDtt0g1Y9sv+CYx.rbA ———–end_max5_patcher———– </code></pre>

One handed DAW https://courses.ideate.cmu.edu/18-090/f2016/2016/12/07/one-handed-daw/ Wed, 07 Dec 2016 16:08:54 +0000 https://courses.ideate.cmu.edu/18-090/f2016/?p=550 For this project I wanted to do build a digital audio workstation that one could control entirely with one hand, and with as little keyboard/mouse interaction as possible. The leap motion controller seemed like the easiest way to do this, but I was stuck for a bit trying to figure out how to control so many different parameters with just one hand. The gate object was the key here, in conjunction with the machine learning patch we looked at in class. Upon recognizing a certain hand position, the gate object would cycle through its outlets and activate different subpatches that recognized different sets of hand gestures. For example, the hand gestures in mode 1 would control audio playback- pause, play, forward/reverse, etc. The same hand gestures in mode 2 would control a spectral filter, and in mode 3 they might control a midi drum sequencer, and so on for various different modes. At least that was the idea in theory…
I definitely bit off more than I could chew with this undertaking. There was way too much I wanted to do, and only a couple of modes that worked semi-reliably. I intend to smooth out the process and eventually have the daw be as fluid and intuitive as possible. One day maybe a disabled music producer might be able to perform an entire set with one hand and not a single click.

Here’s the (WIP) patch:


3D audio visualization with opengl https://courses.ideate.cmu.edu/18-090/f2016/2016/12/07/3d-audio-visualization-with-opengl/ Wed, 07 Dec 2016 12:39:40 +0000 https://courses.ideate.cmu.edu/18-090/f2016/?p=547 For this project I made an audio visualizer that manipulates 3D models. In this case, when the signal goes above a certain threshold, the model is stretched in a new random direction. Additionally, using an fft, the signal produces a color based on the loudest detected amplitude, with red being mapped to low frequencies, blue to mid and green to high. Here is the max patch that accomplishes this:

But in addition to max I needed to write an opengl shader to manipulate the model. I also decided to handle lighting and color in a shader as well. Here is that shader:

Expressive Guitar Controller Project 2 Steven Krenn https://courses.ideate.cmu.edu/18-090/f2016/2016/12/06/expressive-guitar-controller/ Wed, 07 Dec 2016 04:14:54 +0000 https://courses.ideate.cmu.edu/18-090/f2016/?p=540 Howdy,

I wanted to make an expressive Guitar Controller using Max and Max 4 Live. I used an old guitar I had laying around that I wanted to create something fun and new with it. I used a bare conductive Touch Board ( https://www.bareconductive.com/shop/touch-board/ ) for the brains on the guitar, and an application called Touch OSC running on a mobile device.

Here is a picture of the guitar:


I used aluminum foil for the touch sensors which are connected to the Bare Conductive board. For this demo, the touch sensors are controlling my last project, the drum synthesizer. The sensors go from top left; Kick, Snare, Tom 1, Tom 2, Tom 3, Closed Hat, Open Hat. Then the two touch sensors near the phono jack on the guitar are mapped to stop, and record in Ableton Live. Also, there is a stand alone play button on the top right of the guitar that is unsee in the picture. I plan on using conductive paint for the touch sensors in a future generation of this device.

I also had an incredibly hard time working with a Bluetooth module. The original idea for this project was to be completely wireless (other than the guitar jack, which wireless systems already exist) and the Bare Conductive board to be running off of a LiPoly battery. I sadly, couldn’t get a head of the correct bluetooth firmware on my HC-06 module chipset to support HID interaction. Hopefully in a future generation of this device, I can make it a complete wireless system with conductive paint. I wanted to focus on the Max and Arduino plumbing for this project.

On the Touch OSC side, I created a patch that interprets the OSC data to changing the parameters on my guitar effect patch running in Max 4 Live. The Touch OSC patch looks like this:


The multi-sliders control the Delay and Feedback lines I used from an existing M4L patch. The first red encoder controls the first gain stage of the guitar effect. The second red encoder controls the second gain stage of the guitar effect. Together they make a distortion effect on the guitar. The red slider on the right is the amount of reverb time that the distorted guitar receives. The green encoder controls the amount of delay time that is taken in the effect. Lastly the purple encoder is the amount of feedback taken in to the effect.


In Ableton Live the guitar effect has this UI:


The effect parameters can be effected here as well, as well as levels, and a master out.

The drums are pretty much the same as my Project 1. Here is a link to my Project 1: https://courses.ideate.cmu.edu/18-090/f2016/2016/11/06/drum-machine-project-1-steven-krenn/

This is what it looks like in Ableton Live:


Here is the code to the guitar effect:

Here is the drum synthesizer:

Here is the Bare Conductive board’s code:


Also, because this project has a lot of part to it, I will upload a Zip file to google drive that includes all of the files you would need to get it up and running on your machine.

Here is the link to the zip:



For the future iteration of the device I could imagine, Bluetooth (wireless), battery powered, conductive paint on a 3D printed overlay, and a gyroscope. I am excited to continue working on this next semester.

Have a good one,

Steven Krenn


Project2-Mingyuan Yu https://courses.ideate.cmu.edu/18-090/f2016/2016/12/05/project2-mingyuan-yu/ Tue, 06 Dec 2016 04:57:06 +0000 https://courses.ideate.cmu.edu/18-090/f2016/?p=537 In the movie Hobbits, there is a scene about the hero face a dragon. In my point of view, the dragon’s voice wasn’t sounds nicely because it did not have much reverb on its voice, which does not make sense because the scene happen in a city in a huge close environment and it should have lots of reverb. Also, I want to add some spatial effect on its voice, so the sound and video can be more interactive. In this project, I extract the voice track from movie Hobbits, split it into two parts – main voice and others. Then I use leap motion controller to control the sound image position for the dragon voice. Finally, I add a reverb to the dragon’s voice.





finalProject: Halftone It! https://courses.ideate.cmu.edu/18-090/f2016/2016/12/05/finalproject-halftone-it/ Mon, 05 Dec 2016 23:18:10 +0000 https://courses.ideate.cmu.edu/18-090/f2016/?p=534 This final project is a continuation of the first project. This maxPatch has the same conceptual goals as the first. These goals are to create an image renderer which turns an input into patterns of circles. I want to have lots of control over the dots, so I put in variables to scale the dots in various direction! Currently, I am confused why the image renders 90 degrees from the original input.

This patch works well with images generated in photoshop to produces interesting patterns. Conceptually, I am interested in creating patterns with tons of human artifact (especially digitally), but are they really artificial since people are a product of nature?


Project 2: Tweet Generating Sound Art https://courses.ideate.cmu.edu/18-090/f2016/2016/12/05/project-2-tweet-generating-sound-art/ Mon, 05 Dec 2016 13:53:34 +0000 https://courses.ideate.cmu.edu/18-090/f2016/?p=519 Can I use Max MSP to integrate data collected from the web to affect the sound of a musical composition?

In this project, I utilized the SearchTweet Max Java external to search the Twitter API.

I began with a simple song construction:

While Max is playing the sound file, it uses SearchTweet to identify the 10 most recent tweets of the search parameter, and stores them in a Coll object.



A number of operations (word count, letter count, number of uppercase and lowercase letters, the use of exclamation points, etc.) are performed on the text received from the Tweets.  Based on the results of those operations, values are sent to grainstretch~ object to manipulate the track.

Operation values also affect the voice (using aka.speech) of the synthesis engine speaking the tweets above the affected music.

Main Patcher

Main Patcher

Sound of the affected sound file.  As the variables will change per each refresh of the Twitter content, this is an example of the types of transformations that occur.

(Max file was missing in initial upload)