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