Grid Keyboard

Here’s a patch to convert the bottom row of Grid into a piano keyboard. You can pan up and down the keyboard with the end buttons or the “Range” dial. This was about 2 or 3 hours of work. Lots of improvements can be made (as always) but it was a fun project.

----------begin_max5_patcher----------
4933.3oc4c01iaiij9yI+JDZL39xjzCeQjRZA1OjjYxL2sW1LHcvNKvdKFHa
ytslVVzmjb2oyh8+9QQZaI2scqxwEkEvAjzcaJZU5oph0ajh7e8xWbwD8WTU
WD7mB9GAu3E+qW9hWXapogWr9yu3hEoeYZdZksaWTntWO4Ot3UtKUq9Rss4b
c5rIoE2r4BEqVjUjqpseI55FylY6q46+ZJqSO0qpebWcMU+vRk6g6B6MO3et
9xKSqmNOq3leuTMs10CgTdI4UARZXyuDwM+jwtjD7Oa9J+6W9xle7Jfnbgpp
J8F0SfoTFP1KDY6Ah7iDhOK7ngLK7Rr.SPNI3c.g3xzo2FPfivDLAH2BIYbx
kBC9B8A9VjMK6Zc4hz5MW5ZcQcU1WsOfTtgl6A3QOE3hte+hzE1u+EuoLKMe
+rD1gXIYElmEPblHlkmvihrrF92JqY0hIpRnCS4a0EVlVZvYsp72UEoSxsO+
jiCqM.E7v3DNB54qVnJVAEqgGOT48IV6SztAsBZyungzV3t4ArVsXsA5KdyT
8pp5roM21etLsXVye7qYoE5l+3UM+3skY2L2R6tcd297S4F5W9r2leQWb6Cu
9yle97e8MWg9bWjs8tlVtrJa5bc4rs2s2kmdWVgptsAUtppNc6m+4b8zaUEU
KyT4aa7Cqpbz3sF4+lF+aYSJSWNWWnZ6WZY1hIs2r+9C45c6wmWMYUdZo8do
xyq1dgebU9zrEpx1FJSuehqmer7lzhsW3WUkSWUUkcm5oW6SlG9m156lupb5
78zakZ1Sa8MSmZ3XY51VLLxE5hros.6ylwU5824+pAyEOVi3mWkUm1hsqpUN
t6yzm+qzu90d5x6xUtm6cTw1sOeXUsCjOSe93cpxYkFFZwdt3OlUUqKqWCwG
cw1OtgGU0gO19f+1FSDatv6MCJUkO8oZmN8qYF0vmuKuuTYrC3ZXmKbUd5xN
MROP6aGnb0CE0y26W3QWf0p6qyyJtn6GS6NjJuc766L9rJSmz846ykpEZWWt
xfrha5B6u9UihV8du3GMZwlAqko4aFd2dKyVrLsHqiFVyW0x9JpTKZLq1EW6
6pOkczRe5ybMV6vLclUW3Moyaen+a5rotQp5Nst89r8x6hPK.yp6vxVsXop6
m0Kl7HCKoOUo+weMiJSgyRvunKK5XFes34JipV2AysJ.kGT0n7wZS5kkqMfe
UZq4x2jW+j19rpPW93FeqwHZ8Zn0s8ONQ2B2ep3l7rp8fDyCitC.L16K2wdu
Yb0TcG0y2ma3UcrH1XNqiU3e0YfY2d81b88EN2A004sse07zaWMO030caS+1
bi4iNc4iSaddZkTW8+tJsrycH89Zs1wXcO+o44Y5kpN1xyt95NexD7fSS9UO
Ua58YWW2QmaiMh+ile7eqRa8J9WU2aEQ2z9c+Mi8rVtfN+gpMB7c00c2Y88p
161GT0MO0S63+nCC+p6Up1wseJsiYjqzqJlYT9c9vbzo7Ai24VOwuodgtZ4b
UGdlKFjBUGCL+rdhw7T6m+ISP.pNC9ll8522wVwNlzeaZwen6JRWjUoZeF+K
551q9WRy2we+aSuwoisrqPX1rc0QJRy5X2p3V2UaBGnEl2nuQ+T2k+nY3bKL
9Msd1jbcGt0mSytUuoicjG45YNwwm0Kd5X6c57mTFmgU1mn28fAa46wWWiiG
qZiNqpqbPk5tg619UpzJSLXc5XlKfrOazD5XQyDH11Xk9TVGk5eQYTlzKq6L
r7MKWlmtpCQ94UEFhXByEw72N5hLPwtHCThIyTS9ogBgGqxvOXBbQuP8C2Tl
M6GxUM++NU9OTpu2jcdTfHfB9eayT0L7yXJcUQc2Tz5sDFDTKgwFlWh8WLtk
G17yuIt2T8BS5c0Og68eVX7Wux51r5O8+TD75fOOWELw3YPuHngGpuNngyFj
UE7fdUYvxl7TBtU8vDcZ4rKseEiahZUSaUA+4.cwkAuMuo3HaZ35qccy3MJX
0x.SNTAyLtfBpmq1diBtOqdtsEk4xSVYneQ0k6UdDtuxQv1e4H1WV56sbDeP
WjNUueAH4vRo3vHqzwpZGRrog2jkJpZ3bYxkIIggLNzZMwhvTUjwIMfTJrUa
hR7R4zVTquFpoJFpiz3TpEdDK73LuftTSV4ZyfjXRCC7XpnFeO3miVI0t13l
v5Ey8G.p435puDIOsJqc3hNZdFOF9y9zOBOV9Co2BJJY1RsRNITeaUd1r1BJ
ZrLVopeTEyd9A1BDKw355t07qsx8E5Ypc3pEKWUuoQVebIA2ZNLgr9ScJMWS
f9qMUGexUh8aUuPBg6cxio.U510ilbFcDbeLXpz7joBnAr.dPnIPHoIbn3fD
iAn.J0HGLrt.Z39M5J1C2icnHDEOGm3a5+8y4BWW9WpvG1qaBdtwcrQ.A1oD
MF03+hSbU41Z8IxOSPGEb.ETIptbcSOCkXwHyNF.aQ32GbDn6XiWZGalGFfQ
LDvmKXX3pgeCtH91ywKjD6TScZnga94ffzvgDo7XFdH84sXCVukD8M3ZBBJi
bIzH8hYmuiE7cGAFw0xiCegtroS7B9DIvAGpK6AVD06lUe8wndRQ1r5Z.hhY
0mcHnIBIwEPyFibfzQ48FVDD6MNgYD0Gg47G5rBvqPmDAl5pwB4kQM4aGS8m
vrNXRPF3BflHORqoSVO4E8o11f0FnRD9CpGmnDUyNQIgWxFYhxPOIJavJYTI
JonJJ4zQ2nRluDkb53ZTYLpKQPoLYzMpj3IQYCVGUiJiQs.7RxnyWYbruDkj
QluxXTC6QDN57UF6qvdZv53ZTIpg8DFO57UF6qvdZv53ZTIpg8DRGc9Ji8UX
OMXcTMpLB22LhwWdkw9JrG9XKuxHbW2Aiu7Ji7UXOrwVdkQBbWBIiNekQ9Jr
G1XKuxHT8URGe4UF4KekzwVdkxDbWigiNekQ9xWIc.xq76Oh22UYLxyMhzIC
IgiEUUTcfvGcFcj9JWKNh1bNzTTdfk8y9jiBB1S6SibzMArrPuLArTNbzQwd
lPHdGcL3nig8jC3eYGEN53XWub+K6f6fPDhcIj8trKAN3PunpdWzECGbRrKy
n2kbQvAWD1Edy6RNIbvEicon7tjS.GbIXWbFuK4fGkhjfc4J7tjCdPJRzSf2
6RN3wnHYXmRqUxI8oWb3fiibRPDrv1gdg.+yA+cvo.Elf56RWRRGQmaudgQw
dsmRChB9N3Zmgn5tKIz9VDExrfKzOK+zH3FV33tj9buLjgtEt3ItaDcPzAW1
wQMNrnXq8ROiN3lV3npYFwXCfr6H1N3hwM2Nh+kcR3o+vQMTLQx.LtSBO+mP
TiESvGfwcR3I.Eh6JOHZ.F2IgmATHC2z6FhwcvSAJD2vwFB+cR34.EhZEiXC
g+NI7XUBwcBoGB+cxiHNSIto3MDi6NhXUPUybi6NtOA2QDpBG+c1Ub.2gyw6
CYyfOSWblGRyast4Ill2gQ3OlUsLO8A3fj5APxhbuFvmFHQaCdRh8N7Duy6n
tm1dmfONjxvchJYcjfNuEXOgyeMOXQydNFT.xw9s8c8rwxbkBLzKuigeevQL
crzPjWUDwQwVD5VVDm3l6yoWOPRBtS2ry+vXRGkfsN554T225nvCUih8a0bL
U1Yo6b90QwsrYrnwlcT720DVuxH7sN5QHCwd0kEI3csiROy95IHuzODiM6nj
Pr0QWu9V7sN5QHCEXuBHSniJ6nDbW.Oit3QOz16wIniRFh3QgWmdBCaUTV2v
Q8zh6D9QRSDtqBqwVznIwXqftdkl4YETvS0RRBx5mqOhU7q9IXSnIg3NUKis
HQOzNpy2t945EKnm0OAOYYIRr0OI7wj8SjeIjGaQgdza8J8qeRGhfPAOcmG8
9fTuub0gzQj8yXjWNqisHPOzFlyIr8GNHEDE7DVmPvdeIMZ.h+Dt9ItSo6nq
ZnG8NqRu5mrAoXnfWxAwnuu4RGf3OA6eOlg6RNXrE+YL5SnDaPJDJ34SJF6o
ShI3iH6m3tyoPGcUAMF8IShNHEAE7bIEi8TIQS7+aA9Q8ZR6sMLkM6O97nwf
mBb2sTnitZ8Fg9zQPGjR8B2TJ1U5kxFSQZi6V.Cer4nPhehfH5m3fRulsYb6
+a+qc+z+ur88dnuQY64n+I9RnmaRsuXufWcemxqnmvlECc8obRyoC22jhSd1
cpKm04.H5tzxsO6O4h84Jtc6RXeGWFzie.T+GYXqcR61u9cihBi6bnPUkdmZ
1umVWWlMYUsp8upVyUVyVZPd9Jk95MMuo8tXYUQVcU8C6b5erSGx0E2bP12N
8r4D+rUK4S1itp8zsM7Cp6RVo6leg4oQ.35si+7cE6Ny+B894ARv2ANqNTWe
RaPH0hPgvKHbZtJsDruZjCkzE5gaiShK7zVRSPD789JFpAiHckkdi.zKGNkk
A5po+dmClvcfHYea049PGEi0Y8APX0yhv8tqldzKJ9M5hhvD2At4vbd.Wops
1WXGgIFpWFDF5ptI8DOLWVjZ7R9ko0kac8OUmuZQg6ITBU.B5bBqTeu8FDeb
NVxyprmsj1eCg0vcKoP55iEQoONTe1Qy3V0CfsW4IuptWvN5IZSdhk.smMl2
kot+trprIY4Y0OriR61iaz+QfkMS5DJVyIwtZ1rxzaplVpyy6pDLMOa5s0yM
bwal2scm5x7m9EbW3tmdgI2r4rDcaK5xlSD0tGXaah6pR0b3aZrKcoAvKSqA
O3c+xqvmSds9rPEpna8V2v5iB4GeJvYuA17WpbeqMRR6Mro8ckmU5UkS27zr
Yc8DzJaloppyJRaNjt61IiEXSFSa5zV9HcuJQnRZ6q389nM4zncLDXGc1Hs8
nRnSuvhkKg.agWj1RPRapWX4BHvN7rQZ6oofGj1bHvl4EoMGjzl4EVNCBrom
MRaOvE7fzl.f1MqiEOHsIfj1buvxAPZgW32PvrWfbLDRGGe1Hs8Xn.eFdyR.
oeXK8gBNHRa2UL7.KGhiyXwYiz1SpBOHsCg.atWj1gfj19gkCwwYL6rQZ6gY
gGj1THvl3EoMEjzV5EVNDGmQImMRaOuK7fzF.osmF2AGpPEPoTztdAOPrfI6
GjhSmzfxr1OjtWTefAxxA.0BuQ5dQMe+jNZ.PMyajtWTef.xh8OpiS7Fo6C0
OJpssjNY.PszajtWTenZIPF.Xy8Gs6E2zCPa5.fax4i1QGRdy7OO+fgGv7Ot
kGvvBk6ebaOSkNaDmd.I9.L.2tyP4IZ2Oto9HXTf3l3MZ2KtIGPYa.FjY2Aa
7Ds6G2GHLQ9Pf6PuQ69w8ArpFND3l5EZCohJQdofJfHs8v.zCCuYP8eSOKj1
tao5AVNDRKPH6dIjpQG4kY5ADosmbe3qVApfvHvdEmuJXHNekQPb9xkWb9Rn
Vb9xpUbFyrTbFytSbFytSbFyvRbFSzPbFC1WbFC3VbFC5UbFC7T.YNsh7R9U
fHMiF4E0bPzl3k7ogrfmXgHDdBj.64DDHDm.bMlvOQBwfDYGii.jXfjRdYpd
YB.4.yVOw9C.HI9X.HCzRuCCAIGxz+fAyr4coIfAZdxInPKNnUfANzJDzZ6A
GZI.sP4vgVRPKASbnUDnE2KNzJFzxFGGZkzaUTRPiVz9KYSLdDq2JQxiviX8
Z5fimoCZu1N33Y6fBpJa3Pq9UOPw1AERH6BbHUDnvjkX3BiJGNXI.CqSmVgf
hyAEbQ.ItHnX8k.JbXBJ1nH7AS0fPAKtNYMdqfnOKuaMsf.s5MvdTJ7+VErd
nEJFdAQpHLjVPpImWRICDyzGSiBMQBwC5lWIMDnU+SLEF1tnvduuBiPgVgf3
gbT3gflNUAEEbwGPdHCDOjhBODzbyJXnfK5.xCg3.fFmfBODzxWGEG1TPS0K
FDB1aWENBqXPKEkXL7q4nU+BqPTvUz.xCA47JFEmWvdWrDBTv0.57JFjyqXT
bdA6E6RHQAWCnyqXPNuhQw4ULLmW3fqAz4ULHmWQn37B16dk.iJ84dhGHdHr
k2XDJ9TfsbFEInfqAzmRDHeJQn3SIBjOEIJIDEMf9Th.YOLBE6gvVnkRThOL
Z.sGFAxdnDE6gQfrGJQIgHPCkQwxqb.s7JAudtPekFCi1tIl.+5GIGPyJRPg
pJQwzrDTnpRTxuUBJTUIJoVHgYtDE21RPlKiPwzrD1qSOJ7PAHCKQnnyCaw6
Egh7R.y1LJxKAnPehQY7k.1d.FN5FfraDiitAH6Fw3na.xtQBN5FfrajfitA
H6FI3na.ZnLFTJbvdEf1tfyd9IuBGRIFNRENbjhObjhMbjhNbjhLXjhmLbjJ
d3HUzvQpgyZAe3rVvGNqE7gyZADiEnLkQvVVXnTS.PKUKmpC94JCi3Turm58
32mqCEniWVeK.INk4G1NrEto7LRbJwOxbXA2F5GYNHhSR7CaGDswvhBAV027
xVYNPhSh7h1EnkhJMwK6fg.INwOCpIfxjiGeFINIzOxbPtvRH9QlCh3D+Tna
BrMzijyHwIT+HyAYLMN1OxbXVxI9gsOXyUEjf5eBcbG9HoKWdmprZcmsj3hE
o+gtb6g4yEKxJbezd9vbQop4Tiw0etskzxoyypUSqWU5NPV9hzcLvdQyg3RY
wpr0hRC3dYyoDSZUUyg2R0xTGNrmbMu7e+x+OmyC22C
-----------end_max5_patcher-----------