LED strips are usually one of the first things people want to experiment with on a microcontroller - "NeoPixels" (WS2812) are the most common type you'll often see and are really easy to use. In this article we'll learn the basics of using a small NeoPixel strip to respond to the volume of our RNBO patcher on the Raspberry Pi.
Things you'll need:
- A NeoPixel strip (8 LEDs)
- Hook up wires
We'll start by exporting the following patcher to the Raspberry Pi target:
RNBO Generative Polyphony LED mod
<pre><code>
----------begin_max5_patcher----------
13361.3oc68k1jaiij1et8uBDZ9fOFY0DfmZiM5nOrm8s12ssczt64KcOgBJ
Ipp3XIRsjTkc0SL929hD.jhGfmhTRkJ4tcUxjTf.YBj3IOPl+qm8Mil6+Emv
Qn+Czui9lu4e8ru4aXWBtv2H92eynM1eYwZ6P1iMxNJJXm6nw7as0NZwctd2
NKvYQDuYHZSTFivJVreoq.+hPlnf9Ghui2tMtdqchXsGVbQnYYs+hcQ9qVE2
9tKYWze9+70XyQ6a.+cQ4ags1A1abhbBl43YOesCbOEw83OdzCac38wQiP+C
3N+6m8L3Gia3Xeg+lMNdQw8iHmuvFyi9Q6P2En+KGOm.6H26cPeve8Cauy26
gZoSDFYRUwj8K8TjoU9dQqrW3jdLtyaoSvZWuLWTJ8LMgSUNgSI0KJz8OYsI
qSs+xdTJJqc9eri7G0iTrOdm+mCQQ24f1F3u0IHx0ID4uhcke4c+36Q+989t
Kb9GH5..nX0QFM4SyLLX+RotYaonNDRITmdbz9CKXyJ96vPJrhwhJFOQeLRS
iMllxlS.iuFOXvJUypmuatXkAtOYlQ1Q6pZbQLLYiKE0Ipo+iIdLxPo0iRqg
bPtwILz9VmBCRxjpFflrkwLFW5+naRGZSgwd4R.IEGf0HoqmjlU1HEW4HUEW
JqrCiT0ixH0y4yzWVgA5Ze6k.Q.gqZ.GuQFaba1vsyRMD0OkCwn.auvs9AUJ
AcpJaPgU4abqV8PTBWTS9PbZYCQWPHRxuVQ4Ck7AYOU2nOy2EE46UOU.aQXS
hUZ+FIF8H9j41d21qSDnu4.ejlG56s4aFga.sfOmGS3aDo1hYD0PKRC4fMsq
ZxfLDI+Pfq859DRxOsKHfdcz67ibPua2l4NAUQhvV.sQ0fLwH8erLnDLs1um
FV+TryMCQB5FJpxuTwXEaxVSnBxDFirrZ+fS6TrisgZUajgszYPtkw.6vFYX
xIcOa0J2zFqZkhA1kQG9TtIV.s4cPtvrTjGr5LjA3DwkjM695fUi0lxF2hMu
UzqdCN8hi+oxG95kN7Gm6u8I4Xo8huVqBQBdMUBda2LuG0GJ6.3d6fDo2Ady
8+ZQFc5qVtoE3aKYo1ZnXkLKVsL1Xn6sdzMYFm9SqcCi1ukDqS5DHnABh.cm
J20N26DD5Rgbruq7Mir2tM0k+lTeEfx8O8YMj03jK45wujdxkBbt2M96qjbU
6.JoJhRm1EvouewHVjKzL9KcB714lHfkwCEcIF2B3KgaEFafwFh+1iRsLRmo
c8TFSvfawBKsTPjnSGtcs+hO4rLcuaDU+dOWusANgzsfrix04GszYk8t0Qyx
fIfLQ58isGhzal0XEwOwsAtK88f9PFNAb432FLz3SrROVXOgm8VIeYtQIJ4l
bgSysC.FkXaMR7Mi78Wm8VIeu0NqhD2dqqmWNhXj+1xuYf6s2Uw2ctO8lapp
sY2Ib1NO9cmQmSDMKz99rD6H60qEKoy17ew1ycicjSjKmCPTRtIGq6cgKB7W
uNy3kem6kbmkz43Kb9r6xn6XunzyEnOt6134PiR3xKcu0ILJ60hruML6UBid
fSzScocyEqgmE4rY6Z5nH6CPWcPWwGB1qR7fwyy1SWbiDM6NO1mWNJEsYu4U
SubOsnyLWuJQn4jVZuY6WQ5JJouqTqJw1JvPishUXhrTf4KcWgBp4gGk8ajR
FZ5uRExQGk4kBBZnS5b+e24HdMrwzrhuL1SF5vv7mZpRxsRjhsuUFE+HrMsD
B85MtP5Myt010SJGhoxGBtMcRLQG88afOQ+k8WPpMjqg464Yozc1lRGYaxYX
tdq7SQxRQynMtiyxva7nh.8V3bi3ASwrfcptksYS5VHcS.T106bxb6L2m6pf
2G7g.+s4FA4DD7QmHJnQ2H5bFDuQy8n78Nn8HIsian8ZW6vLayJd8v0iWTml
5vDmPIf14jruuaau3tbZ9u+0wlqH4NKcn6btfJVZojaFyr.t5d8UyM.+6wDz
QJ4df01ycXqmFcifN82kQmnct01O3GrjCzQM0cSvQH3+9Aanzm+zYYK4h3J4
hrFCsuwmfF0KbqgfkvVNJYHkmUUNQD.JE0GjteAZHDWHTjekqE5EBHtemSyL
9SSlq0Gzp2kzZnDC0woTSNemqwkXePS1h2D6PE19NZ6D6.uDBXkBbwOpE3F9
vl49qKUd5GRlCADlbO1FaukTUTBdHkBYx3MNTtWeva9sPGjsGBZNvA0zo3zI
Na2EM5QMGfoHdYz+2RGq7MyBqY2Lixo+TnUta5GVvOyapCQ1KzcFcof2PPOp
g2fqj2bD4KXI7k2uhaQVoijKRPhGNSy9K81BJdScXKnr+xirET3x4MBRa07F
Rk7liHeopETRGIOhWPMfLMmur02CbrWent7B60Nb9VHJtgo5Kr9gQOATMtbl
zaiowUykLKmKEF4rMrOXQuw8d2kNLL1bDbTc5nJ1Yi3iQ.+MsasHvg4iL3k9
j1nFeTBIHOaypb1l3Q6KMj9AzF+.GTfi8Rfdgf1EsxOHqJSTNJCq9Wh.CMul
GLjfJSNcDtd7vfoGxYs1SE3rkxXeCeHIS2pBnQTqkA+tyeFbEaWldV5iU8lO
5b9cdtQ8CKmOd.yqw8M0bt3Y3ETvbH89Z6KDl5uAbiZXlZkyLi76ho.Kmo9S
9d26DDER2WktVdcd6AxLkJ8t6eovh7MSFcIaOqe0GkxBoTHQANgrvPnF1lR4
rsUA9aFLFmmLy4x.KArN6EQ6JxXur4f+MJ4tS7vokyBSdlCky8dng.wie9N2
E2k3ohbLnPzmcWuFQEwBQRB.AF46gDdkGAQy8DzuBXiYs1BpnV5ixL5o6B5E
Expoe9EOekaPXzyoRiWhdNDrCO+kOEj.WNT4egxI.vKLFQcKpqPgTJiYoaOs
45Gos0P3zpSEOZte8bnnfBixT5y.DjapeyxJ1qbQz5dxvo27laPK78hfn2gt
ZSnAJU.q3hTnOtg6WAO4BTUzTFxAnF+zdpAO7wmT2BI8JLGmSjc+fP8+9iu+
cLDJzuBUteXTfq2sLtjMcwE8ivqZocjMSWkcgNn4OvvsB1.J.9JK7W57jFf5
OKnP0wOMpxa0aaoe8qvLP9PXPirWtjuHKAVJ+7Tx75+u+l29ge4s+zO7qu8M
nWi9sO9Vz2KtiBUlZXDUI0+wij0j3CPd5J60gNU3969io7CUvMl7Deiqa7Vr
d2R3flf9.mfWyBor9P5Yx4dib81tKJSzUVj8kDjdx.PTikF2yb+PVfn4dv67
kECFK2GIzYm+UeeMeXT0wdciBcpx5lYl7Mhat4KaZcW6vMOzgZFs9Nm0aS5d
7UtYhfxTF+q3cyFHrEuObX6gXOI+58QhykvMrtm5TKUcyoXRll9NaO5f9Cb8
st48YGGoWZxiIWmuDEXOCje5NeWT1P9LcPil1IV3IY5TIRDxp5RJw1YBtzhl
THyd5o8+btWTpP8PI6cRPLm65IN0I+0SoATlNWLhtrco7FuJ6cy4Bhr2L1Hl
YuZbPCMZTErlLwbc9vWNWrVqWcrVymhMnwZ89SyLxEMul3lVivSnFpoNpaUF
0z3RhZZyGUQMMsaf6i3f78b+JxMgBA8BtvuWN4HDJemoQHIsIH8NkEidADdq
0PWIOhoq0D8tzMEt8V5VN8Azavle68.Nk1sCNrygnkvNwzU5N7LMy9GQrTdB
5Oh1+eukRjD2Aru3xPlAFcbi.iKZi97c9qiaiwHV1HXLBFjfkEgXQbblVyND
4tDBfhUtTbATMpENJZeu6Etzlg1DiQqeY1dxML+FE3PeX.519uy3TWO5y9wi
CZi3GcGLv3lOE58zdLqON4BNFbYQ.Z+qo.6gKALXbNIX7dXg4NRnRlexZPlK
BcCEfgNHTsGBzb19DcDnaer2vAfTmIHtJoMCnn2NfbWHgqTr6xteVnUQc.49
qwXUUMhktI9PvtmAfXzrh.hZ2AxK5HAPLv1ao+FDFW2YhbJ63zopZLQW2vfX
ZRlZgIJlViQlpc+j1YTNlQbkXFq8XQBiqYEeGs8bQBMyQhWrsQ.0Ibf5h+Qm
.pS5Mh9PCRWDqG8.XxgJpQTNhmuqlFdeU3jjcQ8xYLbSwcjOGOPb0ppxrYaC
7mSWl0WZClsAOa0FYued3Gz7xoP7bECOeE1CzmzM24+7mh3kyPa3oSGQ1zoG
HNYZuKAIUU3Foj78ZOnNaRxiMN.B2miJl7THfteMdT0m3gP9jJVeoWLfvaYM
JZKX2dVFQS.oNIkzJ7VdZK7SUf22a8Cfg9cgvTAEOGvcQJFV3KeB36u5bxZR
9Q4fMzCzPEWU7T6XFuz+c9QPFT9Fue19KTLoaofp8q6v2A4jp9fI..kQPiAV
z.B5tQWovo.WHB+odIdVuymJVha7xOaCAkicTZwL7sVYVCLIRrVNA87P2MaW
67bzKDqDdIOtIs2E4uwNxcAbltPze3CDm3VAB9m+Hx0ag+FHnfXQzDjr8Bmf
9Hk0.WykYDqmuipu4y4MY3mci.qltZE+K7GQb4mhFmJBkEhkTDRAQzuQzcvc
hei67.b2KebJfL1MarraDPtACABTlBFBLYlF6qTinTQaUUbDE4rOr65knIJI
PglffLEP5YwwgJzjqqwiMSfyBGJpVHk50SgxknE+pHU2GhnJ1y2fioLCBbpM
xlYT+uB7i3S.XbbOuzEroBcE8KfEXfOKfjXl2hGd4Xv0Dz0yac7BYo8A1SDe
6wz0hz2.8xIKL8Y95fu77kO5WWBhfXIcrTjfCa0IuEqPCpfa6E7n+hy101Kb
.e9.N+IL4TjsGyyXDjfIeHBLpF6jlsD8WviQ+EBxIZwjj.kOf2RBdLzD1KV3
GrD9VwtU5I8h6dxiQ390eQX4AH26jEGHmKtOpSCUIsWMi0NECUETSHimXRmu
SkEDUcvMLXE7Tchpl5QIBphk6jaQY9MqhkH9rRLbwqyETTEwZj41RUEOKIIG
f3BvapwwSamUz.+syiGEcBQVPSoohkjzd4T3hIt2BV2uXB7MNzxxkDeE7FII
xWA2rhj4KuIKlPeKJAqlD6a7DDg2Xr3oYRUKdpBk4dLMKkr9iQdB9MdYQEI4
2zamVVh9svyjOY+V3AjlveYOk7j9axspLw+t+ojlee4i1JR.vhnCr7j.rHt+
JKQ.yic5pRFvhFXa0OP0IEXgO9pLw.mtiVWxAV3eKYIH3X2IVZRBV.bqjDEb
p6deI2szDFr3txSZv42KJabYlO4AKXq4Sfv7KWSRDlurt1DIbVikUHYBGSGc
pYy5rdtsv8qyCtY8h6q.poBN+8k3OWdkdCySasZlx7makNROuecK7NK00tMv
8tMaO0hzpDrUJYtbVb+R265UyjNHJe6qx1B6UoU3HCh0JCaldcVPbbUnnnz3
YB77yu77VbqlHnNcXlITVDVT780dlVtHs3zw4BcViZwpWKLOtXNbllU0LMRs
Lswkw3xGkFxV0VazZTdDaHo4.5YXdOpK64p14nxNeNLiKfdA9kfoU+YfuLRx
2oBOZTsJ60p1dMptWq56UqBespwKz0VZrDWuuCkaklLtOTlzZ1RHJkt2Yn+H
DNvtqP7.9j8NbBKr7qGXXCMGorv6t5P7tfTNYz9RrrhbheUwjadiOr2nCYpZ
XkcnsRNu5vRaIsrTapTgEHJJUulgDWjRmlwODhPpZTUfVVlUipYHKV0U2Tpd
ZMVOwm772TBMsyS9tg02oCB9GdiuSn2yiJm20JVSFSeQ29ee4yUt0uJ4Qxhm
g9PEdhxrDVQqgMUgfmZhUHEdIUZPrFhzl12lIGxQ6wsAiySOnsuipzkkdyQs
wqxWxig11gZy7wsRWe2L4ih1OQ36NClF350Bn6hZNoUylCnT9b.MkAYNvo.0
NqjA1dPdjJEdyHhn5fidohUudzIkVcCJAJdbsIsmYSzorgNH+6cXt.eSgD36
kDuP3BzFn1SgrJzgSnGlLLzEH6oAptJ4YpKKDk1moRKQSsWqr9BteQm61MGF
WHp6YJ7vhKFtvXVvMvqOr3xoNk3Q4CEhsqWkvqkb6rHMj7.MGYMlBrFqP+eq
l.sF2.7TsEpVJw2EHrox4EsEImq2L4fQZOTNJA9zikChKqlClinYvKN0MCMG
tBzb03FEkKYnZhSy+UrZWwpcEq1UrZWhX0ZgEzGPrXr7wbTbBIoGvi0MquWC
v0Z.x4uqZCkJ69YQZH6IZNVtWappapAodsKLrbTxxL4XQZOXNfDWAZtrQw0Z
H2+TcvxvffAOW0P8B82ErHdkRLvTTQXYKoqKb8Rh+seeeDL.Obmfg10dX7Ks
Q8P7onCZ0hNn1IoGZ1Flr0InGhaSGzr1NX1kOwwZ47aW3ulKA62gvASEqZRz
0lpfmZPU7jdIbx+zzRSECWhfwlFZlJ5VVDUc0wPFWLaymoQmRlpgIiy7IUc3
iR9lNqYmMhLM.U1otlhIwvv.aXw995XccC8oSwZJXCS1krLvlVFlVDSMrtlo
j11dwhBMslphpFFaogUmRzYMshAQUQWUES+E1f2zDhhthkEV0R2RRKCXs15j
okI5VppVJFpS00UULECZMBsmaoPTsT03iCpR9S0lZoooZnnIoome6J20qYM8
rDnL72TYO1fvRK7BvC9afjPKMTE7cEEMcMV6onZYN0rllgt2pH.cMyE4noep
sT.1T.vwA17D0ok1d6h7uMvdoqXqTZi9rhq2F1juCEwwx5xTlp7P0zjmviTm
14LvipV+k1iZ5QdnfGBq4nDvHHyJ1aa2wIfSVOR4OIG6OYuY6WQ0lLqhYjpl
kGwkMJ+UopNP4up3wxrhukVddNDMzQhG.pOPWziV9iMiEXovO+DFcdsDohTH
lRWWrHA5dMKWDC7YE6RsieIZmiD6J79UeEoqnPE4ZpWCGCNyGo+CltupgIOd
JTzmLM8ezTqiapVB2rhbSlVUKnDIxnwU9oZVzATiYE6EsiABMxvx8t2N4fPL
ZAcqyUqjKNDLuCh+.Ld72SI+zOP+s8WPXhBborI.bzV+O+Bxe7GiEYA+WQ4r
uj9SRFAp.p6E9636USpdRit0DszSLrnH+LvZ7U6riRDHCt0xcy1gN6y0z2Ga
Crxzlo4U3onJKvSCQ1P9wZwr8FAc5uKiNUgIEKj+HxVZI5g77UiJyDmQYKtR
B27VjtuZYQiAWwA8GpHObQaPsIr+K1YCZdQqlb7cWpti3dnLabYk+46q5OMX
t8Bkj1mZoNq8xS2WlYjTKgK0un4yFchrMxgxaf7tCTYfYEqRVpZg63hQO9yO
6kQ+eKcrx2LqtRzdEUUsTkskCkE7y7l5Pj8BcmQWJ3MDzi5pTWUxaNh7kJpP
5ajNRtHAId3Ls8UHoClwwapCaAk8WdjsfBWNuQPZql2Ppj2bD4KUsfR5H4Q7
BpAjokt3lcvpKuvdsSbovNtgcgr43SgzBb4Lo2FSiqlKYVQYqNtXtcnrn23d
eb94iifiWz4sSU7gncqEATfmH9K8IsQM9nDRPd1lU4rsbkGuCk48CnMPMPOv
wdIPuXoUujTu2dcNc8XX0+RDjAWVi9k28iuGcH0igrwC0kQES9M7gjLcqJfF
QsVF76N+YvUrcY5YoW90J6dhyGWbKObVtnvqAkeKVhfZNW7L7BJXNjdes8EB
S82.tQMLSsJR.79cwTfUjXr88t2IHJjtuJcs7571CjYJU5cS4IHHhmuDyyo6
YQ+pOJkERoPhBbBY4WvZXaJUjw3KTNc6QFmmLy4x.KArN6EQ6JxXur4f+M3.
s0Ed3zJJdowOygx4dOq14QEOxKwjwdpHGCJLIwCyhHb3PO46kjopghEvDDTs
N4UhuETQsyY0TSm.2EPxplSgne9EOekaPXzyYoO9mCYbvm+xmBRfKGp7uP4D
.3EFintE0UnPZ55S8g6+VukCgSqNmK1IQAEFkozmAHH2T+lkUrWYR8F+fsyC
TPF1m9di0.kJfMN49Gcma39UvWh0VnTFxAnF+zdpAO+OMotER5UXNtBmOqth
PcHNSVOw.nJ+7VUjeZTk2p21R+5WYYcvyOBYubIeQVBrTl1FrWC522W3MPuF
8ae7snuWbGk3xtw+3QxZR7.V7n5OlxOTA2XxS7Mttwaw5cKcn6cg9.mfWyBo
AnJJHC.QiqM0eHKPzCp.IzfZQc9vnpi85FE5TCQcb3wIstqc3lG5Pcp5R.qb
Kq1RT7t4Bn8B2uYEXB3XhpaNEeTpuDochUtZDQhDgrptjRrclfKMk+ky0PoB
kibmBmDDw4tdhSaxe8TZ3j8kmDF7YSv8YswQ97CeFWLj8lwFoL6UiCJnlGs8
EC64bAoMolSEAaRzwIF6e0WYmas5Jt2rXh1TqhjAeihLZqNdfTZVDx+Jd7wa
08vi+UGqShRf+Nppk3ZH6DK8I5PPnqMAiUI55Z5SMHZDr533LKSmNWPJm+Gv
KFAZVwda63mrV4XwREIUeilwTIl3IXUEchJVwBaZXZzrCZTI7T7zA5rdkJS5
m8czNYZ4xf9CKqHBMGU2wkDOUiwFTMmXpnogszrLz0vzcgoK3Hc9.egsdTc1
O5qJK+64QGA2PvDzKfPIuPIGbHBG4SSTdWSjxSa.RuSUwMhpRtbopzsXt8VJ
n4dozSemSpX3ItzIFhVB5RrAxyHLqIr+QDKimf9in8+2asgpkKOI4.vTCYtH
wwkU2MsQe9N+0wswXzp091QiQvfD7MBDM0iyzZ1gH2kPHfsxkpYy7Ghc089d
2KboMCsIFiV+xr8jaXd9NvgU8f872+cFm55QeNNk9Pu7b+HnR+Jb.Dz6o8XV
ebxE7oHfEC6CQEirXz8ef0LRXgODjCtgBnUmiEIRII3+9cWgCvNCLgvGd2tS
hc6fcGDR2J0xCxteVHVQcvtCulpWgpFERpI9Pr7PFDi7iYN1p6fEiNtP1gCa
rRCgKJA0tU20G9H.ZuJL6pGaL6ESGj6YFqBb9e+169STQqmTN6PiXLQWcppg
BkaPzmpC4cFKN5cbGPuaVQ1ZnGICzsYyVdpqZHpKYH1Dk+KKiTzv4bIVVcFu
XMlOiUzmFGHkYDG8e54647ciJwVhxt8daVVhIKyJ9K1CJXhkIkBaRzlZRLrz
L0LMTapLN9N4yJRPam8IxcZQG3zoATH5yG7iUXgB4y75ddEhfGHoczA1rhuf
VlXLbhNxIgF6EQt26LiUTkCqKezXwRDM5hDZBA2Ylv4W9nwn63DNtoilXFGu
X.W2ZHpzaS8DVlkZm4X5mcbL8tCo3zvwfJedc7KE7j8rKyCHiOYc9kwmpBJt
14HCim93qAejh0DhdtT9T7xsC.ej44G+yrB9m94D+CLqwj099eZ2VjBU0YUj
NxDYUeNuSTryjncEVq6N5hLTI.uTiyYEeQsC4Qp15HwkbVdqyWaDCAKJFYcG
uA1rW8GRV1.afLq3qocL.N433P5+Nvc6MiziwSrzIDkoDMUhohwT0wHdRIqa
NHzXP8892I3CGPxE76NVLgkNqira1B.yoSzHFXEMCB1PUWUynrByXyVMnOnL
A9.aVw2T6XDB5yQJundmcnevWQZdnues+hOUaPQHBBEwhD0tufPaP4Ehw0rh
upVlhT4syQha7WQFMaqZUUiI55FFDSSxTKLQwzpY9MuLtg54eLo7WmUrm1Nl
4e8HGKJjlA6RVLPbHwhB4HDKJjtqSyQMVT1Z+olIPCqOQSwxR0XpophEg9eT
x+TdLpzElP+YssiPPnzGQKgeekf0NMQ+PQWSmI5GfB9SOPj1erwl6vhAAjn5
Kjuz9bI31+llZPq8TbVEagLrrExkWRz8HvVV63cazc8QjBcm+mQar8fSnGUr
cHvh1Zu3SWDmtxJnetg8xgzBBhJ1z48oCW2+jmwN9WeOcaJ5lfvlC+aD+yrR
M1nqQXjrHLB20iKSOIxu2OHPfnydeH0JwkG0XnZTySqpUBpoSmooOUwIZJqv
rBGnoO0gvJhPULGqSzMvGiyyTrvpr9+e+V.YqXOUq0t8mlUD8bK0XmRxNN5V
rwcoK+fl2LULzKOZYpTECyRTwP4QiJF.kh9.g121K4HeV5G3m4sG588Xtc9b
Mok6G4.mqNHvr5kb+djyq88fvfl+wUqPu.VE+ef15Rm7NFcuyZ+EtQO7xGw0
cfZTnaq+5GXYDncA8xbxOPaOz+emGXm3anQiIozqMlmZtufolhjfBeKl9fbJ
RtHneh0hwzxBobjKeJ61.n72so+nref2fBJ6kbgEwdUjSPj+tE20Gzse.ZMz
uxZtKXhFLQyimGKNTJFjOF3YJHQa9j0BWUr7F1vctiWuTTW9.zXneDNLQuPA
TOCSLebln25IaTYnUAoGn5afT8TOXnEEVxjJC8+0.weLBW3NuFOgwalPuKo3
csvSIv8o+F+3j4EmxFnpZr1O.htVVL2CpIgFcmKbk78vD9piWw7CegjbDqs5
ei7jFlcmrVP2AVWmoPvs05NYf21oASG.z16ihrvJ6zv3v.R1+7kLv45ZJCpJ
Hb8dWNELpN1eKG5T+SeS1Osqz1FrGZ+OOWJ.oVk3q5JPqx50Gh4VSatmNNjp
2DOcvPrRMXW9xajzGIqIFK4gZlwYwppDKcr5wvzrog3jeayZLE69w3rhFarc
VjME45HYXV6O4.alivJJveaXLUYpNYpEwTknpi0zL0zUgPbqAw7YI0qXs9M1
aaJSOvYqicTBaGNwdMmqKnbyJz+aIKWzNGuhcL6fbIODfPr6g9dFln678d.o
R5P8rVmXMIcvnZnRun5ztGzcUDyc5MqbVm4uGcq5KNMi8fhqCUQgP4HV9VO7
nlXCjlI5Ap4lhoqhyw5caMF9ruxMRRxeFOp7NjX0d4DJ9QXkepH6A5U5l6Q+
jH9o7UbHe6AhSl16RPbUUUbzktsI24Wg7HdK8zz.u.JHtIF5k.Ubeqc9u1rg
Swb830Gp9apVRKdAPiZYBaubRirDQ94HEolzPWBH99vr8eHQi.QsKKb2bQ80
YxSgZI4qwiptXqFx2qi0W5kL+2aYMJZKjxvYZkIrMRXLGPTnNRmbwCQuv2a8
CPNF2EpPNn34.tKRwvBe4SfxNPc02gH2n08hCs9UngJtp3BN2DJulo3+N+nO
dm+muw6ms+BUe4sNKDV3qh598J29gI.JwifFCrCMTuuFckBmRmGg2g5kRo2c
9TwR7rN5msgSafcTZwLbD+rz3YRQfZ4DzyCc2rcsyyQuPrR3k7R1l8tH+M1Q
tKfxIMh9Cef3D2JfKe+iHWuE9af5QDyT2.vtvInORYMv0bYgr+y2E5D7bdSF
9YliI.WJx9B+QDW9onwohPYU2MphaA733GtS7abmGXSfkSdr6NYN4Fr1EPYN
LuHKZqpQtuuhe0KExnjZTzDzuEJlODW+vDUonIWWimf7cgCUY69JDMdiORzh
eUbbWBQ2B4jMXCNlMVPPI5DYyxFueE3GwEe73Rt3RWvBwzUzu.VfAIa30T5g
2hGd4Xvm+z0yac7BARD+Ihu8X5ZQ5afd4jEl9rjTLe44Km73OLOVvMHcJRvg
s5j2hUXXmfa6E7n+hy101K3GdEnMSJf06w7LF4PAo9.6.nwJx0KQ+E7Xzegf
bhVLIoFcFvaIAOFZB6EK7CVBeq37A8S5E2C7AwpiI5Yr7Zy06jUhZFhigkTi
i0X2jK8aedjapi8RUKrKeMz9gIaT2o4MRZuAsyq1ycd0iYmWqm67ZGyNudO2
406mNekG2vBppmIDW.sJq5HG1kXZQAOUmnpodTJfZw68maiw7.FiQk7rpfzm
YLI0hWYG04z6rfVD0DeEEhRgVVZxJD1BYULIMUBraffIUz29a2l5Vx8t+F6+
Imsakyl8d7KqmCr98twsmRNjZKtykR1iDGzpQewH6B3Q.CKvamaNHCYQIjPH
nXXV3Hehb5rSIOrLlxRbuV7bDutUtnz3aFM+106WfkaduGEXBXzbuHl50EdD
Al0YqnSGBc+SQVsdRoOyJQ+tzGHgM++PWwkYfcaf6ReOnOUfUB2J9syiakwr
elcbxdJO6skzHB8gJ+A39Cdtc.vkEfKIYq6e9qydab1SC7pHwir00ySBAOxe
a0OPf6s2USaL2m9.ap68vtaHccI+IlQmXEMKz99hLmHplZhnNp3q5K1dtanH
lib4bMhRVYIrz19cgK.YMEnG76deI2cIcwzBmO6tL4.Tm8tzul6134j4qvhI
a1jstLZykYl8pgQOrVRkXbutOyhbnx2rij7Pzkizc6Bo.+CEOb772rzvXKRO
ZmG6yYLhIPGcpAsY1nCqv8qKJwxFLXvbbZeN5qYSJpkEGX5l7LbGaccI401J
i2q7w7UljIqj.+Bm6tUe3sa1dmEIYbYt4Ob9EUyVd9dOlDNS9.p7HErrs0RZ
wzJ7mQiwJgq0qSPnX.B.i+fQ+UDF8J5x5lOMAaxJTmXEslMOAWw7DqCbdhjz
jXoAFnrIH0FffkGjfRZNo9wV1yUs+rKZ8FnpJ.1SC1fxgYAbNxsTY7FdsINW
35Ts4Wp0DL05F7ps2Rs1boZWhKagprbT1gSfKXej9ftUt4qp0DV8AYsjX5ot
3xnDhdwvT7vo5EMMR+Ocs+oqkEJi0ENikPXAAwsmvRpjvxZSYCsxci8EvD97
1us.s+YUyKJwBsxYGkao1r8EvEoi5frGoF2rBSkHwbIUYnyZFTkrxrRid1vU
2sq6mwhOLLKiJr2bJa9H+IxkH1k9LkY.HIFAxfXYhwF3BnDp1PPMD1Iq6MSN
1n1C4jOXO8vMgjgKjT5Uvs.lIulLHOEA2NTlSGPTlESdvecl7WZ6YerV6Lf8
0R0I0DUSi9ScRiKM0IMpYxA4ws5jpYOMh0LQIVgRr0guTW+pBkWUn7pBkWUn
7pBkWUn7pBkWUn7pBkIJTpe3fNeTpPYLLy9SgRsSgBkZGN66bQgRWOTSXbXC
yIDnHQi40FvFpefREbN0AQSxSglA7xWZOuSOiHhjEOlOo1wuTBvF5BHPr9C4
C72RPisveCDQz8MahNkMzA4S2GAE+Fdxg9p.sNt921mD5e.8e+w2+NDOuNAm
3gvn.HT2EmeS3ivqkNmvlES8.aY9Cr3hGByt.3qr.rZzkN6oTYE6OrCRdl01
y4Ig2Q+rfJJECHK1Q8CVxCCP0CBH9QBRaiCb17y3XVcgeFc3BiYGzBlvdDtb
pSIQV6gBQNeT2mCerjamEvgjGnEHiI3oXE5+a0Djw3FfLtsF7Mk36BDVY0a6
FhI20albvHs2EATB7oGNGK+29UjthBERtdC.1YMkiqSmGHml5MCXmZE.6HGM
H47Q6L4u01yA4M2Y.WDNoeZMf4oZxvgqYxTjRsGTmBWMuS4RFwMebdEx8UH2
WgbeEx8EIj6dx12GHjZ3Ht.t2THvMErZstAqdPLodM3wKTo9xAHW18yB2P1S
zbH4u1TU2TScpk5EFjbJYYlbrHsGQGPhOOfy0Dr3pS4GaLd372Cv4vVWgycE
N2U3bWgycEN2U3bGe3b5WgycENm.NG15vcZ9QBNm7sg1im6c9H.ADLmeGjm6
DYVzWSEU5FhtydKjRpxkS9b8P+x69w2muMW654rveGmrq1f.nfvfHppXxO28
XNfwCwjeJ0fQ7zie9UP7kPZn0rURBRAMyCNb2wFGMaY+JtcrwFGtVOu5bvF1
QMJtRDp7HlOSTObUdldwDVICQf4xqrUHF9CDF8B9984SHfGE8iNOhl2FGlzz
sQu8V5N18Mp7ekBul2Ifrebbh6KDsDxD0z47hjD69GQLYdB5Oh1+eu0FxUqb
.XP5jLD9GHGWVVezF8467WG2FiQrBy0XDf4CRij.RuwYZM6Pj6RZuvckKcaN
pN.bfwo5cuvk1LzlXLZ8Ky1StgkBmCbX4tVO+8emwotdzmigKRu7b+HHOyR6
jtzAAz6o8XVebxSX01yWnQFTsC1tKZHzOf0v.LIJneALzGcADc41OZXjpd.g
HhPDUk5wT1yjEAwAoICFqppQrzMGlvnVnNQObnNiNKfI0jimmJGYD1xnufIY
dElzUXRWgIcElzUXRWgIcElzEKLIyC2pqmGvjl2BXR3dyZR5WgI0hEzf3umv
fjZXVN3JDoqPjtBQ5oGDI9H+3HO8J7nlAOptChu5iC3QKcVa+PyhwPADIcRe
4hTkgIifkgawFeyj+5Zuc+Xs1YRbgp1DdlN2s1ZV8UbgpdMtPuFWnWiKzqwE
503B8Zbgd7iKT0qwE503BMNtPUObH3mOGyGRSfywy9UZDk9BNG4Jbtqv4tBm
6Jbtqv4tBm63CmibEN2U3bwv4pKO7n8XANWyb4LVkYaNrAtub4L9pKmu5x4q
tb9pKmu5x4qtb9pKmu3b4L9vAHcN.O56ZzAWHFdDQTdzmneftaV87n9SIV12
54.e2LoCh16C6u67vfmesQmxW9wxVjWiz5ALxZOVL3Yui+kefxqPY7AtbGob
lVtiZbU44pQnuZD5qFg9pQnuZD5SSYypIEXpNsI24qEm+Zclb9q0ay4CotVo
ZpoMcJEJ9kmMmEIMGsdIUgdVTfecu8qMIFBT30xWBOUghO3v3cPKLysc9BkK
K1uNr0SJ.B3Loin1OmfwLNGx+UMVGKQnB2CJZacry7U8P9g6rHwW8sHLwbRy
WCawSVYG9RXyG2lF4amIcPz9Use6Yvj.6kgAeEoiHJrTWGRWuEB0MXw4OVYZ
ylRnW9ThZRecjFtHdbyNkFrA8Lou21yEYM14vFx1et4heIpsJl9pXwrduw4Z
tfXXnNS5KuCacBjsSO2aSj+pFy8DVoVU8f4dZWL9vei6R26iUEsOMj4Oeyat
A8N+HGz6JynQOApR6xcTZQ+2uCLYReyB9HUo54TZHZUfCUJf2hGd7Uy1aDUt
wYunvE1q68Y5ej1n1nvEqSYNLFe+zNiGerc+eQCOZucXn0eZ9lqz5rOefyp9
lV+KNqbBnRMfHkgJFGLiKOJX.q39bPvxy2KYA4Fht08dGuKWNQcd+YuEcMl1
jUGb7D85dttKWtVvt9LKdl.V0J2fvHDSzGZoysANN.yZCjFyWdkaQ4VJMfaA
S26a10eKYwSjOhBAftphtL94b9Wj+UdCZjlVSXNP.EOX7lW7+6Oe4nKzvKsg
atvjcDq5We5FwOxDJwboySWmp2XG4txccD2Ue8IO3uwZUzNO9NBHl1fgid5E
CCED9fORg35dcvqao5gpwc2bP53lOTDJxdfIRxFo35QJ9aOLdRsaib.QUqDa
ek0yyRefrlwS5izhPp0PkXh00alqmUF.WOmYqohNeduHS7jV6wBf3LSp49Zu
8RYD5Su8RYUxnleF1U4IjbyC2d20bD10p0hoiS82FXqa1.clz2b6Ydbp1om6
AJF350X6cKhJ2C1Uw3iLuiOLmI8U2dlmfnUA2KSWhUxtJrOQVlJihCOW0r1P
+cAKhIBhPV.UjMrjtYgqmcDUpZpm0f+rcZRWW6eVsn+gOEcPyVzAkSrShVN7
YaGGRZgU0yUNp8biVzyg4O3i7TBC96rYT1omf4r5sj.dr6eZsn+oeB5epsYo
C9DzAIsQrN4TvhIsQvNw7TzCMa4Vi3yEI6stmSNWjrSLZYOW6XOonMhNImB7
Hj1H7jbJjdRZi3SB4DrAN6k1XA7ZmBZnzUskPBwmnNnZSofVmnNXiAoodh5f
MdNH4DzAwsBjwIXYLtC5lcb6fFsUR3QuG1l86fDk9wuGha4rvidGToMjvSAR
WbKDEZdNYHf1v50NyIrpc21PYMVnvmgyle6B+0bOl76HkIJpXUSht1TE7TCE
K5KaBN4eZZoohgKQvXSCMSEcKKhpt5XvGEYa9LM5TxTMLYblOopCeTx2zYsC
bj7xz.p5l5ZJlDCCCrgE66qi00MzmNEqofMLYWxx.aZYXZQL0v5ZlRZa6EKJ
zzZpJpZXrkFVcJQm0zJFDUEcUUL8WXCdSSHJ5JVVXUKcKIsLbJh25jokI5Vp
pVJFpS00UULECZMBsmaoPTsT03iC7T7TsoVZZpFJZRZ542txc8ZVSOKwAd72
TYO1fvRK7BvC9afjPKMTE7cEEMcMV6onZYN0rllw16Vte4IlfegJ4o1F3CGs
awRMJeZZos2tH+aCrW5JN0nJobN290aIeZu3hDg.4brxdgC03PkbY2jzNGRl
iTlxNpNVJVkmYSJMqlTl6uJOYlH8T.jRtW8Q+u7H+OsnyhIsjrheqJHoZ0Y3
Nme2JO7QpLzQpH4jTYHiTd3hTYnhTV7lWUhHIqmjkk.RphBSJkBWQRGoxXip
Onz3gmRWYDgTdBEIG0VZhDoaz65RdHO1nqEiqrbzthIFjtQ3FljAxiTxsz0o
kkrOpMQeTYR9HMxzLr1RBCsrb2xSnGUmLONnMApNIdHO9zJIFoxCEu7j1Q0I
riJSVG0jnNJMTopOAcTSx4HM+r9Hi5e8LoRDyPdkkHNJ9Vjm.Nx.eo7Pvn17
twQ.QGtFDcZZ8ChN7SODc3qH5thn6JhtqH5thn6oKhN7UDcWBH5vUfnizMDc
IbnhgP6dPdxrteJndEiNsBNzoLWNjyw6UB0rs8hhN2rrdAY.6EZjF1KvEevh
913D00rJuqoLHcMRgfOnYAeY+2ITNwcBMbK5D3ghRzzEz4CFodsWLsochoCH
+vpgcBU0i8Zll1yN5xYZZGCWdGiLLqsLanTFMigbEdS2mJePV0u8Bilta4.t
BWqoThgD2fVCmTfwCHkPsojBxPN0ThPrRj1oMj8hFu6yPNsPkGL001ILF39f
ZC5C5CbefzDlg0.2IZxZz7mKhduSzXPQCFH0lhJZH27fzTRg1PxOH3y.RAtw
7CkgrWzTLWSG5NQi1IcP6EMEXCdHmaVLLga3Qzse6EMFf0PtCBVsEPMGrNQS
UtmLnRKZpHK7fJsPoEBNki3cucDGtnqsaQV6PEUsCSD0NPQSaChj1AMJZG1H
nsGhd15ib1lE0rMJhYis2O2M22jJRCDqRGcy6iuJ3DkreIt6cp6akWlPoNSZ
umx26umQQ12lwGExjxzfVjTUKlebAds.7qxB6E24jensfRJWsOaoF2KR44Nw
SD+FG4F9VucY8iHUvXPnC2sno6LI9eYzs1tdU8RX2uauhrCVXpQn88ocO5nP
O6sgBeukdrSmP4jPr+ISsOF+bw8ZgWtRSwGsw0yOH0MRlFuOavKZlzIDqQ9A
t2xIAL9Qha1jm+rFEtadxM9MJWeEcSmj7S5HmMy4NLDm774Fh6owYn7olkkj
myA4fOKu+xFMaV31PYeusyDt3H8VfOqnC2D4InL9nc+Cl4Pub8xWu7i3Kmfa
K0xmbhUkstSWY+A8HyBusANgNQBeTuXkwpoZ5ye8RKMGJrVG6Wy9mqTvVSsV
oNUyznfz1LRfJHQXwtf.5FmyRKyXubV5cBbykymRgwsNYlkH1rJImYDdtyKx
ktMb5bwbZYmMhbjNbHi6pfP2z2Hs.1zWOQzZ5dWAoq4hIgrxXyGQhxjzVHjV
xIuMeaHQpa1ogEh9IIhey+MxmMKudyq275MO12L8ICNqLg7ahTpfkzakHQxR
W2PIeDTAx9yUZExD81UHCm+kSdhYDEBVg9iYjIar+BHesvCu0N5N1C+0u8M9
K1AlZH7a+Y6ufr913McBK9k7YBQeclfFOV7M7.Bpfo9TcmoTc8WNcoyTGqo3
UDpZvpyUMLssHlijdBLiYU4U5.T3XIHg1YQjjPXKVeCV.X5D4DLiRIxEBmi1
sq0Lnbu+jWbEcA1TFeI56suu45cuana9HLM0Cr1261DNYFkYR+TTBdPT8OV7
lvp4nrOK9mBSfkML5Xc6Bli6e8rxiukDu6UQ1EPXANwqcbmdOjZdOp8z6AWy
6AS5oWjRcuHbO7hLZvKJsC467KRuAuHsd38PLNRunrAiY0A.zg8hZvj6o8z6
o1oB8z6A2f2S1o1bYQ1a2lROF1qXzF6+I2xtVieVrxNIErxQANfP0T58LxNX
wctQzML1EvEQ9ECdl0dzF+kNAd6bEANFSJ+9.0NbqMebvNhXO6e+r+OTyJho
H
-----------end_max5_patcher-----------
</code></pre>
We're going to use the value from [peakamp~]
to drive our LEDs. We'll write a quick python script on the Raspberry Pi to use alongside the rnbo runner that's running the sequencer patcher.
ssh in, or connect up a keyboard and monitor. We'll use a library that should already be on your RPi image called gpiozero
and another for communicating with the runner via OSC. You can use any OSC library you like, this example will use pyliblo3
. We'll also need the rpi_ws281x
package to control our NeoPixels (ws2812 LEDs).
To install pyliblo3
run the following three commands from the terminal on your RPi. In order to use the PWM on the RPi we need sudo
privileges, so our packages need to be accessible. You can use a venv
if you'd prefer.
$ sudo apt install liblo-dev
$ sudo pip install pyliblo3
$ sudo pip install rpi_ws281x
Now create a file called RNBOPi_NeoPixels.py
by using nano
or any other text editor you prefer.
$ nano RNBOPi_NeoPixels.py
Paste in the following script, then save the file.
from rpi_ws281x import PixelStrip, Color
import liblo as OSC
import time
import sys
# set up OSC client - send all messages to port 1234 on the local machine (rnbo runner)
try:
target = OSC.Address(1234)
except OSC.AddressError as err:
print(err)
sys.exit()
# set up OSC server - listening on port 4321
try:
server = OSC.Server(4321)
except OSC.ServerError as err:
print(err)
def db_callback(path, args):
dB = args[0]
print("dB:", dB)
peak_meter(strip, dB)
# register callback methods for server route
server.add_method("/rnbo/inst/0/messages/out/dB", 'f', db_callback)
# Set up RNBO OSC listener
OSC.send(target, "/rnbo/listeners/add", f"127.0.0.1:4321")
# LED strip configuration:
LED_COUNT = 8 # Number of LED pixels.
LED_PIN = 18 # GPIO pin connected to the pixels (18 uses PWM!).
# LED_PIN = 10 # GPIO pin connected to the pixels (10 uses SPI /dev/spidev0.0).
LED_FREQ_HZ = 800000 # LED signal frequency in hertz (usually 800khz)
LED_DMA = 10 # DMA channel to use for generating signal (try 10)
LED_BRIGHTNESS = 100 # Set to 0 for darkest and 255 for brightest
LED_INVERT = False # True to invert the signal (when using NPN transistor level shift)
LED_CHANNEL = 0 # set to '1' for GPIOs 13, 19, 41, 45 or 53
def clamp(n, low, high):
return max(low, min(n, high))
def peak_meter(strip, dB):
# scale dB level to the number of LEDs in the strip
thresh = -48
peak = (1 - (dB / thresh)) * strip.numPixels() // 1
peak = clamp(peak, 0, strip.numPixels())
for i in range(strip.numPixels()):
p = (i + 1 <= peak) * LED_BRIGHTNESS
r = int((i / strip.numPixels()) * p)
g = clamp((p - r), 0, LED_BRIGHTNESS)
color = Color(r, g, 0)
strip.setPixelColor(i, color)
strip.show()
def colorWipe(strip, color, wait_ms=50):
"""Wipe color across display a pixel at a time."""
for i in range(strip.numPixels()):
strip.setPixelColor(i, color)
strip.show()
time.sleep(wait_ms / 1000.0)
# Main program logic
if __name__ == '__main__':
# Create NeoPixel object with appropriate configuration.
strip = PixelStrip(LED_COUNT, LED_PIN, LED_FREQ_HZ, LED_DMA, LED_INVERT, LED_BRIGHTNESS, LED_CHANNEL)
# Intialize the library (must be called once before other functions).
strip.begin()
print('Starting transport: Press Ctrl-C to quit.')
OSC.send(target, "/rnbo/jack/transport/rolling", 1)
try:
while True:
server.recv(100)
except KeyboardInterrupt:
OSC.send(target, "/rnbo/jack/transport/rolling", 0)
colorWipe(strip, Color(0, 0, 0), 10)
Now sudo poweroff
the RPi, and disconnect the power. Let's create our circuit:
To run the script (PWM access requires sudo
privileges)
$ sudo python RNBOPi_NeoPixels.py
Going further with more LEDs
You can drive many more LEDs using the RPi - although most folks use a different board like the ESP32 etc to drive larger amounts of strips - but there are a few considerations with power supply and safety you will need to consider before going forward. In a future tutorial I'll cover how to scale this up and incorporate other boards like the ESP32 into your RNBO project.