Author Archives: nvcastel@andrew.cmu.edu

3D audio visualization with opengl

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:

Amplitude to color

For this assignment I used a simple pfft~ patch that used cartopol~ to return double values that represent the amplitude of the signal, scaled by an input. Then, I made a matrix, and a counter to run through each cell in the matrix and map the amplitude from the pfft~ to the value at that coordinate. I then used the built in jit.xfade object to mix the created matrix with a given movie. Here’s an example of Jupiter from Holst’s The Planets overlaid on a clip of Jupiter the actual  planet.

Here’s the main patch:

and here’s the simple pfft~

By changing various values within the

Convolution with My House

For the IR I recorded the sound of a balloon popping in both my room, and an all tiled public bathroom. I also used a recording of the character Navi from the Legend of Zelda, and a recording of a chord being played on the melodica.

For my original signal, I used a recording of myself speaking the line from I am Sitting in a Room. Here is the result:

  • Nick Castellana

Shepard Tone Time Machine

The Shepard tone is a continually increasing pitch that is created using an audio illusion. I made a patch that takes the effect, and added  a delay effect such so you can time loop each ping, a method to change the initial note, and a way to adjust the speed of the increase in pitch.

<pre><code>
———-begin_max5_patcher———-
1879.3oc2c00aahDE84To9e.gz9Rap24aF1+JqVUQroIz0Fr.R2jsZyu8ElA
ZSa.7sYvyG9EaYrC9vgYN2ybu2w4qu8MWEeS0C4MwQ+QzeFc0Ues6HWoNV+Q
tZ7.WEeH6gs6yZTev3Osup79CwWO7dE6TGs5lO+gzucvp6a2m2193wb84NN9
5n3axJuMN5uF+Lepp9PVa+6KFOzwr1s2UTd6Gqy21p+KkR4Fz0QoD0SbT+iD
xFz2OOcfonr6aSgN73QaZebu5KON96m85rC4s40eLuL6F86hd1YQCZ0ognN5
+812z+b2SWClc5NO2jWOE6j7KwNSPEoXQ+UujgCDpH+e5tt+12Ya9CpKj328
TDZCgOEGwlmiZJtsLa+xLjDQ2v6FrvUCVXomfgHKvP+HIfWcRnM6X24+ooHA
hgj.SMxPlnt74XCFlXARnn7otgxno3A777P2e31pxR007hbAkq3BLs+IQhGv
EyKehk3yf.ZZhVsfDFhFKPOIny.8vDpQHXIIrEUaJyN1bW0zJJXAcdpqiwyN
4zHEuPEJcUgvi0UOAOPLhGRzgdu.3ArQ7ffStP3AjQ7.mGLiG98mhXaljC3H
y7avQLkCcscKJyiIg2O8n.VpgL.V63RGpkj16AMvX.ogL.WcoK0FuCRFHwLF
fknrXJEDugAx+2cYam4pUDuz0hj0CeLRewv3iOZ7ECZ8WLYzGvHzzJaLyh1K
QZqyo5US5yp6aqZllALz2GQIrwI7gA096RIeWDcClg4ozoIBlgFfU28Y5UIH
74DK79HzF9zb.eMFLvn537ROlCVRTfJMbI.jPWTflZFCv4WJhBn0fHBbQA7p
vAgtnfYgGDhf2o.0rfCB4khSApXMHhvVTflrJbfGIJbaVQ4zKEhRO4B+tNJt
n7ToBRx04.5a2w6V.UekX70DIu.iPVGFQWGpKBFAuNLBBewvHnUgQX5DIGNL
xqwbA1L0T9f4BYh+at3ws6ymd.ClXZ90zq5Pv+dJo713p3YFHXV1XFo.8zDJ
1q8ZOGEvVCJfoMX3EYYcgBVi4miBVOPAASCQ8pJLG1LW3Lc8HBgBysflIxvZ
RP0qGMn0LQlkttQJHj0LQoqAEDJZlmil7YjBtv0LMKUdTIJ70LS4FJYpKkOe
nCRCQIyTyBcNx.Xd.qXxVCJXnj99thI5b3xbjBH3KYESjYSUHoCsAGNjULol
oXRFBpFxJll0mHiLP.nXdns5SSx.K044K2U.5a6HInl+C6eU9RZVrB931rfE
3E9RRWCdfkfC25dIIqBEnkC77ZgOsRnDuFJg9jwo1paus6bO09wagLKbxBWf
I5n85RbRXiOdd8GcFBHj2VWEQmb+WkrP5mN8tUDyTjBcnEB8gYCyahN4b3gd
b1vEsGZtYImhfQghE5i2k0TUOMIXZhZwIJoRrtRedwVnX18wLWX5FYd3xEKB
j8b2e2ruX2LjAZ4fHPJBdegi620xpflTcmFyoup69KRGGqyaxKayZKpJe1Wu
h9QK8ceVUW9smlwKB0zJFq6TWpN3r9Edpzx7bfg6MKpbXMo7vkCHFJtNlklf
lC3qRRZBAN388+5PjL45yHFlpJFUutDgDzuLBNmEllDLTVjNr1bQ.jut4+gB
gfMbBgDGTCEljCLL3vf26AN3LluB8ILdeQ4K9sFRAq923mXllp6q2NdwLVXu
nmAsc4MsEkJuLO6So5Tym+wtqX2t7xevFzthldqQ6Nw9QDLxTs1FDnQsNznv
PlvAHCACYDqird6FPPl8GnQfMEPfr+T.JLRqeuUXan8y2nlCZI1GZLXPi4fa
nBXJGLGH2xfMMneG+ZcViBCZbqCsTADjk5.fAixn1eNPJno.o1O1YJHYC0cb
rOBLhmBr9he4k.S8CCmWNHS0O+9Im0uYK7Sj02OudJxjdKxbv3LH.y9vRxfM
7299YkfBkKsuuLInH4R6GIWBOfocAVeuQbZfkX+wXIfVnIO0SAlKR0BTjQ7V
jg8Vjg7UjgEdKx716lHGvYbvKLwx.CBtruhAGjorD6mFCNLBi5q.i3q.C6q.
y9R+bX4vyALFnh4vsu7JrkJw7Zfg8wJF5.6E.qXnCrWP7V6EvpXnCVsDATpB
nNn5ufF+6fpQP.kp.h8WQNAz7Rh8sjQfl+NKWjvDXQKcP8nEfPlz9yJwvbX3
hH4+RPC6kPyAkvGzx3dA9sBzjvtcZ+Z3n9WT.TnYaVCngVpCfFvdxvApZLus
wAeQOGMGzbvXMJLwCpzAPCl3gC709hVuaNnwc.z.1ZuNvqFk4sccLEntl8Ko
OFXRDXtXFJvVtLwArFBNzrcGtm3qMo2KxD0boExA5ZXN7Vnx1PiAuGprMzfo
qgcPLTLvNOyESCPva8LKCMTJ7dOy1PCleMjCjbQIdqURDLIWjCjbQb3cSnsg
FCbWaaYjc9K0+vF.L63wujW2Lbl0HJ9P1mqp6ecx05WWTpesd+FFWm+khw+D
l9PY0auqnMea68058g3ChgeDuhOTsKut79hwsgnBCcO7+85GwLC
———–end_max5_patcher———–
</code></pre>

I am Sitting in a Reverb Effect

I was inspired by the YouTube video I am Sitting in a Video Room for this assignment. I decided to use the built-in reverb effect in Audacity, and apply it to a recording of myself talking. This way, the original audio signal is distorted by the effects of a digital room, albeit a room that is self constructed for the distinct purpose of corrupting the signal. I used the default settings for the reverb effect. There are four iterations in the attached audio file: the first one is without any reverb, the second is with one iteration, the third with 5 iterations, and the fourth with 10 iterations. Since the reverb settings place the sound in a fairly large room, the signal decayed quite rapidly and after only ten iteration, is already incomprehensible.