Category Archives: Assignments

Project 1 – Interactive Vocoder

For this project, I wanted to try something interactive beyond mouse control, so I decided to incorporate data from Leap Motion sensor into a vocoder.

The super handy patch shown above is made by Jules Françoise. Leap Motion sensor can detect data including coordinates of each finger, coordinates of palm, rotation of palm, etc.

The Leap Motion data processing patch is as followed:

I took the y-coordinates (heights) of both index fingers directly, and calculated the 3-D distance between index and middle finger to define a gesture so that when you only have your index finger pointed out, it only encodes the pitch, whereas if you give a high-five, the left hand creates a delay and the right hand encodes feedback intensity.

Here is the main audio processing patch. I combined the vocoder patch from Delicious Max Tutorial, which allows two tones to be defined by two fingers, and the delay+feedback patch we made in class, and had them receive the scaled-down data from the leap motion patch.

The pfft patch is pretty straight-forward:

Here are two demo videos with different types of source audio, enjoy!

Leap Motion patch:

Audio processing main patch:

FFT patch:

Project 1 — Bird People

The Second Commandment in Jewish tradition bans drawing/art of anything heavenly or earthly.

Thou shalt not make unto thee any graven image, or any likeness [of any thing] that [is] in heaven above, or that [is] in the earth beneath, or that [is] in the water under the earth.

However, early Israelites wanted to make art! Who doesn’t? To not break the above commandment, many artists drew characters that were a mixture of humans and birds– they were not from this earth, and they were not from the heavens, so they were fair game for early orthodox artists. The most prominent of these examples was the Birds’ Head Haggadah– a Haggadah is a book that a family will read from together during Passover. Other Ashkenazi Hebrew texts drew characters that were neither human nor bird.

Reading this passage during my last passover, I pondered about the fact that bird-human hybrids were used as a way to depict human experiences. I was curious if I could sonically do the same– use bird-human noises to depict human experiences.

For my project, I made a patch that downloads bird noises from online and loads them in for granular synthesis. I then used a combination of the source materials and synthesized bird noises to create an ambient piece, with the intention of capturing the wonders of exploration.

I chose to use the Xeno-Canto database, an online database of bird noises. In the research phase, I found that many unedited bird noises sounded really weird, and almost granular on their own. For example, the woodpecker’s call sounds quite a bit like a 50ms-ish grain repeating over and over. Calls with a “vibrato” sound like short grains repeating. It was very cool to play around with this concept. Because of this, the piece also serves as a challenge– listeners may have trouble knowing whether some clips are doctored or not.

Here is my patch: https://gist.github.com/KenTheWhaleGoddess/dcdb026ae2af56d5d316c1886315f53e

On the top are links to bird sounds. The ULDI object downloads the bird sound when sent the message “download (URL)”. It outputs a message with a 1 if the download is successful, a 0 otherwise. Once the file is downloaded, we go to the appropriate path of the downloaded file and start grain sampling.

For the grain sampling, I used the stutter~ object. I use mathematical manipulation to create an interface to use granular sampling that takes in a grain size and a sample rate, using a mathematical expression I made using expr.

I recorded audio from the patch using the sfrecord~object. Then, I made a ~3 minute ambient piece to demonstrate the capabilities of my patch, and explore how I could manipulate and compose with my chosen source material and patch.

Assignment 4 – Nasally Controlled Filter

Hello!

For my pfft project, I wanted to experiment with facial tracking and use information from my webcam to control parameters to a pfft. The x and y coordinates of my nose provided a high and low cutoff for the frequency bins of the original signal. As an additional point of control, I added an adc~ object to take in audio and alter the magnitude and phase of the original signal in the frequency domain. Below is a clip of the original audio that was used:

Audio Player

Now here is a clip of the audio after I used my nose to alter it (the adc~ picked up a bit of the feedback from my speakers as well):

Audio Player

Here’s a video of me using the patch:

Below is the gist for the top level patch:

<pre><code>
----------begin_max5_patcher----------
2628.3oc4bs0baaiE9Y2Y5+ALZ5ScU0Pbg21oOj939ancGOPTvxHghTgWrrS
mM+1WPbntXGQPPYHJlzGhbHEEN37gCN2A+6e9mta1x7mEkyP+azeht6t+Vcm
6z2q4N2s+F2MaC+4jTdo9AmkI1ku7iyl29cUhmqz2mur7vMyqqREUUurU.i8
LYl5g9u6+5r5MxL0CnGP796JWoGG0f+awrCC0VdUxixr02WHRpfQCGGtvaNx
G6sveNh50bAgrv6HAJqdIUS5YyNglvrBHp9t+ue9mZ9q5OymVrO0D6GyzbuW
vsf6q2rTT70Ci6l7UZJQNPa45lqalUs24g7rpG3I5G6U2rT9E8MwjiO72fbp
wKimNaNZ1Co47SQwlgHiuAXz+nP17TmCfImAfCCLAvz3FLMlA3bvE.vjKFfq
xWuVM1GmcEJVrRTbuHiuL80f36ULKz7tLrFFhh70..a+mihb1FQYIes3a2lk
uUjgVmJqTXxhc7m5dOWWHwYkGH8KODwBAwhQcCWR9lMB0x52.DrEHMVvqWIy
QOHSEn7GPujWWfRdLWlHP7rUHPbBkmcX.RkYhj75rpWgE8JqDDaDgHZgDZLs
4OXesRI5vDV7bOFQWffsMsnjLaac0ekMyZt12HWGPiZ3Slu+IbMw6Vy0jEnj
TYxmTq5f7PVdoXPbsQyO9.Wi87lTbMdwQgcsneytC64YluQdVaD.GcK33tb3
n7A07KuX0Wm0mwyAXRfZgdvXMXDfmDtc8uP3EcC.u0mgdMDPL5XfumV4eDU+
G5z.A19vCUeEodJ0hMq4hKUdfcF7HJznKBg9.dnU6G6Op3gZsUMTWnmRMNTt
jms9U9SVrgqYr.q2tDYVbgokPBiIfC6ipijcIt7qMZtb3NlHOiP.n4LDbej9
OOIjvXy1UzlT7gsNirDxj.dBMCOZEKAAd2.3oSOMDYk0EhRT0i7J0GBTZ9Nj
xX7mQxRDOcG+kxlaIJZdhLzix0O9Wua+uCM5eBE.pP+PvCkfQ0+awW3qR52M
j4WhCIglUuDokIXLRStPX9f63ikFVctPb29m9iAy3lEpGXsIH9VXsYzwBi4t
f.dnEBgpLQr7Vmskm7IyIIb9fShS.1nPgN4ZnPOshAV7nBDqK2IUynKUpnCP
fdNPvnVBJjIu.HNcvoL5q.AInNFeKSnS4N91shUnm3o0hxADsdjIdmAJEa8v
HNZRD5p48ACw6SeylEi0UHvORK8SClFwq4Nl2rNP0RdCyCIrbhv7+9EUijyx
7F2xSHgMLe.FX63lKt84rswUPsmhCHuTlC.mBUBCVcCmHohau+vCfKMWIhHs
fLvjAib12FaGanVU5y108evcxiZrrLgQmH6OQ7waE+j.g5OaiQ1jcsPsWavJ
9.YPuqSA3bi4KhQIcpu1yUFkbwb+0HayDOmYACGYwNcV6pOaRv++Jh4N9mfs
g+YZk+fTvOXq+g82kG+.u7i8sf8mTq9qVVkyGttuyYYCSsIumvxNabqyTp3I
Qp1t9Is4Cu3Shhx5RglEhbUGnfwukDv3nBneN52XQpOnApOHL0GXh5C0UMHy
QZzcVAa6OLLQ6mP.6FK8.o+A8Lxq4eFJAy9j.MG9uFqHyYA0f9KkMEhUH9RD
sXeGCMliXFStcXSmNbUvWIqKQXGky.iBGXenEGZygLcTU7Lls9luQeOHQ5Tm
vvzaPqu0c+drMk+xWQeP2KS5F9p5QYYauvoX.UzUqVrYKE8gz77slDXNVPFS
QjcNwGlwxYRBzIZgAvGABPanwjc3I4OIVcuhnpg+ddUUgbYcEzrx2cD6TvIu
TlTUmIyzcdJisWHoohjoo46VmlujmVI1rM+TYn1BVlUkjWzvBx7rW+066sUf
ByNb+7B4ZoB+REYqqdbuDCMJbQXfebjxB0rJYxmJOhqG+MGlEXxwVjUgkM4I
uq4wmq4p03WN2ToRpTaTUHZxxtddnPZ36Zk799HNelwHgB.ugZatvezy4AKv
hBddivhQsvVLitHGfgx3zVy2wsvVcZqtTTo1B9KXzuPbi4ZlwLfwh8NADBG2
iBvGkUKdXa45Z4L2zp+Zu5Fd+8e1DGZzLEKBpJPHzMed6qOxMcSTgZzEHEMJ
EyrEh5U7gFYVYBnXEJNbX3jPYRxSKZjrpJTpTVrpfuqazP8b2ugqbL34AgIg
V35GA78MlL5ao1tSlsJe2kICb18BlMnfglWmBwJCN9iaZnyWQhqaGU8Bh+rb
.k7l5aQPLTP5Fp8+sunXOOTdD2eIwnPSXOxr3TnuAIl2D6E.INi9Oz1pjXSt
UuInSmtNsVEDiHMU49jmiJujEGhxV07A9Sh7K2n9u0dlM17Fnc.hm4hMB4ED
NiG99SBeAtt.BNteAjaCdLETgfMG4AS6kDjizIRXnMRKsYRlZq7hoqFjrj4M
Wsmg1HnqTmFIc+TGsQeHaatJ9bioY9xQGyIMDZfCbL35IYZDFRA5I4px75hD
wvMG4ctyIi4d2FZhEnOUimLViJVujjVugeUT+1WyKpkFf1WlNMN4G+mLYkjm
J+hnQ5PjOjCUK1iZwILkQmTGwzyrInqz47dRWSfY8CZHAZFpKR2o22EkjhXA
Hbn8sGrvwU3UwPRZdY+xElTZ9ddEdvLq+.NLLAPieOtJTsq04Fa7JzhTl.Ze
lH8Z2mU6zJxQDGkc4uwk3KGJ86emJH34GMYrjutfuDgC7z+6C0YxOWKNwYOq
gwNs2+dz+yrP0GlAVFcQjXvOUeTLe6K+J8Dn4KdCP2ZED.g8uhpPmLIVIJqj
Y78ku8OO1M2GJJ6YWSslfMsKZ+DL1cDr4sPkEbHwcbXnUbH0YDjXEAa5SUWQ
PrMDb+JsKHnuUDz2cqg1QvPmQPqDRadee4H5EYkLyalU4EqDE8DTh0yfP1.l
AtfdjwkdwVQtvNPXuwZFPtlqwVMCZR5zYmA3QSNmDMMlB3qjjPTfUSAGpdwy
FBF4PBZkjl6TlXmjsC0dYkPzdX2EDzpUPrCgTanm6bKLvN.s4oHtgfLqIH1M
DD+ZMJmmfAtyGl.qbKLvgqgVIiF3NYTeqziF6N5YkanZXvMxL9LqIna1U3ak
LCygPpm0bniH33pWiEasZFGQPpMpYXQtkf8inty2BFY.65ObPvjqfZQtuGW0
mo.ZDb1bZKKe6UvK1Cb6AMfoacO8UtY5iGYIPq1f4tHmsx0OF8JFnkkSAxUL
HCpcwyGXTHssbkj1yrbaEZd0UsuDHI5FmHl3HQTpU1UotyJflf8pzh5NkVTq
1U7V68tUJ0to.qi3Pwi2TvqiofKRIAkX8Bw0JZbKmBrqo5Bh0KDWqbCQBr1Q
EpaRhLajc0jXkiJDuq3dd6lB33qnnFwyFUsX24+gch1tqTAwVwetygG8PQ6U
rxgbHyJB5tPJv1UMDGRPqbQNzcpFvVsof34VBZsh.WPvKHlImp2Aac8WrwNe
as14a29jnnrcP.hOaC+i45eT3b3ZYFbM7N9bVg3I49ehObKdQxixJQRUcATx
+m2+lfUedsKxpk6wA8bP8w+Weqr0k
-----------end_max5_patcher-----------
</code></pre>
view raw assign4toplevel hosted with ❤ by GitHub

And finally, here is the pfft I created for use in this project:

<pre><code>
----------begin_max5_patcher----------
1074.3oc2Z11aZCCDG+0To9cHJR6MSrN+PhILMsuHaSn.XntBhQIl9fpV+rO
GaRKkUbNhNVi5avJNAe9+ub24yFd7xKFDOUeurJN5aQ+LZvfGs8Lv0WcOCZ5
XP7576msJux8fwEx6zSuId3t6Yj2ab8+4mdtO8VyJow7vFoeniqTKKxWEG86
lmnX6ZUg8YbCIqoW0b2HYG9uvedv1jalcspX4jR4Lie7nBwUjgQobdcCa7Uo
1OYWQdY7qLOrxY7338Loed4rI006et7h5Vayvdl9YA0Oi1+z+F8JidVdY6XX
XW.h.BPFkV2HHNrbZ.ggNPrrvnsT4LAjD..IYTVOBHphnjiyhioc5ancZHsy
xXds6TMuKZ+YaVkeqb9DqIsi9jbioTMcqwmwbvKxePb8slLSudsrvq0X+c1g
uNgwlg6e330pkW+qhXvzJIXxzTtyGgk38X7WPNIbQvWiqz2cBBLn+PBk50z3
87Gd2E3Z87no1HhoOXitiLWKKhTKhj2ZaM4ar1ttQ8xa4UpB4L8Vu6ECLZ3o
gPCm4CUnt7lzTeDSx+I1br7De5oHFp0RDz+mIbt77Lu6QVWRWbNRUxwIUIOX
kDoD1dA+cKW44P7LjDOnDC9xn5Ih+6OEQIjqP0+mDLGvtT9YibkPQ6ET3G3S
A1X.YAdenvhUZ6Ps2zqLeszHKmHKxm5MJ43wC1pGmlWrbOVrPWtN2ILA3PEV
VPmD5t5BbAIo8i5IQdGWBH9GuKa4pW3eDtPhwtHFpXbOx+3q13XVfbHVrVSg
SvEgAHFgJR70T0KRjtXgQUrPGHRQUWc5a0bBqyxBtNKOyQDpO1w5bb5wNInC
FSjJZZqT4f.m1AAAfGRVVmq2.+fj4UapL4FY6dH9vkN6iPCt9Km3NROtqbTA
uCnAeWjkgwxouDCM3ZrzQNYm3IQOI+A9LXTPF3KvHgR9Py.A.+.tuHzOrLHE
feP+hA10RsiucmIwvUY3ywm51sgHwc7KoIcPkjySEC6Kx1O05VO+52Z8fwge
+6fgH0eRtc.L7C.i+q5NFsC+Aub1u9FGfqJ81xYMhd2TNh8xbXtrxhpbiRWr
2CUuOhH6L83uXNI6Qayd0ISpeJjrGoU6khl8DfrGCMdJ.wSFZ5KAh83nIuDH
3DOZxYPrW8gOgDNqOMO.BbLdFj.xAM60OktbtrrkbyXOEFcjo.Eio.jY.dIg
XvxBINiPmAOQ34B5rLP95HhcA3n4yF1EfiuOaXOEzT.ukHXfRh13MfgAgkDM
EOCR.iTDMXqK61vALLHzDj3XNJnxBavNFFDTtnDzhINb0riaOjzm.7x7HIvT
vKpijAAka+0tUnlZmBszTJfD661JW9lM2JKq1MFdaa2h6MZ2WZzP+0pB+0b+
0kxaUMekTeW4k1ceZra8baoeGk2K182Tp9OogrrXqpYV3lC1O9KP91Je7
-----------end_max5_patcher-----------
</code></pre>
view raw assign4pfft hosted with ❤ by GitHub

 

Assignment 4 – pfft~

For this assignment, I created an fft~ subpatch that uses delay and feedback to change the input signal. I then used this in a patch that uses the resulting sound to change the matrix values for an audio-visual reactive patch using jitter. The patch also takes audio input from the built-in microphone, and uses both this and a loaded sound file.

Here’s a video:

And heres the code for the full patch:

<pre><code> ———-begin_max5_patcher———- 2265.3oc2ZssjiZqE8Y2eET9wS0sKjDhKmmb9.xWPpTtjwxzZFYDAv8kjJy2 9YKI.C1fC1FRO0YlpArDRZuWZeW7WOsX4V0G7hkN+WmeyYwh+5oEKLMoaXQ0 uWr7.6iXIqv7ZKk723xC7Rd9OV9rsewNSOpse6ELotwziGDoRdoYTnSMpNVd dqGX4emmWQEu369ryKdgvEhObA6AWPX3B7KnKemeuZX1Yp7yLtcjKEokKa5s ZROVvMTWXUyEkeJMu+xZBMiUF+pHMYSNOtzNSDDcErTdgX8MDNTey2akqyuq Gye+zS5KOORDKk+N.M0KWI+CyprbGKtWDD2KBh6EAcuEthh8Mbkqq9FIPeEi uSl5.unfkvufqTY7z93JzMvUng1fOs6NNFNvrMh7oS.COvtHaWu6hH+aPO.O D+VHRRYxkO27zsw+jvHCK6GLA7+1ikkp91Z8Q2gJ+Er5VVZxMxdAAF4YTn4F 1q95Tt8BF5xUNHW2dXbZzTHS+.LtGwXWhNKJxwRNKuOt16KPSNHv0t6RmSIY J9KRRNLBY4n+Mjj6UT18KRTthyqzgCPOlI5iG1x6Sl0K5DIjyLAurgmx1ZoO 2IvRs1F88v99FUXBwHWScmCOTwpio.C67BEhipOvg16dOsW.v6Zwd8rEGz+0 ITrwAEVqY3JIgn4.Jx1uu7GNvkWXG2ITuTbbqgR5yANcJzHtK21TWrUnvpZP HODTTpRRj793PxDoTfFU732BqicCmOCgE6yjrO+gyZoRk4zqFwMr0OhX2tC6 BdQVbfZTChZ4uqdVXuw2sAHVXHaXkk4BvqlMQtEMvA.PrBQb4wTglB.sWups 0EK2qjR06IR0VlrjeHS0ZSW2a9AVZYrJWSSBvaY6dOn1Y4.yzurtYUtHQ.7r jmlT9pkQPgQggqhnDDlBPQoH96EMXwogzPAHLXCT+uv5WIS.ny.DxebjIEke 1CsTJf3ZJy4ZkaCgTIBYkglbyIuIJ.RowdhCEg6Si6VhT18NRXk3YjWPzvGx jw0Swm9+CY36gLVU8vj5T6Az6dwquIJWEykxsRU726aeuI5p8pzxTvVqoqeI WnMPX6IW89433kldhUx2E6r5VDRq4bOKtiUacaEh+jaUoV4da9xkhhNNyOA4 .AXIHp+ULh6aLd4iMxjQDiLIweZshm6rsGjt+Lxbm0bS7BqBdyZklNGAtnkv Nv.q7e3rVK+3TDyjbjqyZMc6rWpXkDryZvyVJ2DvmCwY8NwA8NUu93Bmh5S. j0FKY0UL4lvMqMKRvr.bYNGTqxTEBsuihdvAxjHxzBHt0.dLXPj4VX3E94MC Axo4L+56EZaz4EUNDQ0t8XYYsZdQqgngquoLSTvyMMIRsMQZZJmC9xpFOsoU VNP3k.UeL2xReDVWfqp3AxSOJLjhsQXi6o5I7TD9cplpqsDqtm3VXONQaB0Z OuwKutjhhzrbdAOsjcQP.636YGkka52lW29OyNY2N60v7hkI4hcpTScMaC05 lqWNHNGakFosYFyajxx5Yv1.2FnyBfIOVrkkq2IpBGG2DXiRI61Uy3j78kUc mIRSOCEKUYC2IDF1qWYraUPmGt1ba5oXywTaua.8xxM5fT69dPvgUJpcm9OX oBP+gqCayvttMcZSI40h3bHh0N7qsm25omcfPbLuwUoaagA30EY0BQKa1k2I Rf.F61VIKonaKWnSCMUEyGj8jNJVIvEcegNmvRaMx1lz5z90Lscoeg+iy52X RGzp1uQekhdv3JF1j+MY1e.D5pV9vndK7yoH0WT6DXFPNv0PgH0Y89b9e3Dt B7XVjw46.4E7PXIcPrD8EhkHe+UP5UUGWk81WJXhVgOAlDxPno2OmnoqMKJa 4GPgQeQv42T.dRzNLGB+vChejubM6pR5FQ+xEFcWQOILhFBKI+TJKVgkTzbp YaI8A.FR3c.LtOfGgHS7gD25qc.tX0gC7zxKlNQ5N9Gsh+rCtbJjLoHcHewF BR2e+.Vg5Xdb8VasaUmtDGDbQoHsIB0e6D.5L1MralJnijJz1JbvyEU3cKTA ZtnBxsPEy1NBdrTg+fTQSsJusp8dSA2ZK8aUnqMo9bsHcOEN7jWI0hdqlCxa 9pWZUnRF6pTzbUylD4pCP5khLI2YcIKOgaxxzI93V9mzdX4fo3nGtihwXs85 GZc2DQmQ.wjV7qrL.Qr2zfA7rthV5nEa9acrRpxAyEZG35+PNqyUPxw7O97O 0mjsNMQ8myjyZ1QH+TPAKFTnV2BgcVmojetQWfBXzM0ASqNapRVaXr8mzxUk 65TngvAJt57TyLj87wBr4KAPf86TKZpOaveBOZPDxqhmmuiFTKg9tJWty4Ut Tp.wGKWqk7L0XEHI8yZwsMuxR2Y6hmyJ3arRqtl+2WEWukC+g7O9cFbGxNU. nG1dxG3d0wMyY23jr.549Aqf0K7+E0182.t9ZEQzEabiccBGw5DXi1nFLy2Y qjJZ1WX8I9z5kZVY2GZk0eoc+iKM0aB.W5X1EqImGak7FCbRmhUBOhUxaRVI 2wrOgmfUxKZrnG5QWI5XPunofm92RffDMRSHO7BMFNZBVG7XrOLElG5l66.K DlLG1.G0RiP8uzOlgezXTAn8ux34ekw3uLlFi62Qq67uzCsUSdrkdLprm4jb p.7QszyR7EiZo8lEA7NxOCrSeokKavpmcn2503rC69rC59xC4d3C397C21TS Fa.2mEfbSMTdWOSNGTophL84Ma3p5SZtKPny7vj2vFQplGpvDSJNmtfZ8AAz 9fpAf4WUorX0oLA1lrWHklo77pCUmEwxjb1NgtHp0E1o400qLNxEEo+PrVQb iBc8rOAMg5PHUiBUkaQEYd5xYuGtd5C8wAdT8jFF3RCCsOE5QNe5gjbpN56f VmeaVtJSk27M.rhD079PNYMbVspvoRn0gGcQ9tQQFzEgBoHyStDB0qKXykbc 0l6L1fPBjBkdDAQg9DySgdHLNn6X2lzYXQAATTTE9.+LhR7IUi3oSDpNgaXE OOgtklpHUyVlBD92O8+f99WHp ———–end_max5_patcher———– </code></pre>

 

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>

Assignment 4: some vocoder thing

I was messing around with frequency bins and managed to generate this patch that makes everything sound like it’s being played through a vocoder. The concept itself is pretty simple and just required some futzing around with freq bin offset values, but I think the results sound pretty cool.

Code for the inner fft patch:


----------begin_max5_patcher----------
608.3oc0WtsbaBCDF9Z7SgFtsTO5.J3165yQmNcHX4T4.RLfH0oYhe1qzJH1
ICFiC1Ns2fGsdM+69wd.+zrfva0aD0gnuh9NJH3oYAAfImgf1yAgEoaxxSqA
2BUhequccXj+qLhMFv7m1hn747N65FStvXdrT3u2g0x6To4gnez5PYpI6WR0
c+rRjY79vv2LGGgVfcW4D2UJcN9kehbInjU8OeSmN0lGyAIB6rnZJjJq1PzR
2YzGQfUhy3yyl4tDMszdszLuTeuXKxmfHBBePFLX1yW3RXBOF9ffGJ8Y+qj9
k5biNKsZ6wdtGMpJfXN1CgDnDfAG9R+LHtSxUZkQkV3wv2pjN0NI53tA0x+.
dZEqWlQOeLaUkMXSyxZJ1hHSoegy7EIXnxIYPZwmLsHm.sN2MXBw8ipAaWw1
vkYz1lLJLugOD3Rtpf6bVlsxXuw6Uh0GHtA.ACGuaj6g.AAeUa3vmORXmOYz
1IUmogTj1BFJzv0N19PPi+e6TpUFoZDCnhdezi6RATb7fv6516w1CdP3DlKU
u8cifLxY+0DsV2Tk0Ql1WPAsKoVJpszL0H0p87Iw6SuOyFqNNFgnGQnWGL5p
khpC2hcRJSNhxwWBk4ifstFu8htWTlbwUNteguBvl0OroSWY76S4oA63Qjxt
kRNmljPIi7o5T6UiGScK9ZMTfcIZPFU0Bg+gMO5MiEJjKK0RkocHOEm3euPX
yNkwlyaOMLm7aKRKKePTU2JHDm1Msq0f6IQvQoxejAGqDOH67mCVRqr6KM1k
kMU9sZaV3+qtgEZqvpFYq1Vked1eArbfaJF
-----------end_max5_patcher-----------

Code for main patch:


----------begin_max5_patcher----------
791.3ocuWssbaBCD8Y7WACO1wMCRfM39V+NxzwiLVlnDgDUHRrSl3u8JsBry
E.y3PyCQIrZEm8bzdg7xLufMx8zp.+e4equm2Ky77.SVCdMO6ETP1mwIUfaA
B5SxM2GL2skltWCl+wQeTXqUYslS05CkT2aNnhkKH7.++z3PIQmcGSjuVQyz
NeVt3lv49nzH6uhVYWw3aBOcD1V.GC1+LsEmJ8AN.QPqEQcASXvFhU7YitHB
rhrFec1L6x7QR56Y5axnb9FtL6gdYImUoClaClleFhunDfooI103PDP63tI7
xVH2IEZAovw4eqXFMsYmLI2w4v3zFSJ4SNB+lCuijAGNbH8x5XE6YvQj4NnS
YL9JjwdxcrpaAQqX68cIJ9X+cbIQGgA9zqfaN3Z2Aunbiiwt7KPuQKGLAKdj
IXnNUF7zoLk61oO5aWWyDBhZqISY0R+3KUncI0vUrgwgfXXS65WLh91EibBS
bbDTjIzCxxEo.uRfq7TnBCgB6lk39YYIQYJ4zT0Zpfrg2e8yzo.zm2RxNFbI
pEifdHwKZW6hYH7WpcY3UD9ZYdtAo9tAuz8VynfPWZ4o0NIG5+1810LmnfVU
QxoepNVVRE8JGCOlHb0o7Vy.hjgpTW8sOWrm1VU6J4jCG8winH97esgHxGSd
wBPJVLXG7jujTD0dXxizsqMuOSHrlnMCZ1Tqcetj2IEwnQjJVltVvrwuYxXb
SVlcRJmKeJmK2P3ZZQo7M4f1cUEDgNSprbjIEua2B4VWfCu9fVyREKmYTLNU
jquqY31JbXHzJHPyxdn5jJd18Snifl9M6VxLhbO3+2ZBmoOzQHnYl7bshZNq
CeyU.rEj8zlCAwf4ahDe76KgaVq82mXUIqUYs4GMoy9mub2ZfzPj1v71S2ys
n+oT2whS5HvIZBvIYD3jNQ3f9FvIdD7Y4DfSzHvAOA3fGANn26jTskp5u44j
iL5yHG9kP1N+7JJxb01jxxGoppFmALLiGtWBwUxb3Qlv8HzRMPQej05+BvBQ
Y5xqMsepUttc6Sc+2NP+Oknl0HuFjec1+HBXmoD
-----------end_max5_patcher-----------

Here is Mr. Blue Sky – ELO run thru the patch

Assignment 4 : October Evening Stroll

The recent temperature drop has finally allowed us to feel the chill of October!

To be reminded of, and to capture the sentiment of taking a nice stroll in an autumn evening, I decided to take a walk around my neighbourhood and record the sounds I encounter, both natural and manmade.

I took both active and passive roles in the processes of listening and capturing sounds, before having total control of manipulating them by deciding which parts to edit, keep, and discard. The absence of the original visual information not only allows the viewer focus on the auditory elements, but also prevents the site-specific details of my neighbourhood from becoming distractions. The process of focusing on auditory elements is assisted through the visuals that are formed through collected familiar sounds.

The sounds, which had been creations at the time of my evening stroll, have now become creators :

 

<pre><code>
----------begin_max5_patcher----------
1448.3oc0ZssaihCF95zmBKtbTlHr4PR1qx9brZUjC3j5Vvl01zzril4Ye8A
HMsk3RFfVspsPv1w+9+ye+mL8G2MKXG+YhL.7Gf+BLa1Ota1LaSlFl077rfR
7yYEXocXALxQ9tGBl65RQdVYaNGm8q1FkpSEDaqssvpKorBhxNEnWZjWqZaM
ro0JrJ6dJ6vVAIS4VXIQQKBmCfwqL2hVZthPKBA+cy2glakldc88z.SS+7t6
LWl2Scpp.epfJU8UCfcpAIdzfT6Rek8JLIzpGgcqAIshzM0pSUD2jDHoGX3h
f4c+Iye4zLEkyvhSAmm5brB2n6MJ+rfrBZ04c8K5P20dZAggKcZOOSsk7Dgo
0lEGwO0rxZG1iTlaYiqyobSKWLfBNu5h8UqT4LEgo1JUXEocIcov0SKunfe7
PAeGtPQJq3tE4YfxAv5sqtZeOWThYpLtvf7ZbnqAwEzCTMjo0xCp6aFgY+HP
QydTF7pAWxyaA+cXIM608JqHjbW2vE9jRo7rb5bTWnoPzaGz+TiKnpSWeYTQ
07M48z8ptWKMvR2cZmOUsYG1Mf33WO.YQsPQKIcqAVY6GvMeYoRPzC7b2s8Z
sScenoQWK2n86U7I8.UsPVPyIfM1aaqq.IseNmejAPgCxhGccK93kVRUbr00
EBF5yoUB5p17ZcXaIVInOaswcnz3AOGJVXdtVnwHiUOP+zTAInUHKjrN15Ez
ue7DnWH4Pw1l08j.KLNUR.PyOSEZjrLwn+IPnMx.zGXDm9UvODfc8T4C6T4g
eX7v3k1anDuJ+0CHN566xLL6n.WA1XjBXeAGqhPfM4zR.Lz76FbNtRo8gsQG
EhQx30LEHZx7hjXMRhCsdQhRV6EnfeErju8KMrDNnT+7PTRiW5R8ygCod0+v
OJyowTuq1uW8Kf9x2U7uqivc+IMNfhGDSHzGP3xAtIExHuwShPA+uvMPbh0s
WTiC.utAhfeNtAj8Vcu48PTpk+BQ1.fHuw+hBCFWWaNy+ln73xJYW93PIo5X
deNt1hsYCDk1bKxGZfVMst1pK2QDAmWrBMFoHhs5Bg14T5voJmHXpyBvdKwq
UMxSfv4lJCLovOxAD+FXyS3hdmED5V0e3x3KXAtrBtp9G8UkkbEN6Qf1D4g5
xJPDX8TiFqcN4gdC2i9xJZnl8V.ArgueujXxKZXNLh9PvAsxFl.t1q6S3xdB
NiAToi9KwGHuCqzkmvtohHt4zihbdORsDkTu0P.+DSiFynkKxEzmHSUzCmhG
CiWjLGrzqaCHzqayonjZS5f.WNgap3Em1ZNGIKSXSt.ez8XEmxTRy.nlyDi9
ujda6r9lcrfrbijlXtq8yTBmTGKFLZek7PMsUL64L04ib7OETy4YdMbn8D4h
u36tGm8pfzl1L3okYYz3Qgws1EbdoEBW4NB2jtQvke5LtLM7Ivuv4jTywwoc
GGBhmJav1hxbtkC8xoh9JOMGM9bPPyk2i0461.QtGjU2SLG8kiSqWaU0JiUZ
FufKbttun3+IFHQgqc3o2pb+xh5ejKJxagOMYSR15foP2OKz4C3RX1.Z1xJz
p4.O.snOD0bEDG0vBulKsONy42AY14Infxd66GytVLs+ZbTxqEYsSaiP0Hw4
WCCQpwC7KmRdaYdyaOP72sU0WAYNqzWNz8qHIC8Ump1.kTODT5qFCWjqqrxv
++TDL78BFN4BNNraUNbPRNNsGhtcqeXRpWJY5XHo9vTMuMjI.N6inMkXN9bn
2vOthm.zHfuQ8RIWMBRpcR7yYFC1IJ4F13Fljh5ijFi8IDpudrGrj5gfVNE1
a8RCuhjGl41alUODlgBtVIA6CgYnTSXeLBfig4FD96QMcoKgqpdhHjMi1JDc
BlOvsaqKmaejxbOZysKPPdh1Nd6+AMAXgNUOkNOOS8.lL3ddk68eZK9SvzEN
53HZI+y69O3HZ.tG
-----------end_max5_patcher-----------
</code></pre>





<pre><code>
----------begin_max5_patcher----------
625.3ocuVssiaBCD8YxWgkeszTaGtk9qTsZkShyVmB1HvrMqVs4au9Bzssh.
dKw4EPdv3iOyblKutJBtSdl0BAeE7MPTzqqhhrlLFh5WGAqnm2WRasaCJX+T
t6DL18IE6rxZ9SW.3AispWJYVqCVDcUbQISYOBx6FkcpAq3dq0T09uyEO8XC
auxcwRyVihAjBj40lT6BxZD3g9egevBl9Z8YBZ.R2Qqdol4NDXK+IAsDBdv7
82Vsx7HdYj9DWstV9C1E.sptEfAjP4BvaSLzNAYcEXTwTNA71q5DBK8ClB.m
lai8YHenew8g9e4RvnKwRWbtimaWmNAayumJ9vw4hO.kytqTNbY0Drkza23A
mSuJm4B0+Ig6p1wZf+990PqXJVyiLAcmimH+HNdThSlf3tDYGwSQSlMmb8r4
X.bGU7zMMbe7nhKNJ8UmON0Slk5Ia6o9Twbxjw73wdEz56nfUvCiWmq8DaPD
OJvmeepuum1nj0xxkUxahrfB2bMXqTHaxrfYq3EGjZe1jA+mra7jgMy1nK2k
RjOkGXi+dfq3KrmJrjK92AdsWLi8+1A0J6Z1O.ReP.79c6.qU6bnJtT7G6wL
.pYSiFC7EHMWAjY.RmDnyHG1ir4ftRtQtEbfMSWNFxnvibw3HiWLx34PN+FE
UmS9fytA.MnAmU+ft05GuP1JfP2ZAjePWLNzKSAgy8.5LmLaY.k4IPKUAYl1
bdmYdHJD3GzYgnRfYdq4KEjFDIjWPmLehiqIGst9YVSa+uaQU2u+jzt87X6R
tvsz1dF1vdlOr+TqEZitasR2ptqw0x+bgaJDXkTCrni2SaMxus5WDzjIpA
-----------end_max5_patcher-----------
</code></pre>

Assignment 4: Messing with Recordings

For this project, I didn’t really know where to begin, so I went back to the tutorial on the pfft~ object to see if I’d be inspired. Thankfully, I was! They made a patch on that tutorial that dealt with capturing a recording and processing that with some fancy math, so I tweaked it to create recordings with a vocoder-like effect, and used it as my subpatch for the pfft~. For reference, I included a link to the tutorial at the end of the post.

Here is both the subpatch (framerecord) and the main patch (frame-player).

Where the fun really began though, was figuring out what I could do with that recording. Because I used both inlets of my pfft~ separately, I dedicated one to recording and the other to doing different playback effects that would be done in the main patch. The reason I was able to do this is because my fft treated each frame of audio separately and stored them in a buffer~ to be used whenever I desired. So, if I wanted to just listen to one frame for a while, I could stop the recording on that frame and hear that particular frame for as long as I wanted. I added this capability into the playback effects used in the main patch.

As for the other playback effects, which were all facilitated through a counter, I added the ability to speed up playback, slow it down, play forwards, play in reverse, and play the whole recording forwards then all backwards. Lastly, for convenience, I added the ability to change the maximum value of the counter so short recordings could loop back through without having a long gap of silence while waiting out the space in the buffer~ from the subpatch that wasn’t used in the recording.

I did a demo of all of these effects, which can be found here:

And of course, here is the code for my main patch:

<pre><code>
----------begin_max5_patcher----------
1345.3oc0Ys0iahCF84To9evhm1UJMK9FD1m2e.q19X0pJmfSF2BXDXlKsZ6
u80W.FRFfPnjH0QZBwfi847cyGa996e2Jucxm4kdf+D7IvpUeWemU16Ytypl
arxKk879DVosidIhG4aNxDY+vac8yejUjwR4C8XYkJgqTujycyjWo3XFKwac
2uY9+PhjoLeIQTp7.+ay.jyJzCuhW7YdFaWhcXfsOrfWxyTLkPl84B9dkaR7
23utyGjnM9uNfYUohLMlrLB0hyBQy.cxLHhsLSt6KeHD60YLbDyNHzWwpZ+C
hricfxVnEAAaMWf3f2hmR1i73OyTpBwtJE+0uUV6IZbEFacREWdn49sOnqUJ
QlcbDGxI8s7AYgZpctwG522CS01TyC+Pnwh2aGX1Hqf9erHSnD5fgF2Wq44j
dUo6Uo5EWP.otC+26em6aMeo9p9x5IGXqcn63ECG0ZBL2wxNdg.S+dCx5KXJ
HZffIzHASXHxD+f7sWn1faD5jfoFqim2rsE6koo5bgV7o3Oameu+Ng8BPlk7
BP8.GbvPe.SAd5Aw9G.Jgtk4945dsis+q.QInTIyy4wsCUhHiuWVkYGufoar
BGvX4OhwBAI1bNXzF5ZPnMObazcyX8O7xpTm0va5DkNehhskX1hcQH2Md9QE
qP8GFGMPCIYQrFbWAgwyfvz.qyDQLNVHb6clw+kv.E8BE.4g1n8qfxvYPYLM
zxR2BHPD81v4TdYI6H+sbNV9T1HUGuzpqcnOcnBevwnuIwUS3.agObzsov2f
ruJeg3d3b3NA0g6Ha0r6XQ+OxU.cOMw5lp61p27Bvuoj.MaEohuwAwbVLnLm
smC1wUOw4YfDoLu726uvOZx4Jz4TOjFYWXDFE3RRrEKvj6mEKmyiarWWe8A5
bJIhI1bBnO0VSDeiVEnLQDOpLokRdDENiLEJxlh.oN16zbaJU1qQn8V5HX6H
6q+ai+uNRHIyQBYiMxkbbqjPp29hRNxBFmYGtLUmSgSXna0hfZwB0edmVyvn
HZYV0ffmO4qyEpqGf9ksd.ZVqbVucIqNQW..L.MwxAA+L0BFQIwxojBglgMg
PfcTSPuQwEY7mzH7szWG.THmWYgds.9yOyn1BTaNtaVfZ8SCaCDYpliDy7uo
4.VDZOVD3PBlHisARWIRraWEA2HKhRd7XBebhuTkKf9yW9P2xEK+5ECEWXNq
D8FomtLQxbTF6XXXnggjaUt+8VGDdFxfZB4CtomjF+ar38WyYgeERhli3O2g
Qir6QfXS1IzkmywrNb9h0v2Ni3XGOnAtS2e6FDs9x8IWM+vA0Obm+o6Hu1n+
Y4L0EczWwRayY+O0uqA2oCCcN3oFT65ice5m+Ngryj4AmYqJkUE6aXXcHIny
jEyKUhr1WoxmZIloSC6Tl7zYdeLWd91tryGbJyGbQlufIYOMZf5hpTQbtTuV
ZsWDif1kyp2EjOts0hfQ5z74zwwXzVCpv9NLRckl8WLLFtDXjBcXjdBFoKEF
gSAijnEKXlLcGGYPiBEehQYaXaqkAigSNAvePLB2Bcul.p6MvF5doPcag7cG
dlqm1VKC9wWC9WfIDO0BvCGmiHV0A3HmVXXPaqEAgnI4RCVt3bylj+oS9IZA
h2vj+yifGAiWLNuAi0twECimO68iQ7h42fSxlPF0jTWdJPu5xxfoo.oyUknk
Gp2MjQ41cEACGLGYikI0xC8Caa0Cl86WkHKO+QdQY8z5fqV57Wj1eT3ZWaQl
qM10tf+nn4m3N5BOVgVBqRqespvoJ84f5s05kJ0PHqRzX4rXP+w+CgV3GgB
-----------end_max5_patcher-----------
</code></pre>
view raw gistfile1.txt hosted with ❤ by GitHub

And my subpatch:

<pre><code>
----------begin_max5_patcher----------
904.3ocwX1sbiBBFF93zY58fiGta1N.9+dqryNcHFr0NJ3fXa5zYy09hfll1
FUhgZ5AkJB86iGfWdw2t8lUtaX6H0tN+14ONqV8lrlUp5ZqYUeEqbKw6RKv0
pF5RIuv17j65t2IH6Dp5yxDrFwdG3gWQaJyoEDgpen9Zy2pZt7+wuPfiaqr2
8MFzWcEVj9XN8g64jTgNOQw92AV63640V.gwsEHzc.m+12qZwqEDUTbU07ua
uosTVr9hGlUrBAKEy2e3U57V7ZEQmft04OPwEtqO7WumYShDXx.HAMMR7BCu
JHIiiKI3zzlxogx.n.dJTDO.JfifBuX0xBOjpPykkiD4zsjc6cpj6EbPykEm
bYQz7YAJLosHJ75wBnUYQ3LXQ2VjqDKRYMTozHvI.hbfVFGAy.G9vHkTguVw
..9l3QS4FBe3QaqF4FL8giFuU3V0DAgeOgh2ny.f4ZF9yP9rGF.XaQ.XgUOy
D4zL1HRm4TQKn9Zw4HlhF.L9iAFP3cAxiZi63RvRxket2p6RfWfnQ21ijkE.
+XeqbgUg.X9PnSpvegUNkCRqZpH4BHfVeP66bIOGcLqDmyXOd9icsDf2BKMt
oIKiv68P.T+LFLxJXXwINSYRxDMiSMB0qFBPp0FnE1yM2oVf4hyegA3DC+4X
nBpLRg7UTP+6EbzSRY7sWpQa+Sfh4XlRuR.kzoShV3Kj9Htl7BGWYUcR+4rj
.fN53xk1is5VnaIEBrUAg27AQ2QlQK7kPSk5BrJVw2zWn.MasxtCPCuFFr2a
vktVaNXNoE6A.i2jfQe55YdKLcabKxoe4K3oBT6K9DtpYM7z9AcmaHmiB1VR
sDUXQNidTiZcM11pgmXLNdwlDuDqEtPSBWvGaTY91Jl7xU089eTl9iT2PLBb
3Aqje9llePqDNOSBmu0nO5LnukBGbpv4YsvAMZuCBX2.BMJf1Y4Bzncq8okM
BXjQAL1dHMz3QnkBXfQAD9wY5OII4iTeUFX2W5Fnsc19jcxQiTkfAFkid95O
cTzgmduKRG7Dt5JIKWVCNir1CAFKqg1HqMRzBZOMY0RqowTz3mIl3oNGTe0W
uDzgm9tlbMKq+ztY6NSALdmqkloL53EqFNnIg6qR8cFQwUUOS30c8PGIoA8m
Xp4fn05myo5m0lhkWj+479tDnqBykljERGxMbsw2cgcWF0sjImQoM48SppbP
9q+CD2nt9B
-----------end_max5_patcher-----------
</code></pre>
view raw gistfile1.txt hosted with ❤ by GitHub

Pfft~ tutorial: https://docs.cycling74.com/max7/tutorials/14_analysischapter04

Assignment 4 – color + mousestate

For this assignment I decided to experiment with the mousestate project. Based on a meshy patch we made in class and the freeze frame patch from Jean-Francois Charles’ tutorial, I embedded two pfft~ subpatches.

The first one called “hw4-pfft” is in charge of creating input matrix for the mesh object and a single float value from amplitude bin for color shifting. As shown below, the value is scaled to 0.0 – 1.0 before entering jit.gl.gridshape, and the specific range could be changed depending on the amplitudes of different audio inputs. Note that the two other float values (saturation and grayscale) in the message box can also be altered based on changing values like the first one, but since rapidly changing saturation or grayscale don’t really create drastic effects, I decided to hardcode them after experimenting with various values.

I also incorporated the mousestate object to track the speed of mouse movement, which decides how often the audio “freezes”. The last two outlets of mousestate indicate the mouse’s horizontal and vertical movement during the 50 ms interval. The faster it moves, the more dramatic the freezing effect.

This is the first audio input, Sapokanikan by Joanna Newsom:

Audio Player

 

Output: (Mouse movements are easier to see in full-screen mode)

 

The second input audio is a woman whispering in Swedish saying “never tell this secret to anyone else, not your best friend, not your parents” that I found on freesound.org:

Audio Player

Since the amplitude is relatively constant, the color of the mesh object does not change much, but the freezing effect is especially interesting with (creepy) speeches:

 

My main patch:

Freeze subpatch:

fft subpatch:

Assignment 4: pfft~ applications

I decided to experiment a bit with pfft~ and see what kind of output I could get by combining some techniques that were covered. I decided to take in 3 input sounds, with 2 of the inputs being cross-synthesized, and the third being convolved with the output. I used the examples in the pfft~ reference for help with this. The sound ended up being pretty cool. I then took the peak amplitude of the output, scaled it, and used it to control the saturation of input video from the camera. Overall, the output seemed pretty neat. I’ve posted the gists for the patches and a video of the output below:

Main patch:

<pre><code>
----------begin_max5_patcher----------
1491.3oc6ZsriaaCEcsCP9GHD5pVOF7gd4rZ5xtMn6RCFPKQayDIREJJOyzf
lu8RQZ4wIQis7HpIcB5FaXpG2KO7bN2Kk7me8qlErRdGqN.7Fv6.yl8YyHyr
i0NxrtAlETRuKqfVaOw.A6V4pODLe+wzr6z1wKYZkDDAgfqoYZ9NF.c3jp02
Wvrm0ggDMkbQASauo3iFU1n6FF0MLO2dwl3dUzxC2B2Ypuuh4lAAqnhMAf22
c7JpNaKWr4FEKS6NER3B3b.do8KDFY+EdAD7d607Ou9Usea9Z9nwiJF8izxp
uLIfP5iCBqKjT8oQAjYJGMGPhIsy+3DOfBYxxRlP+8vvaaD.8VFXMWUqA5ak
.tnpQWaFTIa1rEPABIulA1P0r4smp.joj00f56EleUy+al8FXtz4.pHGjIE6
jE6riVBtkq25N9VtJ2cy+Kwg7nfKXYxFgMYhF5RAp+kBXeKEQAmhugsPLNZo
kvECa+JIZRHbNAHBN4JP7XTf3DbKFPHwNIXpGHeFJuIsCt3U2JphZPMl5Flf
txcMv9AhC3yZopjZmKw8gMnGGaBlOD7AkZYLgXqpLBNgNT+F.t.OELjvnQYO
EZoFgg14NIcBQ.kwOQVBBmBPfbBOZt3LP.1YJSRhaMpiQ+TIRHIiUj3.jHBd
x0H+JfrXRXGdQhjF6ZmokjLR.3Cb8hpa4F8vsWTMQbeStvSu.eFteTpqsDGq
OZuA.ZZ5O4OoezDdSeCtVG.qUFCg19I1wyYRPlg6qn82NAdJZmH7TsSDCc1B
tZDHGyusm1wv7aJWwTd1WXsTna6bydEspzy4WHzBycyF2eWwoEA8fMnG7MLI
Duz3lcbB8D8Rhb6If.8mYhVtYiAPlRq197TPiohSXZ5Qv.F184HfgRVcMcC6
60bYExZ1k6pNLRE5xHUgmpisSWDJN9nNYIK8.w4QQLYES7eD.iPdx.F5q.rj
Irr8mbaFBieZf1ZZ1SwO6BQxnwrOpN8pCLiilPvrs0fMJ5p1cqAAIX3k6rMI
0CvmP5Zx4aLsfp32c9FN5fx8UUgvoTIWS0MJplKEfeYR1dNA+T0mHnqs5DKN
jBmXJ0JUlrlBt9HDAsHXj8T0W6n3k9gmz0XpqILTH7mpckgG8txRr3RHb5ex
E4zrQ+bU6q663S07MFR7c4qeTMJhFQihoHG8e+iR+vmSvxb85pB58eAbMsIm
KWyKXf51zIufopupfWqu5Od6BJeM35BorZ7Oty9bONg4QMeinszzPDGcvlSj
fOtf8gjltikeiIllK5Fp1XJspQ6d8Lyd.5LnIslmoaD71X9l1GT17tCsVVTH
ucSgbEsPyJqjGyL16.HzYRUahYbb+5CWJycflMBAGFWp3a3lYZASrQus64TF
gHKhMycMO6i0OL4e3zOj.H61I5NbE2.NOVJ7oFZAWeeeYglaJppULyU6RgNJ
WGm6kjDLYDJvHmnCQf+HTfqXEb1Nl5pLSSZJYwTq+P9Q+0AZIvidgLuf0eXL
LLbQ5Kd82i95SWuV+Efhk2jwTlVSwgfguYNxE7tJNK85z8D5ZJ.G6XWno7sU
zmXTtkUxohqTaoU0x76eFJHR7ifbOx0UPb4KdAYTRDZAdINBk7+UEeZUEwi4
UlsmOc1pht6h8Q4+s+0Wr211C7MXSsrQk0kIcaVBbDSM2rFXVb6V4d2CuGTv
IcBFb.a+aub9.19+BwWALcHArCG7P.CujI3AZhJmorFU9XJiGRJP7HFiFT.a
YQHuDPxfVT6RKernFM3YneBHYXAzezVxfHM3kdKfXzyc.Gj0CIzeP5fLW6.d
ODPzfBn+jgnzgFOOoBGFkwex9nm4309NodVC3fJVE6HLeWsJ3yYBzWwRjGRf
AYJzlkXu.3CRg5QB0PmcdxhcPFd9yuaP9A9qBBZnnI5wZVmVUsiop2eEtHY1
wxGjV9bxb2u4B2uca+OPw1w6tD2e82.pxrsAsYOCMJ29YtKd+C.vtWOkng2I
Pr4f4i+kmTWo1
-----------end_max5_patcher-----------
</code></pre>
view raw gistfile1.txt hosted with ❤ by GitHub

fft~ subpatch:

<pre><code>
----------begin_max5_patcher----------
980.3oc2YkraaCCD8rCP9GDzwVGCNbSh8POzdnm5GPQPPghrbpBjkLjjSbZP
y2d4hkiiiWniHcQSNDIQQx4MON7MZne77yFDdc0hrlvfOEbYvfAOJaYftMUK
C5ZXP3zjEoEIM5NFVlce002FNb46ZyVzpaeVUQaUZR8SqdUS6CEY52spox4S
yKKxZ0SEdsVql29plyGqGrzZW.3USgomsOLKyf6vl7aJSJBGt5tfq556rj1z
ekWdyOqyRaMcG33QngADAScgiT+GKaJ3J8X9y4motJuLr2LxG6MU.aiJPGjJ
1KAfAPS.Lt10EiXdi.9fWH.Q+7efvL9Ow69+jIsRH9T.zWZ.sEZHN7vQ4TBU
cgQ8XTtbKeakbyuW12Sc11d.qVnIHg2216UBA.WwHjnXcrAw6DhbaPd4SADq
4CX67AYK7A4HniiiX.MwPi7HwrU8QSm+Rw7rKfdqUho8LYgQrDD53CB4+axf
0yLGhSFYruOlxLlejUTTc+QxJaSQAycrFK1j6gI7H+74mBPiXdOfIpm6d35D
u.1jLl8OJoiqCXhcV.iYCEKx6wKKSAg8QJHrv84f5jZdOjCB52lnH56nLP8i
JHmLp3znu127wHx5xqj2GxqNKc7xZ+NYhqfODWi7v22SeVZUDuSdwLGgE4ku
5DxzSp5EavVMUyqS6f2xipH.8LXFm0HYpj17px05j5rsB165h01KxF6wcp4.
aLG3Dywsw6XurSU0iyp0GgxoB.3c..vQ.3fDN3r0Wls96ZXZZ93YU4ksMunl
.fGqtHEi5dvSLjUPFNBHK1KjcQTE0FHKb1hJ0pXHjyrGwpUDvo1CrxdtQUBa
kHupnIG4fZCBVYPG4gwV4gQdT40RHv7n1aGgd.HPc25bj097tEyvQj0DyvPr
uEfsD0ziA0rXeqAisJ0tCWasJSN0cagsJIC1ceqF1Z64FBErxfwt0dfM1yM7
YWBxC+UBNzd18YBNxfHqqUB1UsZIylcWVcyxgXrkrD1aqz5DQCMOmWZd1TtY
Xc1c4cCgYZJoVVyXqrfw40lxXWvW96nDNsRp5TNOuStT4sJSqK4cy5DKSlty
SMQ5fSRlWztAujjllU1lVUXv3kAnQDHhSijjyHNiJPX0cBUSfjJVuv0gcTds
bJdUM3gSkVKekf4KWl1.oe8gjx2.RQXAixU3KJhPvZLGiA.HdCoeqNK6MAUE
1XD0ep6j4V3J75IT98jajSQxa.mwTDmqgHhijnTStbAHXdCrabRV6.qSpjlI
+2K2BKKYBwDHT7yaf2lyfYfNnHJFhAsSwjQL80UTiTd4uXXhWHA
-----------end_max5_patcher-----------
</code></pre>
view raw gistfile1.txt hosted with ❤ by GitHub