Implementing Karplus-Strong in Max

Here’s a pretty straightforward Karplus-Strong patch in Gen~ with a very simple dampening filter.
I usually just use codebox/genexpr but I thought that it’d be a bit less daunting with a patcher-based example. Maybe I’ll follow up with some spicier implementations later. :slight_smile:

Some fun details here include bipolar feedback which results on even/odd harmonics as well as a pitch tracked impulse input which results in a bit more consistent timbre.

An obvious extension would be adding a noise source– you could for example duplicate the one-shot ramp, or just square it (ramp * ramp) and use as a noise envelope.

Also a bonus is a simple sequencer – you can edit those two messages, the left one corresponds to triggers (1 for trigger, 0 for rest) and the right one semitones.

Just copy (down to where it says end) and paste this and select File > New from Clipboard in Max. :slight_smile:

Patch data
----------begin_max5_patcher----------
2409.3ocyas0bihiE94jeEr9wcS7HIjDvVSM07v7unqtRgMJNLCFbA3jzYpY
+su5F2r4hrsf1U0sIVfQmy246bSB96GeX0lrOYEqb9uNey4gG96Ge3A4PhAd
P+8GVsO7ysIgExKa0qGS2VFmkt5I0IODVt8s3zcujy1VptQtX3ZvSN3.h3.D
DHNP8VCb9t9GkdbebZBqTdKg5Aix1GFmJGg+CTiIm23sur8X96r1WL+Njcrr
5Vf0iFGIkwrM+4yt9MRXd3dVIK+EVZ3lD4so59uOKpysUcOK+wAlRUV8ZRVX
4pmbVU8+Mgo6VUqH47uouzmkJMrkVFFEcHKNsr3kOhKeqQG9lCPbopef3exi
qIU+k3HUdqzeHtX9PNeWbe+mGeT7wSFZuRYevgiJrnj8ozHsJJb6+aDSHBIE
EOpzD5J+DgFxBh50n.5wn3s5JTgj32Yq2w4F0R76g4oba5.mcD8AnnjtToZQ
uLEhziBQGikUwpJdK6iJ4ELDSqHdWZXhfh07Wh+Wy.ShKJaXdY4wrzxPoqXq
ohCZbkOLMkkrM6XZY6orH7cVzKgkk4waNVxZ9qBM3qQeA9lbjk8Z0vUi2VKi
SiKi4Roh66AZfx9tryAkNWURV5tgMnctz8bpg3xnUwHN4rpHHRApuymEU4x6
1yoyJ19Rsb7qQrWCOlT9a8IFbSZdoghbkQtOA5HGeJJ+gBZvpyKcOpNbM9JQ
BCyPtJhS9M32GwYASUwuQpCtxO8mJ7cWeETO9JDS7UNyunwGnd9sJQl84grT
lxSwsWRSGpNF.rFS+OB2eXLNd.etFklCWTV9Phqw7a3syuGHc1gb1AVZjSTi
HNByl3KSC3SGOsV+LaXOLa7pAYu1LocsVx1F9ioK.qRM8skZ5ZY0zrfUionP
OYvIneSjJB91iTgrUjJdbIdEhmTMvrkFFr1yZglZQw5M1Db77uvEMvzPB6cP
jo+CO04zElp6UxEcMEZ2mqJbPW0XQpNKFTZeImgNoBRv.STPyiEAVlPtkNab
1Lh54orapCPJ9ZTudh.gBFT8jMf1zH5Unp6YEEg71VOUWgHCHpDk4DXIhJxe
YriErDG3z1QWEKEeMZWelQ2IMiWmVVlsSjUYJ8AqZbGW84M5zACLYMUJdem7
WrXQf9JYcRV1ecbrJ+PDYIQHe8ZR4YIKLjtZrxArpd97nLXTfr7GnJSBJPrd
RVvAEBVT6HK0.UTE8w0Z1P3xYC4kGFob8GtnV2fFeWhsJduI3d+ghrZlDfim
CwIvAhbD+oK+KsicLjJGHsqPXfkRt.cWljKxUZikaP3GUUPptPGVAIltH2Px
nNmsV1ZqW0GqLOS3INYNHkQk5ZIaZvLPiug7JJcz5oU7uWxp.UcXa6rJd2OI
UpzPKmTgdWkSAp7+rbNExBlRAxyj.cTeBlVSUQc7HVJpC9dIQhVirbdDzOqz
HUqn4aeYvRHnBxRCrUEQV1lNDyk2ozAC58TqdXps5rltLb1cLS14UJETskq1
w3MrGod6Sqm.oPwcpNYwUeMNg8NKun6Fn9vpvCGZMb20cce3elIuQA0KnHW3
UC0rFi4r2iq98MiFlyglRNtbLWspkeRwMqYoXYQySOF2YwHqDIoMPrZmEGB2
p9wQEGVuqNulXNq.bpupceWUbP02Hh0FudsgWsKONpH9KMhAUEuPZeEcdtPZ
iAsYIcF+D1x1r86E6p1SMmulxjkxdt3srRm716nz.NGZ0QskF5rznNa27.jn
gejD5YmIqFWuBvU9E1Vy4maiCm40DjevspRspMX.cF0a7Ro2Ew6Ojvb3F9CY
7iIYebP7yFGBzO4PXJYFg.WaBAcBQdRlNwJlI2eRmemKvbkieL7S4d7NANfH
pDeptiCNKD54v.XPX.N.L.aKCCkvX9QI1mGLCLbAJ1f+zfA7hACv8AX7ucdt
7irCw+RQnv6IOrjYF3nO.gvY.cp2Zhexny93OML9g9g9hRlFMbuXzv69.MdK
tnLK+GNu90TfhOpEEg3MGLD78AlDscSR11+xrDs5.J3f4.PbuO.jmmpVKETn
WrGOCfBzECE2IwV2McvTpF.z8ZimAz.FbeE8vf5w0nBT8LA6QlA2k58T6mLp
7aN.CAC8piRmCvfbe.F+hiwUgnaYaVoH2IoX3yrCbB3f.Asx35dSvw.cw.QK
ZWLu8ktGFUKLHvz8vPnnV8v34OC8v.uS5gQ2om3YRSASOCVGDDnvJ4eZFgop
EGDZN.q6kdbLr5LrdC1HyPVX+6Cn3ecAgX0tSUgXmitfuyZrI5KyXJcVrDKC
I2I0kDwR3gVfAh3tN+drXGiN3r83l3slAQ5xUflz72E6LcMkqzrryIwoCsry
R8Qb99Auhri4aqlFsf3zUwhXEkwo0uxTeq4Ai4jKLKORseA.iLnWpjIJdwHQ
SzrDOI62mEoPrjelIEApKbVjhpa9jRgXQ4lMo.BLTJ7mQChmgx.YFkAnwdMy
Jo.bIRwrgEzKwMs6EtOV+p+Vsmb9hGbFnmrCQOW25usnwcLUg5gETKZv4QzL
MLPO5P+XMxGrFigX.Ew+FkDrFM3nPjplAsUBI2Izetl.hwTJxZJffo9dDwa.
k6oC1uUDMO9stWPXzYChMMuVOogOAiIdPIbBjPsWfa82VT2VSUHuk1q00z3z
hcIwAMWYK7rkOEDJMzXLdM0KP4R4F3uFS7.tPz3mB5gWGTEYo1Qrdrkjw3eI
lkQQDsd3pdUY03i7ayjwzz5OnKMW23hAbmyBiLkpivFy04I6fPOnjQ66s1Cz
v0G7THW5Zj1K.FHCR1LzRZUP3KgpCmn6yr73cwo5lY4hxyXvpyegPkWe2NUU
O9bmJ75GhtyCa1w+bn9cZwiN6A0y3YBoz5wmIeKLSAFnRcZz9DlwrNwcqm8T
OAer5gZ2aMFo35HJn6PmKzfaRnglH0AVvrfLhpAsAUCZxLArwLQLYlv1Xlvl
PtviQtvdRpDUkGEodAJje6VkMpInfWG+eKwdMepst2NzDKRk7caJo6Ma6cIy
ksGXhrYAP.dAXvsEmxn7GTaMSSkRDYiThHSXPHaDkGZhCIp0ZWd0yjIoSP1n
xEnQtez4H7FjX5TeyJoQ9WfECNgyRHafoUnguUkDYxLYC1oILDaDVzjrc9yg
O.xvI9VUPOCaa.u..IcNX+lDY1yFIan2b4Jp9flpZEU2um7RRIjpSd4nN4Ei
57WJpgegnN8kgR9hP02KAkXmze7ed7+StBQYU
-----------end_max5_patcher-----------
22 Likes