Category Archives: Assignments

Hi guys!!

My patch is a really simple one and may not display wide variety of techniques but I am still proud of it. I joined the course late and was feeling like I was lagging behind which made me see myself in somewhat a negative way. Coming to CMU was already a big step because the past few months were pretty difficult and CMU symbolized a new beginning. Music (by artists like Bruno Mars and One Republic) was of great help in cheering me up and helping me move forward. This patch is a very simple combination of all these factors. I’m determined to improve myself and make a better one next time 🙂 .

Best,

Spandy

Fun and Betterment

<pre><code>
———-begin_max5_patcher———-
3082.3oc4bs0aiiaE94r.6+ABisn.cSMDuoK8ktEnOtu0mJltHPVhwgyHK4J
QOIYVz42d4EIaIaIFJGZGWzAXbLIkEO76b34FOR+9O9C2sXU0KrlEf+B3Sf6
t62k8bmtOUO200wcK1j9RVQZi9BWTxdtZ0mWbe6XB1KBc+hzsU6DeGPCB1On
riBlP75VlYNVzvWWlVr.7acWQ4tM7R40nu2vtd445aobd9yH59611TQ1S7x0
OTyxDlaHJAuL3d.hfWFQuGDQzsPKCNLCMhWKzS+hE8lTCkYlUcu+me7GT+U9
m68FTD5Wn.FaCJvTjdwmPuEghXOCEDaPAIw.EwZL3JiDYUa1vJEmBE+ypcfz
ZFXEKcmf+3tBPZYNHcS52jT+Rv+p7uWU9GE.IEHG30pRFPvJJ.uJ+YUhmX0O
yaXK2eaK3krrpck56Mtq2UqypJppMvPvxjvfnXx8xuEihHTn5aPZXbHV8MJb
NHNdvJZvzfIPXTn5VFreZBPRAxj6Av9v9H7JZbfh8DBWhjRsv3XUKR7rXVA9
mY8q7GY.I9VjC10v.MUajLtzrurtVh44fM6Z3Y.QkjYBdRxpZDKmKqAQIIJf
BGRhBzf2AXLNdFbFB7xvYHgZEIcbFZvsAm4erkk9Ev1pFtf+UFH8wG40aRE7
pxFIaBHdJUH+f8Jfk8TE3YtPtrTahVNWNDVhbjHEhEJYUAH02RTcoQwHxLXQ
33oYQAZdhbaJVeewH4FTG3Nsp663N3qK2YJ084oYeewnvBZLa6NXOiP0V3wQ
mgR7fKl4rH+ZNKxp0LnVmHhB0Vyn2J104keGPBBrgDxqJqprTuTlgol.GjKf
gnkRAei0iOb3HMumb+TBD2eV9+F4BXHEQT5pIImAZf7NZz.djwxUlK2O1iUk
hF92zDBTQy85uLcig.+a0bEL4rbhMjILwnQDQUhIgmCvrmHGnuNV6DEFFGnc
rJJHQ+Ms9ZuijelKVxdYaM3WzexK+Tvu8mjdtQ+Y4WgpuFRGGioROLvQP5jB
kxa8CR6l07WTBl8DIckkLlFcqtkGRz7BrwsbD0nROZdBq8oxGSyXWF870fux
yap1UmwfuoL7IP6Y.lAis0OwFZFgC0FFIZXLJ7lPO3FlntBfC.+RZl18L3zZ
EWkVtdJMgiIaAslIf13H5zDBQIWU.YCqoIcM6TDoZKqbgKRJus2RVC+OD2ZV
LQu9OK+kfWD8WqqSWsX9pgdS0+tHNfPDigwnaBCiakAK97J95+5E0tH1tgQZ
rRKLRF4fN7N56wxn99ypawhNvPR97B1WY0Mxnx5Sk2sHc61d8eW+ejBC+rwN
az8G5iWZ5CenuZ1W4c2B5gtSqkqUgbgtq1P8uDt2dj5NUkypK2wOHoa3pcj1
AHpKnLI5PZiqJnG9nhTrnJ6Kr79Xwc5s57xs0rFYfq5HRGNdN6wzcEhGlfmO
7B1aaazQGWz3tEqq44UkZcNCfcU+cS4mTNGnTUPGrlzWRoL9lQ94RoJI3L0n
MxE6tlUo0JtxJijCZ+nhpphgic3WVvdTzNtLbhxiATQ0VKiVyW+jse8pJ4na
rd60C07vtRyvOH2.KdnI8qGg7hzhh1szGMCujVxkZuXBtgefBNLJqLUtfepI
qtpnX351LzWGanborcF6Ydt3I8jMP7P9C3a6DrVbfsmyWyZDG0oHccyQcc5F
aYe6V0tK9AAay1B4p4nqXvgDLXGaeEgCGvpBwiiVHmuYvPSsAwthwoUNNYfC
SdrBAzkX4+hjN1ivZ2UwF+IFnGXBHcpDQb2AqIc5dtH.52JVl8jz4Jlyf5o9
kLvV7rAdzT.OcNHOL1jhKz6.4QWUjuVNyLfbOTa5EAJH0t3M1ENw8uaNBYBN
BJ7s3Hl79BIsAsYXFvyhYPtpLCkumFOK4kOV8N1Kb9n9jJfhbD0CB5kyuyaG
.z6ftd8svJl0yq9gj7nA8dhCrAtAOFmyPztOOGzo+Pcm4vI+FdYN6EafYO+n
TmsvTVK0qD0ELALax3PKF1gDfiVWR2.D7x89W9oChTftTP4D2d1DiRWA.4Dw
Pu3DS258sIFMYegIFpyrIqzR2.GBKYgxaz7GLNf+PpPtkZkzFSyIQbMSmCkA
vrJsn0wu8pyr6o3AGJ2SkWfTGOiDu8dBRNzgrGfgskUR7U8vmDUqWWvlNkI7
xYcbJTqoQDF.MVZv5CRj.W194bxazg6esjcHjgRXhv4clb1caVwpsj7r6smD
wQACq4Fgf6WBMzy4rkP+ODVX87WgXz+WAFXq0YVa5juEACubT7ThckDAZ0BD
iRharCiGQH97v3oVSrLLwjN.oumnauxrC5YnHzAohaTnvyHg0igOouHQX7UE
G1Vj9ZAuQLm5OXv2T+Ommo7bLs904.JXrKdVDFs7P8igClErr+3qySEom3ya
VAe6TgZoNAh89FlWuayuVUscYJ+wdA1ounuHCtyTCG6x4Upd5eEMrBV1Ae3M
QkOLRyEEx67QwRJCkrTHCk7AUtwmJLB0ARr+rPa3YGEpbUMesL.hB45Xs3oM
M6ofgWlh+2NzwIpnnn5Yii9pL6VM5U8u2kVvEuZgN1xkr1lm3O1wWOIP6hc0
cI.eDBrYKyj48Q9oCWi8v3EBd1WZFiRxppqGvRNdUWuIsT7FWkhbaD0L48y1
cYBpViRhckbkKFZ+FISrt5g6PS9ad6H+tT0pE7RTqVtDagx4onamZ0pnJMWc
b8fd0Y1krzNFUyoMXK1b9bwl5865VGCpjlt8YoJwpms6e8bDRHVWtIXck7ga
OWZHzXtHr+J1WGL+jkoQNeC3mffeBcUDIFszorFMVRr435QTcg9DhuI1JU2+
rMt50GENwIDCqEntQJHluU.pYqOCHye0nGxZ40l.CMaCi5kg8O55lo18BJ8R
IrAsKrgMN4ZzVGdVxZe7Uap.vAq.74iwpLR1kyk6ONAkuqR7E4frJDZdRANm
RfD6cPbE3LpXzixV06Axhc.wHDcjpnnaDqH2.EaKNxEIs1LcbkK11go6rOxn
N0STRLAMmbg9t1PdHiPxqjuY2lSqGvQ8lEZdJVh2+z7b6l4z+f5wZYbAQ7an
DzSVnsp0KJocaqN9f1JaE+AuG9mmLZpqDjgc.xfwg8dVxve7aesBNddmK5Mx
vOw3ASnVpp8.Nv2BaSmtz52I1tSXJyDYvamAB6GYOrSaWMg2pNm0ag8q5xSi
UCfffyWaWuRS671ISGCMINXHNJx7Xu1lfo4glD+KJpKPnOTYPpK6tUIWw7PC
eKHCdn.8ZXBkTHf.xdJUJThhC.QnyH8bu6GpsQ84wtqgAZnECSLlXndHhYyO
cXoj0h0GWaRcH9I0jTxfRRZhxQhNrJpj9zkusRtWtcVgP8I7ghz+AFuuwgeQ
Uct44+vRT+dllCcilSLwFZrjoZMBQCuZDM0IhNT+DRhjFI5ZMBQG3AhN1EhV
oJFXMQCNOeQtLeHqXDAY1nYdvuwgv8s7BERchOpNxSOAITmvDJwtfidOII.Y
rGBaqKVUS+PjgygH8wDR8.pztA5BBKXOroGg0LOLJt2ldcK+PiHenM0TPfsz
XKP5QZD5AqTTTeRL1ynnKD3QXnWMu3DAfgSPA9vVAwIAInclTRBrMmi5vgRf
sO8+QK8idChSznURLjp8ci.aekQjXJEVpmjjvNYfoCr8wD5jAlX+MeTOHm.C
ZeuPDOPNI1WxIX2DT7HWvISEI9a97wt03.cX13.TOlftkenQmHwPugIH215Y
ERhZe6kDQzZGL5Jzs7CI5jG4T+AINob.F3uIj99CAPIA156ebT+f.zs8CY5j
9ArGYDNsY.4OERHmTPf83DF3C+GPlCcyjHqNyBpVdgFgNogPuRf9YBimw1Ae
LeNsemfsyDZMDPzJ+RHn8stPtd5HUa3JuAQGq0UDadiAqacg7XG5TLy588dR
Vhdcsc.IueU4zf84uIXP1b7DIhF7rpNEIZ2jeh4cOIr6gw13Ypto+HR2DTdS
EivHMP153ltk+nQnSJFsPiXSxXo5bj2QwpV9gFcx.ic6KsRfHnIkQsIazz7R
omvIxFQcitwKCQstren8HTN9pQ4GahyqGUfij.YNL8VcRSxzCF+XZN5cZklj
O9cY0wuGqF4cXkk2eUm7tqRSCxO9uZKksSB
———–end_max5_patcher———–
</code></pre>

Hoffer_Assignment2_HotTubTimeMachine

This is the patch
This is a video of the patch

At first I thought it would be cool to be make a patch that would make pixelated versions of your face infinitely blur and fall off when you got in front of the camera. That turned out to be well beyond my current skill level, because (1) facial recognition? and (2) how do you manage transparency? I tried to work on something where your face would constantly blur downward towards the bottom of the screen, but again I was having trouble getting the effect to seem… more or less relative to the face… And it didn’t work. But this did get me started on delaying and feeding back moving versions of matrices.

From somewhere back in the memory banks, I remembered some JRPG for the SNES where there’s a grid of identical sprites flying by in the background, left to right, while things are becoming emotional for a character. Can’t find it. But I decided to try and pick out an object in the center of a camera, and have a bunch of replications of that thing fly by in the background.

 

Step 1, I kinda-sorta figured out how to use jit.repos. Which is to say, honestly, I copy-pasted the help file and messed with it until it worked. I still don’t quite grasp how the guide matrix part works. But at any rate, I got it continuously scrolling vertically. I delayed the vertical scroll and fed it back into itself, with a horizontal scroll inserted just before the feedback point. I decided to leave the rate of the HV tracking (if you will) as variables. This was starting to work pretty well!

 

Next up, this looks stupid because I am tracking the entire screen and all I am able to notice are the straight lines and corners. So my usual analog approach here would be to do a luma-key, but this is a computer. OK. So I messed around with jit.expr and found something that would make a reasonable vignette mask. That got me close, then I used a boolean expression to filter out all pixels beneath a certain brightness threshold as well. I did the expression on all of the color channels individually… I think I would fix this in later versions to favor less red light in lo-light conditions.

Anyway, that got me pretty good pickup of single objects within the screen area. GREAT. Finally, I had a bunch of downsampling ideas laying around from the earlier version– and the camera had to be downsampled on input anyway if my computer wasn’t going to slow down to a crawl. So I put an additional downsampler on the delay line, so we could crunch up the flying images for fun.

And that’s about it. I went ahead and made a reasonable presentation-mode dashboard, so it would be kind of playable. Some of the more extreme settings are pretty cool, though I know I’m relying on my computer’s slowness to get some of these weird timings. The next step would probably be to hook the parameters up to audio inputs of various kinds, and wahoooo music video o’clock.

 

Playing With Rounds

For my time machine, I took inspiration from nursery rhyme rounds, but I wanted to play with altering the pitches at random. I tried to do so in a way that would still make a chord, using a major third and a major fifth. I used two different song samples, “Twinkle Twinkle Little Star” and “Yesterday” by the Beatles to demonstrate the patch (the latter is in the sample code). For any song recorded, you need the BPM (which is labeled in the code) and the number of beats you want to delay.

Max Patch:

Sample Songs:

Assignment 2: Many Echoes

My patch first send the original audio signal through a resonant filter, and then through a delay and feedback system. Since I have set multiple delay times and the resonant filter, the result sounds like a song being played in a large hall from multiple stereos. Because of this layering effect, my system only work on certain songs. The one I like is a calming Chinese traditional song.

Here is the sound through my system:

Below is the code of my patch.

Assignment 2 – Delay with Pitch Shift, Ring Modulation

I started with a simple feedback with delay on audio signals and then tried to find other effects to use on the delayed signal (like the pitch shifted example we saw in class). I tried things like filters and down-sampling, but these weren’t quite as interesting since they’re, for the most part, idempotent, so the 2nd, 3rd, 4th, etc echos wouldn’t sound too different from the first. In the end, I went with pitch shifting + ring modulation.

Here’s an example on a clip from Spongebob (might have to turn volume up a little):

And here’s the patch:

Assignment 2 – A delayed change in pitch.

For my assignment, I began experimenting with tapin/tapout and line~. Through experimentation I learned that, when you change the parameters of line~, there is a pitch shift to transition into the new delay. I used a random number generator and zl reg to setup a patch where, whenever line~ reached its desired delay, its goal  would be changed again and its start would be set to the previous end, resulting in a delayed pitch shift at the output.

Next, I incorporated feedback using the same method with a shorter delay and an input that would get progressively quieter (so as to not trample my original sound in an explosive manner). The output of my patch is a version of the audio with a distinct echo and pitch shift, below are the results for the song I used.

Assignment 2 – A Peaceful Evening

For my project I worked on a variant of the audio feedback loop presented in class. The difference now is that there is no need for a user to manipulate the delay! I wanted to see how altering the delay while running the loop would create different effects depending on the speed of the change and whether it was increasing/decreasing.

I accomplished this through creating a random number generator that would feed into a line function to have the delay move between the previous value and the newly generated one. Since the speed the change takes is constant, the rate at which values change varies. This creates a humorous multitude of effects that I recorded in some “evening chats”.

Enjoy.

 

https://soundcloud.com/dabomb1313/prelude-in-c-minor

[The link above is refusing to format…so it will stay as is]

 

And here’s the code:

Assignment 2 – Hallucinations

The time delay video patches that we did in class kind of made me think of how it might look if someone was hallucinating, so I decided to play around with that idea. I added on random dimension, saturation, contrast, and brightness changing along with time delay and feedback to get an interesting result that I think goes along with my theme.

The video shows what the patch results in, and here is the patch below.

Assignment 2 – Motion Detection + Audio Feedback

For this assignment, I combined motion detection with audio time shift and feedback, so that the faster I move (the greater the change in luminance), the stronger the feedback.

Here is a screen recording of me waving my hand quickly at the camera and the feedback getting weirder and weirder with my movements. I have tried many screen recording softwares, but unfortunately none of them could capture the sound accurately enough :(. Hopefully this video can at least show the general idea of this project:

And here’s the original input audio:

 

My patch:

Assignment 2: Real Life Ghosts :o

 

This patch developed from my interest in the motion detection audio filter that we made in class. I wanted to explore more of what the jit.3m object did and how the different output values could affect the sounds produced if all else was kept the same. The eventual result was a motion detected ghostly sound.

The way I got there was by simply creating a sinusoidal signal generator for each output (minus the dumpout) of jit.3m, and seeing what would happen if I used the various outputs to set the frequencies of each cycle~ object. I realized very quickly that a super annoying robotic beeping occurred, and I wanted to see how I could alter it, so I decided to smooth out the change from one frequency to the next. This gave me the ghostly spooky sound without all the obnoxious beeps.

As for what each output of jit.3m did to the signals, they each had their own qualities. The max output of the jit.3m object was returning the number of the biggest difference in the matrix from one frame to the next, which gives the cycle~ object extremely high frequencies at high motion, resulting in the high whistling sounds. The mean output was the most dynamic and dependent on how much motion was occurring, and resulted in the easily audible midrange frequencies that really amp up the ~ s p o o k y~ aesthetic. The min output stayed at one frequency the whole time, the lowest frequency that I allowed after scaling. This made sense because unless someone was to go absolutely NUTS in the frame, there was always going to be at least one pixel (or cell in the matrix) that didn’t change from one frame to the next, so the min value was constant. This is the lower pitched droning in the mix.

Added bonus: the pwindow that’s showing the motion detection makes you look like a ghost #ArtisticUnity