Oops, I thought I got all abstractions.
This bit has a playhead moving (with interpolation), and also has dimmer position/window boundaries set up. I use it for mlr-ish definition of areas to loop.
I do plan on refactoring everything to use stretta’s jitter interpolation from BEAP (some chat about it here).
Also attaching all of the monome UI stuff from TPV2 as it currently stands.
<pre><code>
----------begin_max5_patcher----------
4386.3oc6ck0qiaaE9467qPvOMA0QgqhjEH.oaHuz7RaAJJRKtP1VWOJitRF
RxyVP9uWtHIKYqEZqkXGjIH9ZSscNe7imygjGR8yu4oUaR9TP1Jm+nyO57zS
+7ad5IcQpBdp32Os5U+OsMxOSeZqhC9XxleZ0ZygxC9Ttt3CNgw4AoGRh7yC
9GIGi2UdJIGyiBxy+7g.yiY0Jm+WwgN3mu8cgw6eNMXat4nPFwEr1gfftLgf
ioqcfPjpHj7ypqLbm9oJkjuFR.kOp3iuFFKeXZIEWTXV9mizO5U0NMiPoOOX
cgIHsP0Kz8mV8RXTvGBRyBShqc1Osx+vgZE+TsKQAX+Th9FwVWUTXroHbUQo
AeHr75IUk5mJgjbIdbL0H0eh6s5zsIYWPZ7wPsnXJ7WdSoHcBEodXEjg8np+
v.leAomPPY079njsuOPCjfxBSNDDGFeHMHKHN2OuP5pN7tfW7OFk+7KIw4Yg
eQKf5ZmVN9K9aC57hi8e0nc+ozP+nR8a09zvcIwJgnAVqJt7wIoHZkpoxnOi
X+CsbwRNhDW53fYRk7X1F+TUUwFCOAUdv7jjnlGp55hBdIu3vGBiiOCEySNz
8ASC2+tdt1MIxC9Ze2a8Qxd9Xr4nOKaZl+bl+GZh149QQEsUad6+jeb3qxFo
4glp.Dn5fAw9RE8cYaSShhZnuli7gVNxNIKdavGC2k+N8CpNYPd5gGJIQqpp
k2EtOHKuYY496yZVxEsakEcbSQqzmyCd8fxTSySng0r5MIqaUqQ4mYcaaxqu
JY9UM3pah6e4+9.oUN4oHMY472+a+UmO3GcLvwOdmSPXtTpbRUF9bByc13mE
ryII146LmixFRzZmjz5lIc1Dj+wff3S2qL25O4nv3fsx6XdC6Fsa2jv.Zij5
V5HfwHJqVSjysZBq+jZX3DV6.WVIboATP4A9k27lxurdFv+SHmjQ471j3uI4
kW9pU8iKXnPiHbsMCHy.OciKhGNXwPvxSJHeuUxwhSx+pNIRn9ALnmmFiftR
WubsmWLta7x6AjFcdK3aEpPfSHkwSaeHE4gCozDJkYrFVsj+9X9gi42JpwMl
nHPWLihXp.7.7g.OzcI30HV3lX2dk88FR8kwAutVrvcaW2X3h5hXdBFWxzfm
GM7E11wcabGckvEZYfqsuyOdevfvUnhoZ9yP.G2X2G.bwDDQHV6PACCbfIim
gWFfKsVWsFn6V8iTPJykCDLrhhgFDofrIihAWFjJrWTxdJEC4xHDDPxnvHko
+9voFnT2c7Y7X3YOl5cNaBgWs.NZbDYBqvDqJFT9Y2sJ6NHCvHvoRWe1EaYn
zU3ml5F1Cim1ZmyZrjs.XYeAXUgiv6KbDhuRRIe1ARKhruBMmR+zFQakMAlf
HHWdQXb1.ZSX2q5.zrOn0dYhmFZIUrscLlBZXQc71A0rjioaKIfEdCbZBN6B
xxCiqFnserV.bNvFm41jHy.H9i5wXQ9AE.EdP44oceqPcq3.WqPqY51I1pfB
5VrgMEavbK11h1Wdd+Jh0dWEEAL.VCpCy0NyWC2cHQ17nfWiD59vBATWOLmv
UAK60rjYSggVqvhAUXXSEdFkXn0MG5mYsLRLXZv31j3tIUBtN3XoaUY+64bV
Im5TIyk9Bs2NKXBpgJJrbdXVoFJ9cOal1gm8yySC2bL23Bo9DKcUCO99njM9
QEC9cUeH5arxOMf5u4j7p+zfwiXt9xqFXi9i+usvFXxX+Y.OlhO.ITWY2NwL
gJPhdmiOLs043CZ6b7MkJO71Udh3lTdx8hxmEDIM884fLYil3jNwgM9w6UiS
SW+0dPBHbQLHkSV6vo8CR3VAIpkfDc5.oCNQgY4+f+6CRG2bfyjJOkKfx3N7
D8p7.xuOE3mOE3lQ0xLSXLt1LNgB+8Y.+2mA7eeFvuwIDR1fOPM+1MFrr9mB
sAl1ZnvLuYPfqfvAToyPFav4t9waRZeMHcefyWBRSxz4KPQVAH8SbqHWwL8q
RzGo6QFR5iXXfi8vAbYA4WxvZcd9M8.jCbYLAB6stvCPeS1Oj9vgG6ChCR04
NhLVprS4YhhJ4DEDuWZD5FYTXSZhAgxNtAnPDqb9+6kRge3fvVGV51FgSrg.
o+rHqH.ObYTyDLz3DfQ4I1Mz3hYefw6ehEvKDO56KaJ5aZ8k7hS96j+5UU6M
0uxxCNjo9hLNfvTY6zJ4dsyKoxX.cN3uSMV0eLL+csdsZGFqcL9cqehYxZnn
f17D2cFjQ6uVlRYE8wPMveLSliR5tZl+34D1+Sgud70ppCarYNTJ.0.z.reK
ltTWPwjztQj+OLwIDiw9sWVSoC0qfbc4jN05LOpCcAy7bIEw.CAC5t4gKinx
c13D0qinKFdnNQrhP6XXWJEiIUS9XeohgX57OuPIE0Whb9ojv3wmDYBSyLYW
FJIXhAyvGA3QKGxjv09zjiGlJ7BgXtddbtZvGo3gvKN8QCuxc.iNUdLHETZS
urWWWNV1WfTSmMc3CYCQjL3JZQm1IClMmbziGwJT9eeIZaTfe5fTrSo0Y4UL
X9igzVu3ZlFmMD.x7tKSpyWCxx7alyqUHHDMtdrUfPMZWJFLWEoOZoz4zYwu
.vtNS9L7iVKyieIzpHvJ+qUYyYAWSEEawvFQFLXL1zYT6NKeLKiM0xAKABfK
bxs1QW3tWyKyxVlVimnYGOsbbD90K2LKh2mAqh22FfCO64lY+cMd4yGSgsIe
l.XQNBZYdQA8zIFEFHsS..L.xzc+FEMSYFkv1TWSqu2I4epv5rWSwfutThbd
DXay6T5ffr0IaGAR0i.ojag4xZEtI0rA0KZlTWUGesReUcjwtpmZLq4RnI1J
zEZ27HEnIw9yxBcptSYkQDNcvrA2Z9MxyvugBWLlPHJilxnLaTTiqOIcmIQl
fyGHftB9yT34.IL8gS1VuBDLdNNUzhCB1vDTcT5lYBUJA3W2ZRFdVqIQXnM0
jyHHXkOKzcQR3yr0miEUZKh7huFejvq1PeOLsBZkGxEBwdpEPNDwaVzboz15
cqEmw2dKKi9Bk9K3BDjCqrQdpnE0FI5ZhF7VAgY17ftS01oEd2GKRGf08rCN
Uq9qe6tLPZNa2016AzYEtIMFcBewINHPkjJu8kjTG4QxC25G47hujZVtlUaM
QAZeNw04eBEAbksXAPsYK74IKPywu.LpUIA39X8wHj9+IzqcIhP8tWVgHM12
SFXv3aS+8tXoOP5WyaegAgrTyQSml+kHGYChaWyMKjeJh5xJX73dWzGTz8hl
OlkDE2ieK7c38BeeaT3Ao+CL51VpOTyfAVWyo8tNmHhwsRetezbHxE0xZga.
0mcun9pkBmzQ2G8S24T3Hz50Cm8sHps92jwp2GxfI3QAM3ImYTkc8WIyvCCb
Es..8yLvDz8B03X7A+suWkDD8ZVb8vVGazHoFTvntHAFAw8fGH9nrQNg9GRk
21fhLZtb1GqOijIogUq0tdceV++sE1XXWLmxDdxHID85TAWs6e08N0zMt3Rq
caOaQA15t0zDsNTMcSvOcely2YPeYiRuxsjTHx46ZVO.c9tZUEkV2rLhFq17
IFpxByTdCGrdBdk0SVy4m25ot5G0kyHeqcIha1Xr061jWrzlZKIyWtNB0klU
tDI143a5Hnih+X5vndsL7AeYk1lnfhoOesi715rQu.QiCxxV6rKTg.R53Z85
lqAg08+F+eiKX1e6Eqch2Fk7Qm2Bb9ZYHJeky6j2xpeIuJCl+s01FeUGDRUG
qYqhu0I+XpzHkdKA6LKWuE7MwIx6I7a9bPl5Rq294aqhOP1e3F8U9skG3qKK
u8NHy5gMXROISCFbQJ3.5fPffKNinQdJzcG8nLjKjwfHRa4nPCc.ONcnxL0o
zQ3x7P3TNHbK5b8rc4Ji4wz4uhZy9wg1CyAbkK0+K2mwZX+YT3PWVCZAuaiY
CJXFrJlQw9QYGHBje2XuKaqejdGa6LiQ8otB8R8.JTCyHACvptCA6UeW9A5p
Ytp1RdpdkzcbQ5bIiiES.Ljns7SsQG9u1PyPWY6g4KLr+vHFcDXwr2vQtDDh
vossmi1fa7vBS5gOa+XG9r5H0kYgZaKewoFoPyNRMlgaCILtXp2vq+MeHwLE
q87ynLaVQPuoYXYJQND2kygdHjdm.t22KMWIxY8H0L+Hm1MFvU10M0H7Mpcw
n5Ts92BmnWKf4c2P072H6asam3zKQI94VAV0XWjdGtOzCayR05.Us9fdomgG
q95O3zeLvnECaV4dhL0U3I4dpETKu+4RYlPS5rile8jv6p61zC1W.FD9CaDF
Msp0ieAK3VJ9TY35hdcCP7dXspICIqw6kgaNpr5uM275EsvOrQkIAqrnvspw
UcrvUcWld85E.hdjwqzjSKA4aGrp4xreSWPf3WOzRKPMW6JFv67Tap.BuLWw
qmmRctBHZr1Crdy29hZTaEJpmEREkNfPwUePZNQAmuYBK6kR4bBRTwciDXJW
O6Nz5kLV8oQJq2k9fVXPlZAHiv8JTsjzc2t7PrgJR.Wi.0dsNjapdUqKJFPF
jx5KKZrJCZ7f6zWiCWnlUbFaQZVAVJFCFWPOvWxXvSDiwBcg2kl.5XQnMJoA
MfzPFRbZO+VGkLgsQlfKqLQFjAd03T6rPTwR7DJbEHDE5olNGyZxspnIPeFx
QEbYq1IBKZYn5NTsJB6xZfyfWJy717T1oUNFvIJUf54xEx+QpWd0MnYR9OuZ
HD0Ey9p0PokWWDQ.nJsxLy+mJ5RkCs.JmZmFehzNBE6h.bcRLAzMXpJ4RcCL
NcylnmQc2boQKkIxxMgYayE7HgaUuuKShLF4TaFIiBCj+CWu7wpUV0ifdMLA
q+wHEGcVQNbD8dCDJ0zUqaDnAAH3BJP1DArNlexUEAb6jQOBnJ6VwddRBnGj
pW9idUjwSkO013rTYACXiarJK1rlF5SOgKfdZh3dpUTBzykhoRKNpZU8Udpn
KUTxhnnMhRdhpPUIjGyipd0xh8L4rSUQSsCLK0SvbnnDOoWYOJRsOxfJ5eUU
QWpn3wonMe8Z0ghhwfqw.YGiojvqxunG0UPPB0lwRc2kUEOVirZ4cn9Dctug
Y0rOFXCNSPKrDMDEWmV6KpDMTuq0u4gVJIBwsnViHVXAZvnXYKm.Y6HmAWjw
JEgrMH+kIdXqi0aA6HDTrXiNnYPXlyQG7b4rOG0C1h3hMymQHV1zMHvhMrkP
qlCAwxIOXp0jv9huhL7XtyDmVuKDIgjv3d.lZWA1yvDKKZzpDYwTIpXgTIrU
NjoKl6FiDgu6jnAq1wjEVhf2SRjMtAW347674tumAWdQkJhkS2E7pbl0678R
g3S69C71KAo1bSKxXM0V.WihFqRacpV.624TqAsYxDjyd2YpDkydmYd16KyK
eWY186IyyeGYp2SZLYwxYYexojf43tvj+o9cA4y+PP7QShtT9FqrIfsY+KgQ
QUZb8cylx72o.OJ2EZZfNHAAB0SNMFhYHO82jegRqu0WYtFX4EQnDcuykeyC
wTuwOjeiivTrFqO6xPmdVJVm9I.Db.w7sK24rV4qdeJoGfQVsWfiGRSNjjV8
R.0EKpN+i4I6S82EVrHp.M1dcVWv2RkG87jGZ0qR.Mr7ZpyOqpLdeVTnrB7e
qpc6qhn0ffOmzMRYwj9V+4niAkKtj1kE+sakOfFUzXHyivTPtWUsmPUDbFDv
zjOFe0R3I4hJ4eDgldLSR3e4y9Wu.BPBJQyeYLLFoASNBBUSZ1TKfeeZPvMH
gZzCq9m5aPOtmRLmZg6+DDEk7wqV53HJTCZLtdufSJuTIhRa5Fpdd68i5L2i
J..9To.GecSP52mDs6pEeEUDnq9oBDjp0D3kcJbjBXpwbiRBszZirkCwyCKJ
niLlgXJAVAtIztY+bqPxq4Wdy+GfRAYOJ
-----------end_max5_patcher-----------
</code></pre>
monomeControl.zip (59.3 KB)