Vocoding with Max/MSP

vocodingI’ve been playing with putting together a vocoder in Max/MSP. There is a vocoder object in SuperCollider, but I honestly haven’t been very satisfied with it. This uses a pfft~ object to process the FFT data. Below the fold I’ll show you where I started, and where I ended up.

 

The first step was this tutorial.┬áHe ends up with a rig that is feeding chords into the pfft~ patcher for processing. I’m using the neutral-harmony patch from the RTC toolkit to produce notes. The main patch:

 


----------begin_max5_patcher----------
2447.3oc2b0rjihiD9bUOED951iC8uD6gMhYOu6SvDSLA1V1ESaCdwTU2SOw
TO6KnTXCtMXIJfFOWLUhcAY9o7ekve97SKVk9U8oEA+yfeI3om9yme5IyoJO
wSV5mVbH5qq2Gcx7yVjn+R5peewmfuJW+0byo+GA7pyk75g3j85byumXO4wn
70uDmr62xzqyg6GCIWJ4eJfo3KKNPIkeRPKQA+p8eJdi4ZWb+9Ikn5xuMMIO
I5f17U+bVbz9Z23zWyqtyX6YgSk+GG0vscQbRAC7q0tZmh+l46vjknxy9WO+
b4Ge5ihHzdiHXgCHB+wCQv9hHJR3RTAFPwkGtCfvls.Rd5tc602T3w2W3Qb3
P0m2T3OqrcLJqPzy0Y+lNIZ0dCai5i3ObK7mz6KDpzr2CHsnBP6BEHFAmqJO
n5FEvClJvo3cIE+SSfYwg7zsdqZ.nQkqSVWfhLbv.k1giJVMSeRmjGkGmlzf
cE.6Z7qYVBML6.phE8k2CXLj2NX.fjWXpUvYBRmZWnIS6xI3jSQiEb9QzIsA
u5VmT9iWmTf.1kMS0IYBz80Ikp4hNoENK384mNIkQfCcBk7YfeRK6Rmo5jTk
wyyczIEyF+jVlV9ggyOeZe7Fcl2YzKBqGmlZ8a2Btw7OGNRW4v8oqxjsEXhI
o.Sh+Nlb5QJazi6fTzeTHkQwmQPCARUveqzYu6KRQgJAvLSYAPp.MLEKLZLv
vYyi5HGwWaSxcrMKfts6SixuqQ5gzMlSQ5ATsN8vAc45zUty92utcqNKXcwc
LKc+IuCOnVJHkqjby5ZnxT9cq907t5hJQea1tUMWRFhxILpO9JxRjIHHl.5t
cVNkvgjKFNCvUQI6F15s5o8kxXXE1GyKg3gz75f9zonc5uy7JSebezZcv5Wz
YoeVqWFEu0W3TPgdZgLUXgwF27XUKZbzIHGrADf1mldz+tZgQFyNkooVLZm.
BddBHskdY7t280iDVHM3fQwfR6xgDWMm6uS+5xGlPunFzcS93xYbS91kkl9l
98fSoulrw2l7gUgWrHB6FD3ifK1oqaeYAad81AsQc3CEJ6hZLTn7NgGxikCi
VgitLYXLSLEtcaAjcBH8OqsQSpiS1l1kkB9tgS4HSFqXLsqsDg6cGKUsoL.I
gTXprO9T9krRb7OFTUouD8ldaZ1gaGog2QMlFvhKwvdJAsxfcaniEda.RbW.
pi+nB6t.GqLEvbdkATIFgL3V8ZVRAX7QRfC5dFF0YBbL0iUBbV7omXBUwtTE
UqPh3gxiLnQ1SuSRS2eYRH+1Na2JiMXwwOaeM3kP1lZivWEFI3sAqnNnvLWy
4uWMbvl6Bz4rt62.k82f9M3M9vgvQNAPnGZ.JNY8F8ZuAHjpF.0cERD0.VgT
UeWFNeqGiKjNRRZtNf4cHGKLfLpKRQmvf7Qa1fRzulmEs+mdIJ6PZxeDH7Gd
.epv1Phq.qVvmGtoI6+UnKmkFP3duyc7PLTofw7wl6aa3xvMBUCtyi90cEqz
qbw2AeVzck9toPP8fv7Q4YWqIzGxtV21XF9t+cjkv.DCSueGVHjGvgL6e8df
pmfBF5J2c.kGwIu6a5rzu5c+pqfENAp0oSXA8P2rxjz3SZuAHNzPNbH.Pclo
BNbNq2r5077zDek+xQJyH+g2OnCV0u3pC2ZbQbU8lcdGX0tKo17s3cVpOd31
UTi3OJEuMBitLS.59vd6z8nKi4yYCgO1P8P4HGFpGL9GyP8TMWXe7A5wvymc
WdLKMOsjkNuX9eY+mkuoyxWtZez5OeQW6X7l0o6Syp3GZn.IUEFW.mUi7rrb
SyzUoYEKRMtTnPFFqJuJXLURLiAm4O31YgqCKbXeYsyNIT9.t7YQ3lclnRZV
sy46+UxyMTsKtTMQFCdn3rPDo7uHREihadkZsLd62+RZdsKoEh4Hbn.aUCpe
09RQ8nM3fPBlKBK+kgUbAhiBqVd5gVytn3jdjuuYbJnHH8CXwg0VVHCng0kz
P5cIN5usIZs+RL1NUzv1kyq97lcPskM1a.6jy1s4uG7V55x5W7c7OBsgEj2u
SNy5zpOFknOyFYk6Wf1v4DluISfp4og.qvTbKKthvE2vgdC+fM8AwoLAVVZo
J4HNSX7gDpPzvt7AcmYKl.kCY2iCKmSXW4CvbsWrON45GxRCHTd9lv6ozWyV
WshU0IufKr3F8o73jyB7ub4gir1O5k3MazI0kgCwaNlVXuZYhBzvrqw1m8E3
PSJanPFG88TLnIRrhqBgaIuvgwmJ8rroc6MWE8qjpaK5kyLsOhdESyAGmL6S
RSCJlxJlvlYoPii3wcQ7n8S7XTUcApIEFWW7viypmaJt7QSw0BDFxwX0C6f3
UlSe.1cwSQMSfOQFBsp0twPMnXP8VHwYpwP5Ptr3UBADOjNgYwiCC5mBJJpI
EQYVCCgjMuhha73pftJXnFAIu74oZrjbqeEqr1jZFH4hQTxgsioRxaP8HI43
dK4vXO2jpR5DWj0wvVl4pz0ki3AjentvOrIiejtfOkOC0dEGFBt1kutJ6+Z9
FFCcaWPaorWRWUdf1zJZPYCCak0lT1DPpj7QJADrKQnk79I4HdcIuAUkrBR2
Xk+wUJjsXEglNqHWR26pfqiJ+3T10hIieHtnMR7La+xPF7yiDBEEVa.QrTXI
zDOHyRC0XjruSRGY5PaWxekfmW7ijzqUerjAq2vtR1jhYeu4.O6UrwwSqvkb
lKG4lNyeZ33GdyxttM+HlNaegKwfYd1HCIEJzGdGAYe4KzfP.YWpNSLBK8bW
b6S7LHKFdOOAsADyMGZPXmbeDrqRiS.VtKAPlNOHNwNjoKduSK7hoCeDtDAh
ymN7QMy3GWVu3SW9YbhC7Cc5pBz398dwL3Sn8U4sRbO9Y5ruXhQLFF7rrYCa
0f.JoRco80ifmdlZHDsALYQmfZ7jkNE0kFjPXSG+3Tx8R+ZWm.dYaQBYP1Fv
NKzjBdZSEvKFhlT3PyOQHMuLwLTiflpaR9z4Dm3hkCc5bZ5zdNgwyKKYhb53
GtqVxSD+vbsvwogevtlyO1mNFB8nAFlJh8AQnIkciPDvtbvniSOZHttik8nC
TvyFbkrRYiiDPcHGMrmyBAUnp2CMEtdOz.Jrswtgfy8QJMDbnqqOjowXvEmW
3oKXiSsXb5bc4RjOO0DovdKX01JrrjeOIkBuIKk18UgLNVZtjAZ+jNlcJMf7
6aRAI8SIv9BIP+PkMr+xlk+4T24eX.whNd7Mc1IKSXX8EGh9cXD1LuwIJtkI
.ogGVjoeKt52Ket7p8WO++4nz9dO
-----------end_max5_patcher-----------

 

And the pfft~ patcher:

 


----------begin_max5_patcher----------
480.3oc0V98SCCBDG+41+JH8QybAn+Zy27uCiwvZYJKcPSgMmZb+sa4Z6xzL
mTMA0Wniii69de3JcuDFDsPsiqiPWgtAED7RXP.XxZHnedPzZ1thJlFbKRxe
TsXUzjtkL7cFvbspxnJXM6GVQtYsPVwMvtn8FqYlhGDx6uqgWX5xJkDOEOAE
SH1GYX6HscDca+dDkPBZS5k4CAeoRZjr0bXkqaDrpiRqZi4i4syj4oZdWRiz
h6k1Mc3WGRmMzZwyfiD5Tr05qgg1gI+LDcw2fMo.NhmCHhNM8yYS1XYC4KXi
GHRa+hQ014LZvPvTKQH4Nzzj9KzzLn7FtlKMLiPIOk5AcOLft8O.XoyHNC1j
+0uMtbooUG6QjQ26Mq6BqYyrORSNGhhGKhv9ntEx8H5IKaxY5LlS6uDpcLI+
bUMcrUcryMF9tEwhJxXQUhyjh7WgTfOQUB4G+y.P4Ys+d7oUaZJFxc+mlQjC
YpjqaQGbu2Q9D+NedPTVxkG2zWJzrEUb.Om9XbLpA6fZvdQMINvlbuwlLGXS
t2XSpCpIyqmTtnF+bRQcnuIwapg3fZR8pZvNnFr2NovNbR8cTS2Uyr55s7Fc
eHAgz9MrUpF6zrIvTgraJDwnF9Vwf+4g1n8Z3aPAJhip
-----------end_max5_patcher-----------

 

It’s not that complicated, but IMO produces results vastly superior to what I’ve managed with SuperCollider thus far.

2 thoughts on “Vocoding with Max/MSP

  1. Looks like a fun patch (3 keyboards!) and i’d like to play with it, but my max demo on my win laptop just ran out. Any chance you can post a short youtube screen capture of you using it?

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>