Author Archives: Alec

Project 2 – Twinkle Twinkle Little Rockstar

For this project, Bo and I decided to merge some aspects of our project 1 assignments, mine being an autotuner patch and his being an audiovisualizer, to create a Rockband-esque game that tracks what note you’re singing and scores it based on if you’re being corrected by the autotuner to the correct pitch in Twinkle Twinkle Little Star.

My personal contribution to this project consisted of supplying Bo’s audiovisualizer with any necessary info about the game logic, markers, current/upcoming notes, color values to display, etc. that could be variant based on how the player is doing within the game. I also created an easy and a hard mode for the game, with easy mode correcting you to only notes in the major scale of the key you’re playing the game in and hard mode correcting you to a chromatic scale no matter what key you’re in, making your margin of error slightly larger. As mentioned, the game can be played in every different major key, so users with different vocal ranges can play the game.

In addition, any of the audio heard throughout the duration of the game is coming from my patch, be it the piano playing the MIDI notes along with you or the autotuned signal. The autotuned signal is located in the “inputs” encapsulation, which also includes the game controller bpatcher I created, and within the “inputs” encapsulation is the “twinkle” encapsulation, which processes and outputs all of the variables specific to Twinkle Twinkle Little Star in a manner that Bo’s patch can then work with and draw from.

When it comes to game logic, we score based on how many beats you sing correctly (including however many the autotuner helps you to get), and the score is displayed on the game controller. You can then start a new game in whichever key you select. Regardless of what key you choose, there is a four beat lead-in playing the first note at tempo so you can get ready before the game round begins.

To demonstrate, I put myself through the ringer on easy mode:

This folder includes my contributions:

https://drive.google.com/drive/folders/1Fx1sD51GNGYjVY1dpQXl9M3f8qIQ4ZKS?usp=sharing

This folder contains the overall project:

https://drive.google.com/drive/folders/1LLSwpto8pGiUxBWq3klx1izvc2katNzs?usp=sharing

And here is my code:

<pre><code>
----------begin_max5_patcher----------
8433.3oc6ct+aiibjG+mm.j+GH7fCH41Y8v9EeL.A31Y2MOPRvc3tf.bXm.C
YKZYlQlzQhZdjfa+a+H6toDojHYSJRZJ4uYQFaJJYUc0E6t5pqOc8u9k+hWc
0sweIX8UVuy5mrd0q9WouxqjuV1q7p7W3UW83rub2xYqkuwqtK9wGChRt5M5
alD7kD4Md+rnEVIwVqSlsJwZwrGC19dh17X7ljkAIx+D14ub3b4GL91+92xb
19leZVxcODFs3lUA2knjMWOx01uwh6yuV7FKBglcE09Zaq+V9mZcxWWFH+yU
7aMLJ+KkHew+ue4uH6mo+3MmdC9OF7UqYqslEYEV31FzV400VEtNEZqdrIQS
82uIv5W8CAIAqR+dBlac6WshhSB90soUSqsG1wMqg5y8x9AQXOIZ1+4+vO7G
rhu25t3UYhZZCOqUu88sLUWbW7lH4al1BUgccpB+Ty6zddeaoFwS9uL9yrl3
62jpAhRrVmpJZyy0T25ZpDhuuramvksUmIQu9uc4rEVga60K2maPSlUaS1VH
jcuplLw1eRzl+93GeZ1pP8H3AAEZ+ZqdqGyZLAqsRdHP8BoOXj86qiiVb7GI
XsPo0viDRclimZ7etb7+rgJFCcVTvmSkvCUYqrdLHYUbEVFjizHI75sLrkyx
4Xam0J4JCCZCMR0WYxWeJP8W4pq181Ko.rG.Efbp9Vn.bsqWAjNMuX6TebxT
WArt0CG53WqBfRbkiMnlEzPKfdxL+wf0qmsH3vVYpyMV1snS1gaRaTnFFjw5
2NYZ26j273sAqpncROV6jZR6ziJMl0Nzz914art51TGqqp8R1IBqR83N0Asa
Bhlcq5ua+aw+MsvNPPpepekGeZ8C0W9usV+j44c+aJTQq+eOsarMC2KLQA35
Ic2iQ6lAxnp.Vm6SPabGx2jw70C4IbGyg7Z8i7Tm56QExFgCmdN9HeqUFbS5
Xc41WPi+8a9Ms34eJ0DEjiu6za.v1ZKP7Lpodd9fQE1BOYk74vnOtLnMSI3X
jdRsB.CGLzXeiHk9pS6eUM57V8qt59vkAeJX05v3nhu+Wc0rmdpvq+phenLk
0eOV92x8M6dsvH0qw18ZqB9TX9eBwtWd1pT0PRpNXyJUC6K6bfL6uT77fUQa
B2MRup6KWz1o8ndpfHHj+qJFgd7hKrNsqdwx369Xv7hSVkpAeJHJL5oUAqSW
a7rDsLt69yCte1lkI2bebTx5v+oTLk+8O1a39Y2ET8GOJKrnYsxuaU3rkaam
WsXU373nLAorlO60y+JSMPDpniUpMIeKQyd5Xe7TatT8SU2Mc4aIaVe6rUYc
L5mSnauaRb7xx2a2mbYv8I56+TXTz9Jzj3mp4tqBW7Pce5aiSu6i09mWdq02
rIRc6aReXM4l0y9zdZ9jYKWpe7cuuguLKJ7wYIAIgp9Cp8t6pFz3g02sJd4x
xsa0s9zwt07Ty66B9b37jGjeYkLOR+.gOkaXc0tt84gKBVmr2KlLaw58doCe
rO801bq9A4aRBd7okosl8dGkhteoGZKNnW4aTe.i1K7nYw+HKfQ2FXsYcv7r
ecySySEDqrwQ9ZxCp.JsHH4gcSmTcbhpwixCFHkT5OW0wQmRUwYiPNHlQUoY
qvCyWsa9i7AgFF05uO84iTqBKYzmKF7wpC5bKzb6BAQkwhmHWTtqCSMR5AAf
dpp39Swed.0ahlzaN1dEzat9SI8VYmX1eUcou0GCmGdUGzJrFslnRCHWhzaF
GwA9zLc0JgQcUqPazVQoNx0JjIkVoj2+0rBfCZ1DCMFbbkOhbjEBTWy1fEDT
sSuMrvfIg9S3YnYyEt9qlmJWFOadVjps1a33iuzqCTvBSMPUawjq+IpfqSw9
7n23cQuwcM0v7RSust7l70h4.37F8PU4SJkIUchKi4.XM5dIUsk2D0hYeANF
1JqOF70N7THSXnpUM6.yc3dHbbUXeqEqKpKtoVhpjP4HQfsU5qRQhspnwNdi
aEDMuCiZ40nKbLpL3jZOW41mO9yuLHZQxCcQoX2jRgyYEbmWvNeTJ5XXmsb4
0cP0313v8DeuBpFcJdQOChlPdJuIy0oeU5S2eHx593UV2oRUp0wQ+59M.CM5
8OQsiZp3KPrcmRAXP0.6xZkcZzOIakAjZVM67+sCs5h2Iuu+fORXz7fu7LZu
MKZt0GhhReYKGqCet7TMyDF3fF6Z2cFZdtmMA.7GSUcw2WJ2y6GcViq+gQbJ
D6O9YSr+9FK6trN5Fcsh6nxmCUZcbQ4ZUGUYMFnTNkAUVIUViQQk4BqrJx4t
JUYLXkUNNMMOenGrxJqxZzSUJ+r1Jq9cYTtLxL+LxHeHakAV2FLKYc+tZ.tn
44KDEb4vmbY6xAmX1xDXZh4tnL49i0FuvpLgXM50JUgZlhzB1gL2MQsf1tYF
B6tXJwZzULemcgQ0SbNsWF0ZF8WBd7otrUFzlCxiJc6TFRB1TxPpVMx6CVjN
7cuudQRidtplejphgJeRMzcm28ZSiRJ18Zq8VZigSA5XpB9RaWXkOKFrpd0F
upg6ML.i5sAx4D21L4YAfx5L6+2fiDhQUO9zrOZYW7+5fUH0yvH9KbUZRuAz
LzcjMCWtLeCStN4KIcvXj5ZXLM3b2dw6iBlhFOPYVhTO+FUtieyrjjUg2tIQ
kIwu5P82qtJHcFi4kGMsX+wYSeiigAOgS3nuYj6aDFFxAlJOZPeyH12vMLBZ
50li9lQruwzscfql1A8MiXeC0zcQSCyF5aLMBiNcwwVhgcGLUNBegsQ.cIuf
o1FN5xkoJi2AUFw2vE.bYpx5RhbRbMzu7KSUVWBUDw1TWxtHUYjNnxLcOMuD
0XYYYVpDVqdqxXcyZN2nJFeMB8DRYX1DBzAy1DIhh+3WfA69wYeTlVwop.2r
cpqVqKVUdXXpwkBgx1Zbcfd99kwyjwucueoF0Nu20px+1kjyGBiJtgU+pryZ
2ecWxOHyBEtieGR011APxycp39w0KCmu2C9EOAPJFO6sm5FYmWcN4aw4AsNC
Fzf3YXGfZGbp7aqkaFQSS1bFwHKwvcyQG+7KzwcShWrXYPGF.vz8BSMq0t+c
Pbx4bhMatYJtbXNeANcu7vfoaYjiugVkpI4cNw3f0jhkdtEHQSSMN5k5ViT3
zvJK0cp5LORpYxdCUzmsNdyp6xal4oNf0dpo4AqSBi1dJg8SaGdH6MZtkS2j
EpIxxQD5GCm+Tb5nwqyOOskKdko7YlcvEDEqUB+sWT9OW7p4piONxjnAmAsp
QsXlsm5PGV6Ya5UUzvrGvFluoFUGy7aTT8FKgbdiZdsQjuNsbopPAT7JJUsK
GJvhkW8Lzq3YZaNaqnG3m0cHlJLYm+RCsvXpr3O3hhv3NorSfogVXDFKLjgW
X3Fa9loCcFVgg0JgQLrBCsUBCeXEFRqDF1vJL1lJLd1CuArwOLM3hB2uUcRz
gUX7ZkvPFVgw0TgIej5gTXLdhIwva9xM9AaxHX.a7y0F58l1uYpft8pJ7PSL
EZVThwsK4O3ttau5YvySyaW1srcwnM0tHSg1EwucsKlWi8WzIQ6xsksKdi8W
rIQ6pk1gT+F6u3Sh1UMK21YHizg4QDXDhyjwdhwF9E7wLtuSt.HRs1jThW9z
WxiBbu7f.8bDtgVzxXF2xH5s9RknJD6mm31YdKiZdelZGo808Y9U1xnSiVFo
ssLAqoVFaRzxjKNpMOmU7GOCC92hVlWK6ynNM1mIlFsr1ZM5Z2TCaPmNz3vG
M7A+j0lfeRdNFs03EOb3tormM.wVVRFI5gh7bt1ik8+zuzyvjjTiC9g6v6KB
0sUyqMvBiSqlJZfEFQqFicfEl1MU1.KLrV4k2.KLzV4L8.KLlGI7Q3oIiiDN
cD5lLd4piirPLVVF1fOSLOr7tCthgX7jAzgOduDimLvotLJfNIDQpoAkl6ox
W.a2sW8L3+UKZXl1tTmaKpLwozE4dlQ72d0yfSYl2hId0XsMjKmkX934C+Lc
jVsLspkk7arq5W1TV08u5XAHbwx3amsTWbA2VwJquZDtqnEtUJ68Jt5Jqh0i
KSJ2ptFUulUkaUtc+VtUsGf1+56hW0p5MqccJ.pdfDaUXCcm5s+0EKbJFT5w
qs9qKnp4M7k0edl+nV3wqrAtNY1p1Tc0Y00DyJlU6Zhb1znIVyyvGqEVaUF2
mISlYc0imSmBsvB3mZxSnFXi5W4wn6yXIBuWZ80VNrY9hysV+ZqG1DzBi6Zm
exUcLSkabaOELteJqA9sON6ompr9veTqbhIMT6pNxyPYOurieEK64B0BDr4J
tAUSk6gxdNJ64nrm2iDX2WGUID0SnNr9fv5F3q7YGx5NWTnZlxWsdj5vO6qJ
TcmEZgoZI5k7Itb8UUq2Y8eGL+CQe+qe6Ob66r9OWkJ+AeH5Gdm0+avxkweN
8We8a+wz67mRGRzZwpffnOD8iuy58KS8yQe4u8cV+kfYKS+kW+1em7slNRt0
souiOD86Tu0ze40u86Ru2+0lUOsL8xu6cV+0v3TsR5u95299r6DF8wOD89T4
IdcMG23jtbdi23w8CyScjP6ohlnpBx4dFTgBk3wlcLhj9KwqV2QBY8L7AEhG
W4MECG0d8vIBuoZctyKTn4+2rHc438hYphUcvQx7N8iz7NvK+PQkswIEBQLc
vVxa5jpRhIztiN7agMQzSj4f8eYs0rMyCiaQ7s7pM5l5scftqjY9bGdqUAIa
hB9Yq+imBSE24AYAnIsSqxXZJNRalJpceGXTYTM8nb0l3R5VztVGtHJKRJM8
aKCWWY7OYs0N9t3UqTZjal83sgAQ2EbSxCqBV+P7x4JAy9ZVgw8ybb61Yq2K
9DYupRtTocnrZAIW+lLNmRWAT6KWVpnlERPaY3AkdlI+2zeT3aobmU43S7O1
LaYXxWkZyTII7tqJDCsmhWkjE.gn695dwpQZGT9uzl0A2PbtMTK1EEfOmt5v
3OuKfUN7BCVzciToeW+7VafrXBVzcqqNVb2tphn0cU0ggqBu4xLhJGRmxV40
twLbe4dp543bMM8mBmS0JeuigudKP9SZcLq98GQ3cVniWF9ofqWLKLZmZ9Sy
1Mu1QtcEGDeT0XlT6ByXTNKXLY3YaRySJQ3pTw4XeEFMTboiPx8FCd+HtSNt
9dmPd3pTHkG4d6P10M38mlsbSP78GYqL18MrLNZwQ5X9IxeqvdSr6smNt+pj
Z5HK8ly0X1G6lOl1xyt425VHBxkeCyjFYNG+1gQgIYOtomCpn+dEdWaReWae
jfuaaUFNWltOI9wVrOYTaaS1OXx1RxdutQYO2sdhuuI6G74RqukIBfasaFrm
iLE.04pzEXp.PbqexNhLWVDrymjAXQpmk+r0tyG68UBrioEnNFjwV4VAb9vt
3gA52FsdfmrjQkuImvJo+qcwadpAfc4xQhDhdR8WkB4xNyEnpxeJwysPpKH7
QpKfTW.otPm2tgrU.rIb.ODdUwqibx6VS4OVlXusVTHCYzToFQ+ovPaq6RWo
y7NjHCd1MqUkykvb7KpVmHEO6rhU7rEAUW0PxVZqJbboOO1wS+Y2Fs7n9NE0
QT9vUQYoiswUmMsb8L0zhMEMspUs7W6tVwwTsh5bo3bRq7GNA0B2P0B08rSs
DFdBODQMUuv8O+zKcedKWSm2hpp3NmUOF0YshioC4R7O6zJxU.Zs9tY0VWQp
TyvLUy3b9oYxVub20LDS0LryNMycOrJNcMYE1TUy0KhF85yg4T.OQs547xyX
+Tmhsy1R6tTqtDl5Vr1+Naw4jawlo.cypabm1xKDLS0iZOB4dWd5wr5umzXr
KJPpgJvbeGuDMDSeFdqwXWzgDS0g7yw03ZXbBrsy0icPExMMLA4tjR7u7Tg1
YIIUGGHjZ5yw4dudI9brsU9rILs0X1PiN5mt8zCSlklYc8QcpoOpqcrgQ8tD
Uy4pXQAUalZcPJy74ZTGsOhhKUMJufF0+DlNxTEZtS2mUyF0YrCaL1g9Z7pc
FYnCoOOLWkY3MbHWoJP1TUslymBhqNY7i4FpyUmZJSK5imPCCvLrDCO5CCPl
LVZTCK4n8hg19YIyDjz8Nuq6dlVQlssGzscWS7vHFAstqx3spHVOXprbzRNK
zYF9.qN3WClNaOTclHPlqw9pF8p3DK8xtpbbibZZ0tA8U0fe0ImfZKDXG.Bl
2A2YGLXzxHf4tC7qRHe0D1WGh9UVRaU5tUS+UUDf0.EXMPBV89JNTrR62xZe
zPVfcclPxBeBIKzIjrLcDE9zgr9ITGDwzCjcmoy4ZLqAr5KmyrUMz2t7vNiA
8+GYhPeyeNHZSgg0ySb6JZB2t39vkKkGjLUN6V9rsWodauo7Le5OY1LbTeNg
38lr45HLWpi72R+EgX+dH8Gjj+I4BtuMM68ycntbg727nLA6MV6uFI8mkt6a
0NcM7xuKaeOat52ReIR525Ae1YQKz4HdIr5TPHFmM+WdlyeMyu7mbSR7hUyl
GpWHU0A73MEMgVk91OpyLW8XZ2RXo+R3HUPQnRqnSoVnqcccJPmByFzobBzo
PbTmG1pZpmS9w1mOnSAzo.5T.cJfNEPmBnSAzo.5T.cJfNEPmBnSAzo.5T.c
JfNEPmBnSAzo.5T.cJfNEPmBnSAzo.5T.cJiGcJpRFNnSoenSwEzoL1zo3C5
T5A5TF8gAN+nSwGzo.5T.cJfNEPmBnSQSmhKnSAzo.5T.cJfNEPmBnSAzo7h
lNEYEOuUDpvpkPEadw5mBGDpbJDpvU45tm.Dp.BU.gJfPEPnBHTADp.BU.gJ
fPEPnBHTADp.BU.gJfPEPnBHTADp.BU.gJfPEPnBHTADp.BU.gJfPkms5mBA
DpzCDpHJb.EBBUFGBUTEzBJHToOpeJDPnRCYlMEDp.BU.gJfPEPnBHTQSnhC
HTADp.BU.gJfPEPnBHTADp7xlPkVQmBsN5TbbrKPmxQ1VAPmRKnSQcx4n2Rg
b5Tbc.cJfNEPmBnSAzo.5T.cJfNEPmBnSAzo.5T.cJfNEPmBnSAzo.5T.cJf
NEPmBnSAzo.5T.cJfNEPmBnSAzobVRmhMCzoLxzoPEfNEPmxHPmR+XnA5T.c
JfNEPmBnS4hfNEAnSAzo.5T.cJfNEPmBnSAzo7hlNkerUzoPpkNEhnHcJ9fN
kSfNEU.IIrRkNkr3fC3T.bJ.NE.mBfSAvo.3T.bJ.NE.mBfSAvo.3T.bJ.NE
.mBfSAvo.3T.bJ.NE.mBfSAvo.3T.bJ.NE.mxnAmBEvozCvonF2i3A3TFO3T
jJatMfSoOfSgB3TZPEYC3T.bJ.NE.mBfSAvongSgC3T.bJ.NE.mBfSAvo.3T
.bJungS4Gd8a+waaEfJ10AnhfWDPEAG.pbB.p3npdJjhUOEgqO.TA.p..U.f
J.PE.nB.TA.p..U.fJ.PE.nB.TA.p..U.fJ.PE.nB.TA.p..U.fJ.PE.nB.T
A.p..U.fJiGfJtn5ozG.p3n.TAUOkQDPEoNmgpmRe.nhKpdJMkX1n5o..U.f
J.PE.nB.TIGPEF.TA.p..U.fJ.PE.nB.TA.p7xFPk1.mBwuV3TrIn5ozWvoP
zQjrT4SQHP4SAzo.5T.cJfNEPmBnSAzo.5T.cJfNEPmBnSAzo.5T.cJfNEPm
BnSAzo.5T.cJfNEPmBnSAzo.5T.cJn7obdRmhsKnSYjoSQk3BfNET9TFX5T5
GCMPmBnSAzo.5TNMGd1jN48pxDnjkqZkRgJYR0crTBK+FGKYxxuWEYJV0Idn
RiFtXurOZ+I0arqyQZmyoxU8Hb5KBXteY7rjw0ycfPzTAgHJPHBHDADh.BQ0
iPjwpkiXW8X37mhSWDo94HWVVDm3pIy782dAXfZ5x.Ud+OffBPPAHnlxPP88
u9s+PqpRODu5.gJawFEpROB.B0o.BkpL8PKWld77.HT.DJ.BE.gBfPAPn.HT
.DJ.BE.gBfPAPn.HT.DJ.BE.gBfPAPn.HT.DJ.BE.gBfPAPn.HT.DJ.BE.g5
zIfvsQPnDp5ygG.gp+JSOd.DpQFDJtM.gpOJSOd.DpFTQ1.DJ.BE.gBfPgxz
CXrQyXCAL1.Fa.iMfwFfnxvgnhKHTADp.BUNCHToUzo3TGcJLWOTld5M5T3p
7b2qXY5Q9CPmBnSAzo.5T.cJfNEPmBnSAzo.5T.cJfNEPmBnSAzo.5T.cJfN
EPmBnSAzo.5T.cJfNEPmBnSAzo.5TF9xzCnSoGoSwCzoL5zo38xgNktpEYf7
h9Y3T5KGJe.cJfNEPmBnSAzozLcJ1fNEPmBnSAzobtPmB6LjNEmoCcJTPmBn
SAzoTAcJe2qe66aW8SQTGgJY8zEpeJLPnxIPnhJnjDVI.UHn7o..U.fJ.PkQ
L3EC2NZQrUmWUdNXKs5sCbMUBnfszZLOv0n3.WqGNv0F8gAN+Nv0n3.WCaoE
1RKrkVO6aoEvVFXKCrkA1x.aYfsLvVFXKCrkA1x.aYfsLvVFXKCrkA1x.aYf
sLvVFXKCrkA1x.a4IuBEDpLYpeJ.QEfnBPTAHpfBnxKCDUPATAHp.DUpDQkV
gmBuV7TH9EKfJd.OkS.OEGUtaSTwubaATg.9T.eJfOkQOgDYLTAUdVREQpD4
QlGGohXU5HFgTTGgTQzvTQTaZI3HUDOTqPYHUDOTsP8YHUDOldwgiTQ7X5El
.oh3gZEaAREwipYHtBjJhGWyvEHUDKkJhBoWeD8hnQpHVkawZ+6PpH1wTQLW
Op8HDohXaSEQsBL22QjJhcHUDy0gNbjJhcLUDyUgZWRQpH11TQLWAp8dEoh3
vjJhZ0r1wFjJhmdpHlqQUKt.oh3ImJh4JTt3BKUDCi5xoqRiAUj5HScSNWkA
h9pThefNHelPmLODggEcFeWbBccxmPW4OGpvUAmPWiwIzUgw9vIz0IeBcM5C
Cb1cBco3JEmPW3D5pOUY3D5BmPW.omyVjd7AQOiFQO.iFfQyYZkdYBUpWlXH
8zCbzLpzEkEWEvzCX5AL8bTlddeqX5gUGSOLFuHSO9fomSfoGBQ5zt9HgPyz
ivmCld.SOfomQODFt.oGb5hiSWbb5heoizCNcwwoKNNcwwoKNNcwwoKNNcwm
vH8fSWbb5hiSW7y.jdvoKNNcwwoKNNcwARO3zEGmt3mAH8vtnOcw6bhoaLeJ
BvmBpf7mg7ofJHuICCXZ4QezGFX5vmhg4kMmC9TZ.b.OvmRaUY9fOk1py7sA
eJCBeJDJHTo8EcFBPTYzPTI6QeCytdBc3gwveRIMdSJoYJILtSIgYBwMip4Z
DWFhQRXLRyPmNnyzjEC.VA.q7xEXkuwhTAvJji.rhv1fZPimiy0TwQOpgLBX
kRQ54XQusOa+qCVlJ+wq9YKZqzD67DuFMguh4DO6ShbmJzErNqKB9myle2O2
BNk7qqsRDtpyiKYSVcpbwECEkRjN2pyogXqL7ovfOKoWIL2q8sczw2e+5.c6
6acjGcnEGX7JEkPyWk9.5VTOxGd6p6VFd2GSWgR7lEOT5FG.Nxd24SG4N2tH
CwoxuT7p4J7r19REYSpnYnmtNFIaAdLU7wRWzsnj1sPuO6Xl5dtFXqms4Mo+
PPkq4jQnE+RNZ.zkm2Yo8KoSRTn2deLq11mrcPyOGrdyce75zN2To4JirRT+
4KuRGsUy9Ndja6bnCGdkcRsJ2vJu.nq11YUikq4xfsIhvVIsO9Fk+snM8Ux5
4uvlait681dLb9SwolT59WpBWxLywr4h7TOBnt7HcN18ljSZVxcpUx4d538q
2udx1qFJiJyjagQRsmqTeKXt6tbfz29FYmPcJ231StINRAU35ql2hu8pdwZ1
2HKhljQ0gW8PIitFMnhCu19ehsuzPUvUOvQnT2cWOPV.lI4DmAbD48UKUn7n
813iNTi9B8qnMaOZhffTuQs1.wSnx8CcZzr+kDl57H1yc6kCUOoQ1Rj5GETI
09pACcDrqcEGbomZawcoxll7pdwxPPZioXUcKoSOIEqs8CbkPu+05Nl7dQUG
SezJL6Y596AJpQc7TZ8VyYyijpObbUNCSrIaurejxrDzu4oRnLm9SwH3F8UZ
a2eekFMZJ0e.GP2LQfHLZ1PWM955GpjWNPCJq54a1WCe+9q2xn4AxUn8wWns
QCw40ieglMZT+s5Gei7psJOZnimHva4DgTwAWpmHzmyKLQ3vrzLyZSC1r6Cz
51Ldhqdx3z0rklSE0NWods3NdJMTgqFpdeSkadKjaW04EcUxMYLkaVajaExO
UI2zwTtosPtcbqUtYiobSZibqJ4OUI27wTtsagbKTwepJ4VLhxMwuMxsJfYU
I2Niob60B4l6Vqb6NlxsSKjaluWcxs2XJ2sYdGFgW632i4DOj1LwCkUqBmLl
y7PZyLO5hAYUBteuH2NlGT3pczSGz8rPr5J2Ba+cW1SdRYjqa82Z4IloW5uU
Ns+BjqIFg8zWHuMsvJW2Nwtvj14KiWdY+HkpP8SLyG5ZVJRpDksDpbmnYEcF
s+jSC8YtF4jHC7Qtump8ituESey7Ptlm2S8k2sfXVZpgdSL8Lyg3ZDyBt.m4
Pr8PHktl49aMRoicQSSGpXHDSGy71sFwjSJXYJDChTJLy215lIhVzxTPHCgX
xMyU1ZDSadQWYYChxjYliq0jS.dkFzj44MHCZZlep0Hl7RiFQ8FjmyMzqzFy
vhboj5ODRI0LWPqQJcJNADi26ira11xHpWWpcT1in17bgB+N0k8nbZ11pUi+
7L8l8Yq7KVnx2S4kCULvZgfSaVvo5LS0d2kCUPGo79vxPGlwgzxf2CVFZO6F
WKCdOXYrUvGSKCVuXYnBjatju0xf1eVFr9vxP4LclEaIKCxPZYv5CKibAeLs
Ln8gkgNT4C4XFzdvxPu.lwcLCZOXYrUvIksLFxbKc+8bniVFrsYUUIKCV+YY
P5CKCpH+YsRVFzgzxfzGVF4B9XZYX2GVFBe6g1xvtGrLzqSebmMwtGrL1J3i
4rIsHYYpeQd5bbfvIES4g7K4pyY.Ueg7hgZikMKgiDBiZSpYIYxJ0ydW4Y6q
NqaEau5YsS5fDep1lDgqlQcuKy6tT8SpqFpcRuEsJxoY7k+Su5aU8xHAD+dY
nV0tKMfNtS76igZIjQeR3VH3TSD7Qan182p+tYYnyAfgzxvqGrL3rw28rVH3
zlE7Qz8LhSeXYnyxhAbIcFtCw0aYnCo93ZY3zCVFED7waLidIzwr7vTLXNtS
5iPGq2Eiw0xnOBc7VAmU1xfMjVF8Rni0IJzPNaReD5XsWdi5R5H8QniKH3i2
rI8Rni0Yh0PNlQeD5X8t0MtiYzGgNdqfOliYXhbe7yE.8oivdkwW4W09ku28
KcuGor8VSI68fx0qTFR+m+e..f2aU
-----------end_max5_patcher-----------
</code></pre>
view raw inputs hosted with ❤ by GitHub

Project 1: Buy U a Drank

For this project I wanted to dive into something I’ve been curious about for years now: auto-tune. I was never quite sure how the process exactly was achieved, so I aimed to mimic it to the best of my abilities and potentially make it more suitable for live work.

That being the case, I traversed through a plethora of pitch-detecting and pitch-shifting max objects, be it pitch~, sigmund~, gizmo~, pitchshift~,  fzero~, etc. and I finally came upon retune~, and found it to be sufficient for what I was aiming to do. It allowed me to get a decent estimate of incoming frequencies and shift them to match certain scales. In order to do so, I had to map out intervals in cents and create lists that could be accessed easily by the program so that the latency wouldn’t get too bad.

I also decided to add on a couple different features to this core idea. I allowed for the autotuning of a file or of the microphone input on the computer. In addition, I plugged in my assignment 4 patch to allow me to record and manipulate some newly autotuned audio. Finally, I added a sonogram to highlight the rigidity of the processed audio and two nsliders displaying the original note of the signal next to the corrected note after processing.

Below is a recorded demonstration of the autotuning effects (the manipulation of recorded data within the patch will be demonstrated in class). Apologies for not actually attempting to sing Buy U a Drank, I figured even with auto-tune I can’t really be T-Pain…

And to go with it, here’s the patch!

<pre><code>
----------begin_max5_patcher----------
6101.3oc6ctrjiiakFdc4H76PFpW5rUiq7hW41i8zwrvqbDyFGcjAkDSkzVR
TCEU0U2Nb8rO.DjTjJ4EnLAYkUV+cEsRwahG9yCAN.36.9u+8+tOrXU5mhOs
3t+3c+i69vG92p07gh0oWyGpVwGVrO5Sq2EcpXGWbH9WRW8OWbe41xi+Tdw5
yhyOeH9y28mNlju9oMw4wqySRObGsdWS1Tripi96YRY8pOFo1+jCaeHScDFa
QPoKI2eWfuu9OTYwRL1Rxc+b0QcJ+W2EW76U+Cc379zy46hyKLTY0pMqK+WO
Fa9wWbJY6gncKterusK4jxd94F+7IGp90401QzGi27f5ZRY7ODkmmkr5btQS
+vEI7CKVmlkYTjGh1uJI9v53GxeJK9zSo61XLLxRd8YSc5RyiWEcpvnIsVqw
tzGAkn0E8Gb8GB8GR8Gd5O70eDn+HT+gZm0ep9SiyR6aV5eUZ819+NGsKI+W
KDYkkjrdQ8lxhOllkuKJWcc7qssPieP6eoymhef5sJozraZ.+RxgMo+xojeq
7tim3te1rs+yu+2U7kx+p9y816jdd+p3rOW6ZrOcSwuOqSeQwP9hReOs2WHK
XouTIudu.ew5Sqx4pPsVVoWKdL8P9iQqacatXkURBkcYmGvU9wcoQM8V0+DG
h1aLqeLKQuWc4HylGMl6M3y6BAz3tz33eaSz5O2YInD1PJJkSVpTRVfznnrk
kedCJZsjbTULU7g7nqKhn0FZbxYLg9zIX8excj9rK4iwK2Fkb3hF8wnr56Ic
r4VRH0BIzS6abmHzTSDuoOYOU3zubEkorr73rGhODsZW7Mnkpa28ZFVUA2E+
2QpYi0tls5pzFpxsOFs6bb5iUqudCMuj2kdX6.2XZsupJEyxscmqtvIcsw8p
qL8F+d+KkGb0NDU3g408lSNjjqettrB5F0b0buNq1q5GmDk6PU8WutJx5IZq
GyS22sOMwlJy7B0NUbwKnbVZutc84QQmsqdZXnMUy7U9U+en6Xpo99CcwGZJ
6vSW1g5xtPBb1Eexg9KOY9t9GLFCdXQiIjglJF+J95eqJr6OqhYoSQfMrHPj
MbB3b+Wxi.rWcKqb52lMc+3c+z28C+3ptk8AaOaHsPu8CCJbAkulvaGWzGqh
8BCLN6Y0h+Xxt3OFmc5YMDL53wFq+pZ32G8OSK9s7uTyn5rZVG+x5xh+XR0O
g7xpixThkt4mmyLW+exSznZdciJxNbN4RIolalWZsYc3ZgEQHw3FObAo5o8l
s1b01coq+WwaZ2j0ziwGRNbcXaW19l3GiNuK+gdZxP6c35FZzdqc2bgOrXaV
xlzCZCoszqW+kFGSklv+ZcMUrKGhN10ga5Wh915I0E64Sqhxz2YJiGkUu07z
zcs21kibW7i4ka+XxgCWKn4oGGXqYIaeZnidUpZq6G7muXSmTwcY17Cpmcye
PGv5U6XztckOMe0Y3SQGR1qJGMOwb+P2IJUa0Db9SmVmktaW6qayl9XWaZix
+dc7ujrI+o1M+TuI0AjbrxwZwka6aR1Fa5LmFqLOZ6oqV0yKdPstyqJeR9g7
38G0cFyU6Qqd2q0SsMKCr8FtprPSoMWdfrcwdds1PWE7U7TnHnHpSNo5yFQQ
28EW+MFsi.rZtk0o62GeH+4+ZIG1D+oK0KzJ.855GdYZT65KZWmwZkexcUcZ
2ok4epWsLXLsjFZ5VDScIkk1wdQhon4lddjr223+a+q2uvOR+fdk.pdRZ+px
Gqur1F2Pb1MmBysOMWXolapS4U4+RGTxaE+3yUZxWZW7gKFfOlLJe6UL.cd8
zX1IQSti10gH9p80buNpK7PEvWeES5YmRRIl+XV5EVN4vZ4Upn1taLRXK52S
ctkLgkRFS7kRxpFpo2NZlkOvREAeozrqF5tYT5pJUnyHd9XRB4t0OklsoWsk
Lt1JK5gNuvlhqyqwv4By93Smh1F2svTEEnYHXUM3POTs8oQ9gioQLUnIMzHl
Xtb.6nWVlQmqgcs7Cr00h+Ulq0fxx+6HphmspBI3cjp7+LlrHrTVX9umjkjj
wdHhYqtHBeWoKiTukus0awXj2SOFMrp3YaQtzv2SpRQWbe2o0Q6h6UY31pLd
uqTF8.BLhxPsUY3umTl0OkktOJuAHcWoKxQi5yiVD02Ust88Rjwgpfho5Hi4
8GY7ExQGKx3xP7Xx2IQFamF5q0vxVXzqFxsUCKCH7cSqKrSCUMLq1WrWMjYo
FVE832X9gBk9U4K1qFRsUCEgeK5GV1IAZewdGBCa6nfpfRogeSIg7RIzueIj
Y6SxUQv9MlDV0cUZoTTJmdkOcGTURIYjG0Y19ndYnMbZv2bOp2vWsPX0hZu5
IwV8rrwEgxu4zSQC8LbrphrUNKaQR36kZhFhdgpb5JfS6S2nVNvllT4x+03D
JsYjMuwr5p+L65EQ0vslkW8moWcksWWR2KIgb0Ox.Ix0ySlKMyQs1Z+4yUe4
z0H400H410vzdz.tscIG5EgoBmM8Nzia9ozyYqqbOpF63qLRMaV4IGpg96eT
6Uq2Q6eX61sEwaHag8FxVd6XJVeGJXxMk2P2fzmApMlh2rXJVoJ7AMkFIb5s
lUu2HYma2ktJZWI0l0n.OLlmWnAc5xlni28ScS09fYFafI03JoZmS.U6S.U6
dlTzfRZP0tmtmMAU6fpcP09WRp18CAU6tipceP09bS0dHnZ2ATs+VpXf2nTs
GBp1AU6fpcP0NnZGTsCp1AU6fpcP0NnZGTsCp1AU6fpcP0NnZGTsCp1AU6fp
cP0NnZGTsCp1AU6fpcP09jR0t+UCgDnZGTsCp1AU6fpcP0NnZ+8.U6+2e2O7
S8LesyGhrceSShplu1Efr8IfrcQAqmz.IHaGjsCx1eSMesSAY6NfrcYiT2Aj
sOOjsal.sYfrcWLesSAY6izAPLP1NHaGjsCx1AY6frcP1NHaGjsCx1AY6frc
P1NHaGjsCx1AY6frcP1NHaGjsCx1AY6frcP1NHaGjsCx1mVx1EDP1NHaGjsC
x1AY6frcP196Ox16lpc1fTsK7ZP0NK.TsOATsalGiKChuhpceOP0NnZGTsCp
1e2P0NgCp1mYp1MCHAnZGTsOwTsO4NZfpcP0NnZGTsCp1AU6fpcP0NnZGTsC
p1AU6fpcP0NnZGTsCp1AU6fpcP0NnZGTsCp1AU6fpcP0NnZ+acp18BC.U6fp
cP0NnZGTsCp1AU6u6nZ+u1MU6zAoZmPaR0dHnZ28Tsav7jxaMUsSD.pc.0Nf
Z+KLT6L.0tCfZ2T4go2d.T6yCT6Ehsf.n1cAT6L.09HRDAPsCn1AT6.pc.0N
fZGPsCn1AT6.pc.0NfZGPsCn1AT6.pc.0NfZGPsCn1AT6.pc.0NfZGPsCn1A
T6.p8oEp8qZXBfZGPsCn1AT6.pc.0NfZ+8.T6+ku6G9qq5FrcxPfs6waB1tT
.v1cOX6dlYqcZyYqcoeH.aGfsCv1+xB1tOls1cAX6dFv1wr09LB1dglywr0t
K.a2GyV6i0+OX1ZGfsCv1AX6.rc.1N.aGfsCv1AX6.rc.1N.aGfsCv1AX6.r
c.1N.aGfsCv1AX6.rc.1N.aGfsCv1AX6SLX6WUDI.aGfsCv1AX6.rc.1N.a+
cAX6cB0NMbHn1kA9X1ZehgZmVx4YqoqcoDSW6fpcP0Nlt1e+P0NwGTsOyTsa
pwFTsioq8Ilp8I2QCTsCp1AU6fpcP0NnZGTsCp1AU6fpcP0NnZGTsCp1AU6f
pcP0NnZGTsCp1AU6fp8253Xdd+p3rO2xZ03BzZTruVsF8gVuBOLg4gUo2qPq
ZYCmR1d0nBWPbQW7BTsgtHMXD.PdbWZz0Cjz.TGfTO.od.R8.j5AH0CdOj5A
x.ej5AH0CPpGfTO3aoTOvZYoC+p8IaNllbHuz40mqq7PXZBPXX8BH2Id6l6D
U2+QxS70PxS7e8c+veo62J.zfASfBZq2J.Rj.ESPBTXds.vZ+ZAHH.IPARfB
j.ESC4z9il.ERy7Ad.RfB28ZAH.IPwLm.EBBRfBW7ZAH.IPwHRDAIPARfBj.
EHAJPBTfDn.IPARfBj.EHAJPBTfDn.IPARfBj.EHAJPBTfDn.IPARfBj.EHA
JvqE.vlOXyGr4C17Aa9SKa9RAXyGr4C17Aa930B.Pa2Nz18AY6eEQ1d2Ts6M
DU6kYZBds.LkTsKJ37jFz70BPwe.U6fpcP09TfypGnZeNoZO.TsO6TsG.p1G
SE4fXa2TbJCYG.nZGTsCp1AU6fpcP0NnZGTsCp1AU6fpcP0NnZGTsCp1AU6f
pcP0NnZGTsCp1AU6fpcP0NnZGTsCp1mbp1YbP0NnZGTsCp1AU6eInZm+UHU6
ducnZmAp1Ggp8e769g+bOyW6xgHamadyoUMesyAY6tmrcCpmTdKv1oX5ZGfs
Cv1+RA1NkXltqC7.Y6Na9Z2zCkfr84b9Zmg4qcGf19aohAdiNesy.8+frcP1
NHaGjsCx1AY6frcP1NHaGjsCx1AY6frcP1NHaGjsCx1AY6frcP1NHaGjsCx1
AY6frcP1NHaeRIaW34Ax1AY6frcP1NHaGyW6e0Q19XyW6sAsruxat.u64MIo
+8B5Ye3uEe3bixRqn8smKgUaeLY2t0o6Ry5sNjp5zVX1s6aW+R4QpqGgEJnz
f600nP49Luhuo9hTd8cnxCjVcjBoHjvz6uvi4KjEeKfwkb82HccrrKmUBMzb
tHgADg4apUQUm0mcrQG1VBVreCjXM2tyR0U5Tga8RdX6i7bd51rnMIk7G0Om
f22zEJSs6cFMwh8paKIs9kPVMXxpgtynAwfYz.Q1bt5O.Yzf6ynAuxNv1z+g
0yU+TjRCHkFPJMLMnLSkVNY8G5iTZ3UmRCLhoWTL8tORog4HkFpzbjRCtHkF
dKULvayTZvDDCRoAjRCHkFPJMfTZ.oz.RoAjRCHkFPJMfTZ.oz.RoAjRCHkF
PJMfTZ.oz.RoAjRCHkFPJMfTZ.oz.RoAjRCHkFPJMLcozfffTZ.oz.RoAjRC
HkFPJM3h7HXVytBMnhX15ePt1+ycy0NeHt1EllTVw0dH3Z28bsSoEANUFEeI
W6Rczmfqcv0N3ZeJ3Y0Zr1k.qcLS8iYp+2oXsa6zP+aohAlYr1sr2eDBf09H
7FG.r1uUIKDXseqZVHAXsOUXsGRAV6ig0dHCXs+BvZOjCr16PUD.q8tjEIvZ
uScwCXs2ot3Cr16PU.V68oLg.q8dZMLg.t16VXn.r8w.amRXfr8WKY6TBPa+
Ui1NkH.a6uV11oDIfa+UB2Nk3A51ekzsSIA.u8IGucJID7s6R91UhM.b2k.t
SoTf39.HteUuI1R4X.xc.49WIPtqGhOKYElxldbtCeSYMAuorl2RFyaHX2MW
tVA1sblLFqTF1aG16GyiADu+Gti1Ew6Wd28LvD4tT3WB7t7lAdm1Kv6sfkqq
Phb4k+o3cpqpzrOeGqKYPFXiLnZunTi++Kf6e5Xb+2iRvmKGAIwBEHjErzW9
dwSf2sRbI52gTBuBIHfLi9BhWrVD+aQaV+4ttXCG9ZUnuHEdF5YkUeNq46B0
4d.6iyyR6RLXC9L.kxKzAelQNnN8V+pnCamuGBVmd9PdbVmt+xAEAlo6b7CJ
JEz6kHBhAKHnA05CTtfz8kKb2o7nr7tjD9f0NPIg9Kkggg9d5DVJn3QF9KPW
Ht1++79UceOlays3.ietj7ZRysiQYpXfTtZOXx4lVWmclxBC8ff6KK33iOl+
46dTajJEHMayR0goDktTMAcX2.+h9OJnbHhDxYrpgWdIDUIeTsA8wj3eoHYw
Rp5ZgKF0iOdJt7x868JbwaNf0KLIk2lLU3r0YVU8M606RV+uxeJK871mZsgm
kmVWskO1wVVsUmQgsWk5lmIaHIcUpVf+P27XAE267JRPj.tAeegpJ9V5cyaT
0hx04aX8FpC9W+xpR2UKYW6a07PaYLdlWsO7VVSPSqYfpSqJ479mUdZwiVOe
01F6oY2Z26MkNYW2xtJWsm2aMsZQWesxMnU6gWrOYywTkQWdV4zBEQx4KY5A
1VTDkhYwxF504SB2jQRs0Hcv4yyyZUg3jSnLvlSHk4M58Akv6wYE2Gz+sdQ2
XlD6LSmoKBp0mPduxBkDv0BQH0y3e5KurnSLStMVof5L+SldNnb7mHXbOmcm
fIEVcJID2cJ4d1bJoggt6TRrxgiQXN9TRs6T5H2GhcOGqqhdfhajAFTBIbpo
2G7Kd755kkEMIwmT7GYw6COmbMX0kfr8dccIC5fB08fTUxdPBqWzIVYsuoMJ
MqW6TH4WqzjmsnQmopR6VJcnP+Lufdd+w5MnRyMiIojaRUUZYDBRmZj1Uic+
xLKrPlEl3W39h5kbnQFNpQRF1mkTd6tbPxMupVudwPyr1QoPWrjCuF7G6ZfG
L30PfmIfQS2VpbYUlWY60KVmCMU43ErNnoVUtkxrJJbqrDCyxNzN8ds1Y.6h
cMg1YfU1Y+UZD1ztz1om+jXmrQKy02ePAUH8LQOyK5g8PYvkEcncxG2NGtjU
IOvjg6E5pf3YJzR5zmhDVUQa+208nglB7IEhIsjVRyxtrZJ6hHPLPDAkUep7
GMVpjdYY2Xo9910nlgkzRGReSef2boFcJQcOvLm1s3Fr6.SwV8Y2z4zt42hc
yECY2r4ztY2fc66MncymS6ldK1MiLjcKlS6lbC1smouF5ytkyncSCuE61TOR
e1s2bZ2A2fcKkCZ29yoc6cC1svzEU8Y2AyoceK06vCCGr764rhG5sTwCmMnf
SmyZdn2RMOB9fJdnSraO66N5Ahfl30r6na06ztIRJoMlI2YcUWY+uSsKzs9E
lxNluJzMVyPfbmYZYjZCXlD0iHgD0+tD1iOcJr0P6BNafFA4KV5EPU+6RDCs
JYxYlZfcwiMfopZZluOS8uKlpTNElpucgfMfoR8VF3wU+6hoRISgo5YWTWCT
VSf+xPkzJZDBiXRLUocAZMTGKDtjnszFQsD5MElpvtXqFvTUsOmpu+KtXprI
QU41EN0PU1PWxzOUwuTSoOeRJX0tHnFnuvE7kBcwpzKQi3MIk.XYLSjwFQ4J
qjJlBqjYW.RCM3Brkbcg+rK26YNuzeo0Cxa+VZYc8AlVgWMvzEKNU8ZCytgJ
VNriPYLnpZCJ5Vrxg9yr3bpuzQ5riJ8sjDEtXY.W+eUqap5qlav5Y13cnEYt
Jr.pm5+7qV2T0CYWGH3Kx2tL1vY02V3Be6x9fbJ8sENv2tVemceagC7sa3cL
y91bG3aW1XhY02l6DeaS+TWI6091B24aycfucC88491hoz2l6.e6FV+L6ayb
gusTN691LW3aWNVFSY41LW3aKkegJ2l4BeaoroH212lOk91TW3aa5thY02l5
DeaVogKa6aKcmuM0E91zZy7491xoz2l5Be6Jqe18sINv2tr+slUeahK7sKGS
zoz2l3.e6F56LGSBwA91Mr9YNlDq.nVJsoempHbkG52whAlrCRTUTIa5Pewt
KJB0xKJlAaWuJdoasrjZVc4aZM5T5oY+kE016UCfAdwp8G7xZ9bAeFxvicYE
zwhFlqK4F1fb8zvTCMzA0XTNLCyYMFzPmTiAwahaEqc56H0XTquyczP2f0yr
w6XdqwfF3Bea1rGMz0fI8x7sKIVZJ8sCbguM6KTj92f0yF25m6H8odNv2tbf
LmUeaOW3aKprzIqGZndNv2tVemceaOG3a2v6XlK21EiHZ4HeOq91NYDQ4Uc5
6j0JVpKFQzZ8c18scwHh1v5etusbJ8scwHhV1DhY021IiHZIbrSYLItXDQan
uyaOzPcwHhVa8ydLItXDQKArYV8scxHhVxO8TVtsKFQzZ8c1K21EiHZCq+EW
tc4raSzwieLN6T4o2X3l2EREIzw8lk0u0ntLuRuHKVOiIYNDyDZ8hnr0Oknm
3lOmYlEf9jW4Dt8B8TWT1gyIUVQ4jRpY1g55YVm5YQne77ljz+ddT94SO72h
ObtbVDRIXOFcdW9UB8psOlra25zcF6r0LZZ0rFzBylqmFRq2a87YMKTP03MS
VxobelWw2TeQiQZiopVyAQqNJgTDRX58U3w70zwp9V.iK4smpnJON1kyFgFZ
NGjv.hv7M0pnpyVqiK5vVyTnkIyyqV8wrT8jcc48.0AGd4HNmmtMKZSR4a.Y
xyljUuuxoMSsKOaN5Zwdk7lTejkylrp+7+apRxUI
-----------end_max5_patcher-----------
</code></pre>
view raw gistfile1.txt hosted with ❤ by GitHub

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 3: Fool Me Can’t Get Fooled Again

This is for all you out there who want to hear George W Bush messing up a common saying in a bunch of different rooms/soundscapes.

For those of you who haven’t heard the original, it’s already pretty hilarious:

Audio Player

 

As for convolving this impressively un-presidential soundbyte, I decided to use recordings from one wildly reverberant room (a racquetball court) and a room with almost no reverberations at all (a sound isolation booth). I did this to try to see how drastically the soundbyte could be layered and filled with reverb from the racquetball court and how thin sounding it could be from stopping almost all reverberations using the iso-booth. For your reference, here are the two impulse response recordings I took:

The racquetball court recording was taken from popping a balloon in a corner of the room and recording from the center so we could capture any weird reflections that would result from popping the balloon in a corner. It almost sounds like an explosion, and it provides an extremely long decay that would be more than interesting to hear through Bush’s soundbyte.

Audio Player

 

The sound isolation booth recording was taken from popping a balloon in the center of the room and recording from very close to the center as well. We really wanted to see how the impulse response sounded from the perspective of the object or person making the sound, as the normal usage of that booth is for people who want to practice singing. Capturing how much the sound of the voice would be altered was our main interest.

Audio Player

 

Here are the respective convolution engine results:

The racquetball convolution made an output very similar to what I expected. It had an obnoxious amount of reverb and took a very long time to settle back down to a state of silence even after the original clip stopped playing. I could imagine that if George W Bush had recited that line again, this time in a racquetball court, he’d be even more confused than he already was, since he would hear his own words flying back at him left and right constantly.

The practice room (iso-booth) convolution was a little underwhelming. Though you can definitely tell that the soundbyte got thinner, with much less room presence and ambiance, I was hoping to hear an even more brassy sound. Regardless, you can clearly hear that it almost sounds like Bush is in a vacuum when giving his speech.

For the next two impulse responses, I decided to explore one with a musical component and one with a component of repetition. For the musical component, I used a recording of a hangpan, which is a little-known steel drum instrument that looks like a huge turtle shell and is made out of metal. It creates very tropical sounds with lots of reverb. For the component of repetition, I actually reused the same exact clip that I was convoluting as the impulse response too. Yep, you guessed it, I used Bush to make Bush sound like he was Bush in Bush but not in a bush. Bush in a bush might not be as interesting as Bush in Bush. Anyhow, here are the impulse response recordings:

The hangpan, as mentioned earlier, has a very reverberant quality, but it can also have a more percussive usage, so I found a clip that demonstrates both techniques. It’s also worth noting that these are two hang drums being played at the same time by one performer in total.

Audio Player

 

And for your repeated entertainment, here’s George W Bush messing up again:

Audio Player

 

Here we have the hangpan convolution. This gave the soundbyte a very calming presence actually, as it sounded like Bush was speaking very softly in a dream about a vacation to Jamaica or any tropical island of your choice really. I found it to be quite beautiful and much less funny than the original.

Finally, we have the convolution of Bush by using the exact same clip as the impulse response. Note: I had to lower the gain drastically to get anything that didn’t sound like I was just holding a mic in front of its speaker for no reason. But when I did lower the gain, the convolution engine created this weird, nearly cyclic pattern of Bush delivering his wisdom with his peers in very small portions. Particularly after the original clip is done playing, leaving us with only the sounds of the reverb, you can hear very specific phrases repeated over and over. I’d like to point out that the last “fool me can’t get fooled again” playing several times in a row at the end was really an accident but its hilarious to me so I wanted to highlight it!

There you have it, George W Bush in several different soundscapes, including one of himself delivering an absolutely iconic piece of wisdom.

Assignment 2: Real Life Ghosts :o

<pre><code>
----------begin_max5_patcher----------
1387.3oc6Zs0aihCE94LRy+ADOmoxW.CrOs+I1mFUU4PbScEWh.m1TMZ6u80
XCTRKw3zZR6rYTKA7EvmymOmy2wF902+1B+Uk6Y09d+k2O8Vr3WxZVnpqolE
cUrvOmtOMiVq5neZYdNqP3ursQAauP0v+Typ8x4E8sTKdJioZpuphcxNjwDp
GEbPsk6DcUC5pluVcykqt+Ggw8OhsTQ5c7hM2TwREZQOgDcEXoGDz7q9Zj7Z
uqU2x+98u0bVdZoqTR59YQIIlTRRHbfRlL+JIiNOSkAlzRLH3EsLJvAZYF+A
1Uan7hm6G2GnUEzb1qZ9mnq66gVGDOskoEK+Z9lBZl+xgW0bbaVIUzbQFuVp
BWOJ5fdQgqjiqfUcCqftRinGA5BGA5BhL5EDSTvU.p4TPrBGwjFvqeZj9.a8
MTgnhuZmf8xU0sHXGD1fQY6Xk21UeeCCUhrxhMiAj3df7ftWeWYkXj9OZm6v
dvXMl2DlQ13OhZrSFsCTkQAY7l4EbAWNIpvMv.D5fdsS1qdC+f1NzZB9xEuG
axB1ix4y253UmwWy7B.x+Oton1javj5D9l3wMvfiYfYNLqzxJTZSEhGDBB8g
bNOJPjRyXd.Yb.8AA.LfHm.XPNAvHwFv.nfAHJbFQi64hqv4Fz+kCNrGKNRj
mfwBZCLhEXUHGrJjSHnAW9nHwt7UrJyZ7JZwl2i1NVPXv3PAZLn.ZBJhSTlE
H.rEKlOqhzmRyXOOIkk8HDxdeiPjMLQZPHvEtF1yhC+xyhaz.hDg9hvhi9CK
9uor3FcNIn3KJVbrMfwkAKdfwkdQfwWNr3Aglfhvn3KAV7.hMLQeFr3ewovQ
Fivhw3uFT3+g+92R9anwUgihStj3ugQ1.FWF72PiwqQQIWN72Pi72Hbx4h+d
MM8Y+OH27XaSNzbdqDk2eXhR0vQ+OMAEnU7rNLAES99zU0q42d6wQBYmtImJ
Ix2ehg.PmfcuwMOn0bHTs8KgwyHfH0xMaXUdYx+VMcLw2aThCAD7X.BXZ.Ag
HCdyfyCfHikUUJe3d+MMUHSpxCdbT4DQiSvgIwBqCc9nv41coySv4dKP68Vh
sv1PuWkgyMbTsYEJaWN8yEPhlFPfAp25ZD1A.RNqtltgMBoRVYMyIoRdBNGF
ydBps.H58.IYNU9xsrhystGXNywAptKBR1Xvu8Qdw5xGmfa3HKT+DLoQSaRG
DnxP.2t7fX7r4kuoht5y0C2h7Cf.8FSb7YZsj4mwKdyWGj5o1zvqfn5xcUoc
JZ26R1avVdrlUK3ETAurXPuZdQRC6UY0Z4JNZxI93yOtVDfGQDftPDRrQD5D
TWLfHqFPxbB61IBgyIrisRDPNC1gVYpAmSc1RQXNc3Z1rFKDA2Ys27cIXw7b
h6bujDodnIGPr6LrZ7TgSBoQtSCsaNDenXkyWusjWHZoKRRBa1.l.T6WqHnu
zbEywdoFXqTGgLI0NILEzAXMIo8quYFQWnCPWRT6lUEOa3IzJ470AMdiUfZZ
GnRGNlnVMzgkfJ.OQlUYntvbEN0J0QERZZ0ocYtspyvRP0pcHxUADpKLSyNg
1kWfCCkQrZ.gtKXsc9ID6s+P5XQ8kh69hnaVGS6KodzILjCTGDxAgmvAsgQg
GPE.mMulSPpASK0mKp.nURMxcYrZ0BSbmqgcImBmHqhlYArd6Jf339Rtw4EX
UlVPi1MPDV4TRZcaUNpCKfQpXtcpRfKE9IyK0cIdCsJw63ybj0is1FrCj.6R
vD3NM1lwycbkjya3ff2+v0t4TzsaefUU2dG5QxOmdeoZFOZotLuPWV+pi7qX
Ov6tE8G1iOsJ8NtfkJ1Uo2Bt8j1MK0OuTZ+Tri2EiWICxe9O.y1YIJ.
-----------end_max5_patcher-----------
</code></pre>
view raw gistfile1.txt hosted with ❤ by GitHub

 

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

Assignment 1 – Deelllaaaayyyyy

Since arriving at CMU, I’ve gotten exposed to recording and editing audio in Pro Tools, but I have never really tried to make a sound anything but album-ready. This being the case, I wanted to explore what kind of negative effects something like a simple delay (often used in small doses to make vocal tracks or other instrumental tracks sound like there is a “glitch” in the processing system or some other cool effect) could have on a vocal track. So, I recorded myself saying one phrase, then repeatedly added the smallest possible delay to the audio, duplicated it, and continued the process until it became very hard to pick out what I was saying. Frankly, I stopped at the point where I couldn’t stand how screechy the audio became.

What resulted is a clip that both annoys you with my voice and makes your ears want to bleed so enjoy, or just invest in some ear plugs, up to you!

I’ll also add that as the trials went on and on, the signal started clipping to an INSANE degree. I had to use a limiter on every clip from about the fourth repetition on. So if you think this is bad, imagine what it would’ve sounded like naturally.