Assignment 4: Luma Convolution

I was really interested by the idea of mapping video to meshes, so I iterated on the patch we built in class to feed webcam video into the color array. I then created a sawtooth wave that uses the mean luma value of the webcam video to control a bandpass filter, and used pfft~ to convolve the wave with the input signal (either from the mic or an audio file). The result is an interactive video of… yourself!

Here’s a video demonstration of the patch. I used a lamp to light the scene up, and covered it with a book to alter the cutoff of the filter.

And here’s the gist:

<pre><code>
----------begin_max5_patcher----------
2439.3oc0aszbqhiEdcxuBUdYW45fj3k6UYptWzatqloWMSWojAYacCfnQh7
X55d+sO5A33j.JxXRGOUECHPv4b9z4kNR4ut7hEq4OREK.+L3eCt3h+5xKtv
bK8Mtnq8EKJIOlUPDltsntf7TASH+whqrOspsj2JKnRyyi5taMQlsiUs81FZ
lz98wgwKitBDFmrL3J.LJPeBqNB9itWhkaHAe829RXR+229wkOUSselEB11J
RwhqF9J8ubVljwqHMOsX+2VHepv7EVb.iyp54aX2MyIRRmz2I9WrHqfUuGiN
3ApGsgUPqHk1O7WIYrJIWrC7a+5Oe8uKnMhqErFljVtts5NFoQd8uxyZKoUR
w0+xW+8qgoAqB.+qGT3IMG7OMBg3ZETqtR2KP30hGZ+J3Qve1xxtq3oq5u.7
EfbGS.HaIrpkKWVVi6jqd15NVkENIs4Lt9NGzgBNu9.w1Hk7Johj2JjDIsGB
NTXUCpL0fZFuQOlpvWKjre3yByEsMRVY2X0ACtVMIdd+n3Zhfks3EOcCunf+
v1B9ZRgByp4CQ.COH1w1zoUAeEIzDWHanpdMzqug2TRpF4c051NdI2RNugsk
oF+TJDak6JECi.hZJMeXp+msjBl7owwGysjsUJyJamBCcwB6Y.kEgTozHVLX
mO.ogHC612mue4k8WzcS6cLG+9kW4oGiMEbko1vtKPc20fvlQk3wcfjfi0BS
XPn9j0+ABMr+Cb5n9OzdHVSzX3ermVMJaXIs4Vkw7Zqah.O8aLA.QTvxoMCC
Hv2U7wIlSn.6I3xngjeGh+DEa0vHQp9Z0sxCYTA6+Z5mRadtvmJ5CJQnmtR5
iFBt3m.gGMlECQFUlHyIzJc.nwTYBGExXZGFdFHAMeB72Xxk4rxRRM3FV08z
FoxkCzsgz.X.LHYIRG3MvXw.wNMbBWMJLn3maUVoMrGMAZ8Nz57hHVN.DBLJ
jXjRtz+cix4cEUiUP.BfAASFmvIVkkvXm3D9LGm11PVezX.Z0JqrCMlMItP.
T54.Bnh1KHaouABxJ3B5Q6u.iwVup1jSW4T9S7vG6Gf2hwjXdMs5nEXTT5gB
ryAbL5yQfcnj2rcMpnsjbzJ5XqFNJ0H2IXmxczYtoNdjrqBcEXDePxDpbobE
XLvYtT6+8gJ8skqGKmIz6JldkxHb04aJiiL3WJ4alPNQVLI03cCG5DSlAeby
n7lSxFotCAiKugoPs1crMZlaWbv3Eeb9wTy8KS1vEYJO0+XBo+mZG15pahMY
tfQpeBL5ywW8ctlbiK+wqrtfCP5wJrcpNQ3QDN2ope0qxX+3rUqanBZkjnmm
+gYGFYqZkA7Gf8NYjqfcOcotZN6UMtmzru1Ru8odW2s3Digd3pPq9icR.wi.
s3ipta5el7v0WnKKnaTGNHX0OTPtmleKQphlttURe9JwqKH28jhVpxyWeQp5
KQ0AzrfWscbv6EcUri2H8ru8vQv.OqTIS5m8kjfkC+bhY7OdvmxpXRlBTeaU
iNnSspNsWiM7xCqRyjJMyHtYE2u4GZWKJ9H53yrnScCaLURbNIJHZhU4s6Je
8jgmOrodGQvaNd22cvReBWNi5FBeOX4SHc6okqQmTiQuetFgnOobMlXpkVQC
YSixcpk++Wlk5oUXBkCtwb511Z.p+5b9CUJ+CGePdjMokXzAy4bzoWCOym0k
HiT8Pit3b4rREbn+6FRNoVWlNa4nx3sUR.Fbil46KX0jgsNinHmUk.eVT+NM
9jQKJVWvyt6nCgDtB97rxiLgSAgvQj28yPYCu54v3+iFcvzwPBSlJCN00Ldg
c3HpegHZ3O7BubZxrgj8B6R881WHbzvUBeR4DRumVXbFrOfSIo4NZinUXWFo
zitBW1UgMJNTeBFXw3QVEAb7TqIdGaZ67WhUz3KgopC3X0ATn5.DoNnZodT7
vYQOi1qj7wl3nC6tHa19gIPOpMVn+Yx7I3updyF4O.pC2JTtjTYYq9oqalRA
.c7qpR2Lpiryn.5NGOL9LLYlFv5iWpSrSAzpGD4TlgmdpLAyX97iIsNpZBLw
VtAanZ259AK9LWInazN8AjxZwKiyZiKqbjCfuLb7Q6Hnaj2tfP3XmEKFctu9
Y+D3F07mmv5HtxV.jDSwzRchAwyMFLyKaPMI6Nc5reqsrVkd19grBVmRxgPw
wAPcUvBBsAMhFAghNyQn1pWiQfa3a1Hn5jaGwBBONzXK5jxooFZV4dYEC7DZ
NSVl0hkkTwNf9vSJ+L7hmtUuMmTNcTtcTyQnfBPKAP8eSyjKraaKjBcVJkYe
5RqlXd+apEaaYG+ROaqN.DZD5tpben4S+lGC+VgeJyA38vholm+Tzux3k5s6
2aTvtwNrY20MJ8oRxcTAfIABIuFzPqxoMJTDvTudNiHoEOAXU.8nvC7lh7qT
sDRJIGT2J1odUIGP.1O5+oZPudgGahBH69IwZgGYBQFOxhRDs3yxDMSoSzPd
1HUvzk2W4JK.DezZpo6kWTfSaR2aQjsE2pYy1F5mr+qsMrbwNhJyoN7Qm2T2
tpwdeS1SfWoMNMbyNodbr6X.m44PYLt5QKaY5zd6MIdpsGgSK.ItqtXtqY96
WKwohLl2w3N3UaIbCCqu+KgK0bIax5odGuovgdJmSEJzf77Flc+rE.G3UmkW
yYUxNJBsBuM+RnszOungcUPgolzP0MraM02L15MKu5Eryv7bnsOmDgB8fN5k
a+zIThGTROq7C5DuQunsiNqy4kzwCSZ3IQZ8F988wWkiEUNsmF95Cg54lSCM
g9JRmrQPhuTBdpTpaDvMkh9HTN8iz3OBkyPjONYfywHI1Wi+SdjzGGZqb4qO
zNUYj0+dbZ59VmHqg8ADza0mCBV8ZdytDDwXnc08Vsu0bqV5OyN6pkdE5aN7
uf7gR3jOjPR9PZ8jmA3S0csOCj8ryoQo.OxyBNGTB6C5glCGW3HePOm4Nhsa
iU8BjpKQIBsu0oxa939Fk5h2PwlDVQc+O7Djtu0oxa9jj.Z0eaFwt83mZW0Q
n4D1VXKSq410FxmrzdkE6qUmrCRX6B9nmXRReyOEt8UVHCysntEqraGcm7AD
vBkbxVC3PzGi0.J1GdKZNrFh7MtxISIurvclMSukVpcxyqRGnkUiw5lxz3TY
6.eY6f4fRPeFzO0bd8INPhyxaXgW6NvGEh22Z1MR8A7Cd+jJskDhTWeOsQz8
5Fhtnj7Mto6IWYZxprMME4ZQC8dVe+M6M4EjlrcLIMyTvSc4ndL0V5USg8ap
ZYczVQ4ue4+i0BOuq
-----------end_max5_patcher-----------
</code></pre>
<pre><code>
----------begin_max5_patcher----------
645.3oc0XEsbaBCD7Y7WAidrwkgSfv39qzISGhsRpbwRLfbpyjI9auhCnItE
LxFrK8E7nCIsZ2U9ty90YNjGT64ED2u39UWGmWm43fgJC3TO1grMY+pzjBbZ
DI+mpG1PlW8JMeuFCe2glPxcaU6zobMNenNZVhd02Exm9VNektBOZHyyetK3
iePW5wLOod9t2WuFwZbqMv8Yf1r8U6s9kLd0tPJDOISRI+dUE5WRw2Q9vIRH
aNPzxXuMaV4i4Ciye574L.K8VvrkzvDjzqRx0pLUZGbm1qeGtn7YjOx+tXte
eLe9+RM3wG0ly0AWncMv+DZ.ihZPDT9AK7ThPD4lSLiupUFG9xMW+f9c2vot
4JjGbosKAAcKAAgH2A38a4co.A1q.muV.imVbWm2wOUNNTEnnXDvN4WyWLAS
vsQn8xT+fevMYaVgKz0Mg9T.5x3pxawmTBh5TBlDj+Br+PrlVTnMrmMsYu+Y
y9fpLeALKX+zh7WdgcvGsbaJrS+eH0Ob9o9QRaQhe3Vk3GWCIUH+yt6wSeY7
ikmB0t7UMmklbytuyg07Bi1jnEJ4GlD6n4nxWyywFfZ0RFUjgNfFtAPG0Nzz
gAMXCzKtJrlZAzll1LIDu+5ywvqwcpPK.t1VGLNfE3LTkLvlKK9i.gBrfPHP
CkQTa.53KpaEqyTBotNCGvvhtKiv9OXXMoxAivAqWoFFAotQF6WBfw.Iq3Dz
kXWquwnXCAU+qFwCWsKAkZQUGXzq5XgjPGCW1BSdT7XKDRHpckjd8QtCO7ua
gIIK6YddQ8xQPM8xsQgSewbbnPVMD6PijyeVzLeFFII2zvl1zs1t7p1m1GW8
ytHaUFfk6D0XaP9sY+R82u7Q
-----------end_max5_patcher-----------
</code></pre>