Assignment 2: Pitch shifts and accidental overtones

Hey all!

For my second assignment, I wanted to create a Max patcher that would create echos, but with specified pitch shifts. Then, I decided to do some experimentation, which led to me accidentally discovering cool ways to create overtones just by taking the same audio and changing the delay for L and R.

Here’s the high level view of my patch.

The input to my subpatcher is:

  • A mono input using ezdac~
  • Delay L (ms)
  • Delay R (ms)
  • Decay (0-1)
  • Pitch shift (by ratio)

The output is an audio file with echos. Each echo will be scaled by the decay and pitchshifted by the pitch shift ratio. Each echo will be scaled and pitchshifted again– this means that we will hear multiple successive pitches for each note sung.

My favorite intervals to play with were the m3, M3, and M2. Making the decay scaling value high made the higher pitches more audible, which made it so you could hear more of the higher pitches. With the delay L and R, setting them to be slightly different was a fun way to hear phasing. When phasing, I noticed that noise levels grew while my voice seemed to interfere with itself, which makes sense to me– noise is audible at any time, so it’s understandable that it would compound with time.

Here is the subpatcher:

Here is an audio demo + the patch for anyone interested.

<pre><code>
----------begin_max5_patcher----------
2185.3oc6bs0iiSCE94N+Jpp3A.MLxWyEdCIdDjP.ugPUoItcBjlTRbGlYWw
7am3KISRZRqSqSlcE7Rm01I1muy43yE6S1Od2hUaxdlUrZ42t72VtXwGuawB
YWhNVnauX09fmCSBJjO1pT1ems4OVcuZHN6Ytr6jrfnMAo6pFH839ri7DFW9
VPcupt3ubfoVxUxWY4uqGtf+RhbjUUSyg.d3iwo6VmyB4p2wAge.b+RLlH9i
CP7KB8.ndVhijSQIU9MPXC5INslbD88O2cm3m6MD2gY62yR4m.7eJtjBWV7X
7Vd+XGLFvQwJvIwFjp.GX.vAldz8yV.SHf6CzRz.Ph+fbNGl78sFjJmfMr79
oezP5iqt+pzIgtToxnT3QOqJouW+HrdxyC1y3r70rzfMpUFXQA5OXAAJj3oD
n.o.kdVAJ4ySApumbGHhHf3EjnzYQhtMIqb9uY3uMKeefDkNiggPTFZwT3kU
wcguqp3dOwrfRti.c2uzEZfkXG+o2MC0dXx2wDL4M4X5W+U6gIHxHP4N8BJh
EAE0HP4L4f5GwVDTdFAJ5jCp8VDTHnuIfhL8RJjEAEwyDPgmdIkMAkqQRJzj
Cpi1CSXfQBJ6ktvdVQQvN1IXB9.DQGYJfiLxLpiyCthvNItBvRfmKRDZ+NlQ
VEx.+VIhMkXVo6pP9fX1cFvLgLOHV6VWkO7fHlLCHFMShXnR35KSsZH.ilC.
OSajgdTCDwfY.wX7LgXpAJ0j4Xa77fWs6oyqSimd7NSagc7M.szYP5NSafUo
SdA7ZOKVCEOUDKI3kke49huxFGwUI1DZtxvqbbO6wv5844IbgcL9DtfNuqGn
SDKTHYAeCzFhVjuTbhMIjYn8RXKJNHYj6G2ljINotQIVw.7aWKBo92dAGZVj
pCbgQEgAIrkfREP2kfGVN09hz7EHTFrgu+YC1nW9hyUfc1GhBBe0FI5IIXLR
kyCs52dM0ZMKsrODDMD0On4nh3coBM85+0HucOIP87tLNsWF5CngdX4Awc68
Khq1azVksBa.Qk9e7NaNt8mUOs4bWR8Jzqg+hUaiSXOwxKhyRarKawpfCGZz
8hFuhfm8GYxIx895thSUcgq6Jm8Tb06Sq6MHuDg7R3cLWg8m8p7oHllrHVd5
w3ZAnT5cW0D91kxntCBf5x1zV27ZXdqTRuKIK7OYQM1gUJcNvRiSOjyJJcuD
v0TW8vQrsAGS3q2lkxKh+fj.gBNeOiuMHjM3KmVZvThtuK+Mq8KVsKONJKUP
Ds30htqVtRvQU9iZBF4SjFbnmWtTxWxWFXvhRPdrXSPtPTnMcipFjmkkzdn5
2KgskqG9PbZZGtHO6vvClGu6wy7taxJGb+4la4HEqOlpFcc4tS95hfmZys4A
II5sqsm9mCRi2GvY7XkH.ApGT495whv7rjjV3UMxS8LRToVbH6uii3OJWnlJ
CkOd7gJknU0R4n3crBd693A6JZ2yI69K653F8tz0b19CIknn8CzpFMZtkrog
sV8eNCbcLxILwIqdgWaNduV4tjktj3h2BWY.zNTPY5yzR4X1g10f2IF+wcn1
Fd5Zt9k5OQqU6UVGv44waNxU7xEmvypzGhzaHat1KV8WGCRh4uHofMAEwgqZ
NZN6PVNWH5RCeoopobziErvRKOE0gPoMwcW2+kxmkkEwe8qk5uzgktPCjt2l
TUEjMAcQoJYXo57vq3k1SOxesLeHv6ICCH+iK4hLL5fLLnEYXJPNLCAbMXES
ZVQAXP0uChUzvXsw.UIQ1kBhSiXOOuZRwouJJRlqUSpbFByJ8EFdiFUgTS0l
fyh1jbVuRdxUxIvTUkY4ZnpFXPFAX.UsuWd5Sxnf5UqCaQFX6S7aH+4K+B37
xjI9pTrwRu2tWzGNzcVr1+Nnto4DlptAgiVc6vaUc5xmBRNx5Uoi9YNaDQFE
ab76ZkmrXurNxm2rNnGZLrN+qfyIr28CStG1IIzCn93zLMzCO6D4Abdh73Sj
T5T1.MNiN2+OgtO8SnSKSMMeNm+imNmlcYZ1bjYI76OsyYQGCIw2LVF9S9LV
rfBDzz.fFsWbicS81YRmDmNzgQJAfX79YoEYGyCqXK5nNV1FLQrBdbZ8Iz+a
06K57b6iiNjEqM.KtX.n7CRQWX6pOzHYqk+tQpAikxcMjxwWjxUzJlz3iYqU
ip5ZWiIzzgIGCwjF6SBMPLjF7LjuhTkGJz0qtUq2JKORc2Xf2U3bJqulvfSB
ggG2NuIgFDmcoQDAhL2rGyIMzkTDQTmFJh5KvucKrJPJLwWYJ.MuJoHS0RQ3
oTavTURwgTZDKGi0WatpXKa0RaUEoxOttk78fT5jYisGhe.TRmRdMXjTwv7Z
ri1WqaSNnn0DQ6P2Q3lBdNRmpcQnptBnpXSpaobX3SdXVM7XL5PWLxhJ341T
xHaMmFWflpvCmxvJffQ3H9rJMDLtg4bjGng4bHhdgnLfuunCcw.oqfGtkRCd
tUZt5nqmZNs07QoiOkhavmEMLmMq2pTUmTW5jw930T9J6Rx1DjnKNk5ha5b0
xxaE7xcuQu5xwShs14OppNuthAcM5cZ9hsB6e.dueKeVc3gmTXfVcogN8uzv
aaoolrzkOCRoRb0KjKzvEhT+LcMe3nBg0SctMNDUgV2rEBo97KIp+uiPz5FI
apuAjcGr00WoqyCHo6QUEmpfgr0sRbtVi3zUvbEOFfuchiXMhCRaRbPpEHNj
8DqpCToRrRH2NwArGwAAMINH31INC2Fiuw0gXOcanWK0GuaW8AawMdjVa7HV
f3nVi37apZ6e6Z1X6ssCp93zqDppiw+lHNjgZ1255zwQ9vKD7VWHSPD0FHxD
e6c1yzQr5fUGUsu5ahCntB81s.NppNnxikyMKxMhtsACpYlemYcZKwUgz14i
lPrDc9XI57gRb5GIwvefDc+3HJW4+4t+EIiUxtA
-----------end_max5_patcher-----------
</code></pre>
view raw hw2 maxpatch hosted with ❤ by GitHub