Musical use of descriptors discussion

I used descriptors last year to control real-time synthesis: oscillators and such. The piece used silent brass mutes on trombones, so basically the trombones were used as controllers for synthesis arrays. You could not hear their acoustic sound.

I found that pitch, amplitude, onset, and centroids were the things that worked. Because you couldn’t hear the trombone, I really didn’t have to worry about things like matching pitch or sounds. Centroids and pitches were basically used like sliders that I could map to any range, and I just manipulated and clipped the ranges until the sound and control I wanted emerged.

I found that the best things happened when: multiple descriptors were used concurrently and a single descriptor mapped to multiple possibly unrelated variables - for instance, in one case, i used the centroid as the control of the index of modulation of an FM patch and also to control the envelop of the attack and the pitch of a percussive oscillator sweep. Centroid is a weirdly good controller of attack, as it will change drastically over the course of the attack envelop (see Hans’s AttackLoudness above).

Sam

Thanks for this set of ideas! Bizarrely, centroid to attack makes sense to my mixing ears, but I would need to hear in context indeed. Nice one!

This is only semi-related as I have nothing concrete to add, but something I’ve been wanting to figure out is a way to get meaningful descriptor data out of onset/transient-based music, where there is little to no sustain after the initial attack.

I spent a bit of time brainstorming/patching with Alex to get something that reliably spat out loudness/centroid/sfm (and perhaps pitch even) for a given drum attack. Obviously there are a lot of problems and compromises there, with the biggest concern for me being latency.

The dream, in this context, would be to be able to have some sense of a couple descriptors (loudness/centroid specifically, but sfm/pitch would be nice) in the amount of time it takes for normal-ish onset detection (<10ms).

This AttackLoudness idea is great, for offline (or delayed realtime) use. I started building something, but never finished it, that kept track of some ‘gestural’ data for each attack. Not useful for immediate/onset use, but my thinking was that it could be useful to create some kind of descriptor gesture/vectors which could be used elsewhere in the patch. (My exact use case for this was going to be to create “long” sounds concatenated together from a pool of samples based on the stretched micro gestural information from a short attack).

@rodrigo.constanzo Can you link the patch? lets get the patching/brainstorm going again!

@spluta At times the duration and period parameters of the granulator hover around values that cause the grain to be significantly distorted as you put it. Also, when the duration is lower than the period you lose the continuity of the sound and it can disrupt that timbral fidelity.

In regards to your silent trombone piece, I like the use of the centroid as a kind of dirty envelope follower!

Totally. Would love some thoughts on it and further brainstorming!

So here’s the main audio file I tested with:
http://rodrigoconstanzo.com/temp/preparedSnare.zip

It’s a stereo file with the L channel being the audio recorded directly out of a Sensory Percussion drum trigger (you put a metal dimple on the drum and it has a hall sensor pick up the “audio”), and the R channel being a DPA 4060 recorded at the same time.

The software for the Sensory Percussion sensor does some cool machine learning stuff and is crazy fast, so I’m trying to replicate some of what it does, but without being inside their sandboxed “app” (or using the 7-bit MIDI output from it).

Here is the patch:


----------begin_max5_patcher----------
15717.3oc68strihjjl+tpmBryt+HqYNoJh6AiYyZSWcaV0+X5cZaqY1wFqp
wRiiD5bnSDnFP4kpsIs80Xe81mjMt.HPD.ARBP4oTZcmoJg.73y8vC28vC2+
ae627vSIeJH6Am+Ame14a9l+129Mei5qjew2T7e+MOry+Sqi7yT+rGVmraWP
b9COpuVdvmxUe+yAY4GRCb9PXvGcBicdIHMn7GEEFGrN4Pr5WBK9x8oAYhGj
edXR76L9Kd5vSOEEH+FP483mu9kv3meWZv5bMUCHtqbgtLNDybYtH.j7nCl6
txyyiyXdPOJmI9JOvJ2GcPrUtN+mEOs3C6RNjGEjqFYt0FQqShRRKd9xays5
u.0t+vMpQdxS+k2B8d33CMLt7YBje2+029sx+5wKDf8i8i97uJF7NBj6CgIG
xbft6xbR153eXSXhy1zjcNqCSWevOx4oCa2Fj1OCnMXRfT4fj.fq.TJhC3Hh
GRBeJXVfenAwu5nBe5QkMaB1HnNMPD4mGDu9yJgOme3e6e0I+kvLmvc6SS9f
3mI9qT+nHG+0qOj5K9c9wabDhgGhDDlInB0MTgYdqj.CxCsB2TTCvTBMX1nv
J5jiUY4oA96jRPVOI0pofDJWNdoHxJNB4JlKplDBbgS5TNvjCX69ryNeALkD
mEj6rIHWLjEZqb7idNIML+kcqjyEyy+ryV+r7QOYCgU3CPAS.Lb7Sv.SOF7+
JvOJObWfiXlTdxyo96D5VBi13bX+C8nU1EvVQoLOWFCf4XkNDgFE0Hkvj+Cz
cLizoW+5uSqDMLJHywOM3e3Wh+kXv247Swh+CgRh0IoRMMeTv1c7cDqbkkj9
Ym8AB0sYYRghMoG14jmF97yAoNuYm+ywA4gqK9kBQHgtn.mL0SKLOKHZ628K
wvtd9+g+7uyA6Rccdiet9F8Er.EevOy4+FPbunuy4Wd3GROj8RP1u7f7q8EO
lmOD4m5rOILNWpPLMPrJfPkn4Y4jtYfPb6UUAjxEGD+CCOF120S41SJh83Ra
RUYeHLK7ovnv7OWWSUx1shos5gyaUS0da8IWQIqeevlMo9OmsNMIJpNkuNJb
86yeIM4vyuT+6Ch8EpCeo8MnuvGZegmddWxlfFeijQmV+aLpaPq5CozEBAdx
+g60IjWNl8SetvZtG9mjhxO7n.wzxHq7C2J+O+mhRRDScE2h3yeHIR7wZOUg
XlBl2DrKISHmrYk.8EDXIbqem4edePwqIK7YggIOXRCMyHS28LX5wAeT7.aM
kcuidIs+2BYfGFdoZJFsBUaAJtRcDDNFAYhYMtMXkZt62TMV9lGjrBgsGR8D
03VB1098095uo1sHAf+hdAQ9iUeUXbRcIGwWIMEr79O9s9oBLPtZkvhbEo+I
J9giOFgDYZ7gvpofJVQAIo.coXP1d+05aVxaJu7QTUunOApW8hRUBrX42Vhl
Roe8rr5T2CI6ChCiqa9eiKuIXquvfr2sMINOK7W0FeHeIFt91BRz3Eqjk+co
gBIzxexyogaRhkDQCVg7qKec+bgpN4eebvn9Ew96MbyBICAtzwEyDCxCYO4m
pTSoslBVdw7jjnlWp59hB1lWb48gwwmfh4I669hhUgdom68oDwE202yVckr2
cHVe02IDJxeWl+GZh14BioKlZ17w+I+3vcBawkKXoFttUWrkJTPyq7ACWYiP
HecvGC2jq0FWWXP7yC2WJD8PEWdSnzgzleWtuV43wuIK+yZPu1WcnbEl2kGr
auzihl+fFdLWeFackXM999TlcpBssBFS8KYPcFWr1fb0X85vX7oJw5d4AyZv
enwMV25RN9glOxZKceJMdToWywdmJ+5RA3I2tIEgcnLraEhCqTrKEiMTNZgB
xSTRRTKbCbULIgcvJdEysIyxrdRKzUZi9xA0YZodydzcZm9yAzgNndzA0kNf
9zg0oNndUKzsZi90wnisG8rCpqse8s8qyse8t8p6sK8ul0A2gdXqzEaVe7oJ
PNUubqq2qChsUR+6ShE5rxc1lF7WOnB2zg3vbGgGWIN6B2D5DmjGn9tGkdk8
w.YDmxbD9TreuL3KBu+bDJg2eH2I0O94fUm9lLEBp9VP.p0qfn07ttdvm5XQ
A2StpA205P2e8qorjullxYhIrVyDDdLKigmBaEeVB+8hlvgQSsWA.O5JOBQ3
5qWweXZGvZFhlwCs3adnUEG4xI2IoYGEzuNPqVN0ie4XI71WLUHX5HzKH7RM
KQoqUOm+RQR.DuBhvbpvaV8evxPH5th6QoPX4WxOFE1KBnAL7WKZDbpqEN6h
wYA50Bm47UbDiPvkpFjwVvaEiR.HZ42QubL2cww7VtpXP51ckRv6ggASr1nP
LcE5ToTpmIuX52SFK7loElRY8honkGSkN.5LB3zCuBcpvHlMSnIYwkPUuMqA
K8RO5Xqhbub3YaThed+XDGzKFcpBfRsbiag3v3MAeZtfbMJX+7cwJ83SsjxZ
VPeJH4Cr9eOPq8lOZEz1zIW4hLC3QhBsj+t9w8rjCoqKE1pDmbZCZBoj7v3p
.D7y0lfJ+0mkTwYSiRkr1SiRt3BPijQgirAowZWrd7hdP5P+l2oCrw67yySC
e5PtV7vTvxNKmpeNJ4I+nBWkqBeSG9c+ssG.Ue5HTO2A0DCIp8nYNhpI5dTM
uGUy6Q07dTMuGUy6Q07dTMuGUy6Q07dTMuGUy6Q07dTMuGUy6Q07dTMuGUy6
Q07dTMuGUSolPwjuABcIAy0tnhkG+IHATnPfKzHvnVDGyZVr8v1jzc9pGLs2
naJyqegI2cGkSTSpNUfe4AouSGZjSzA0wBbSaXg8yS17z.PK.hHqf0BKLXxB
Kr2CyAdr6PTdXVT3lpCvxvCcgO6B4JFtzvRWoQ3dEBVTqkrLJC0DNxBxEiaA
AWbnY7zGBkSVOqgXl6XDyJijJYok890HGkc5EmeDAAYM2vzrb..Mxo4VvLLc
L+ZCXvEQ3rLEzWLQSsfItGIS1uMDLK4DKgXI+FSprZODugEKA+1PrrhUrDxk
vYQtrG3Jst+sCfTPvQm2YrIy7llbr1GHyYexpdbeSabCD8aiIqErhEYp5hOW
8P7d+0uWFu2Z+Oq.LJqsnKfh3V.Xj9.Lc32dzhOz4hL3Q4Lywi3ZqX7bDnME
ShZvcqXQ3cZjH5JJDflAgnWt8XIBtkDAaBoA4zO6PB7DREPnkTgTo2zQE1BE
SHMnNUqVQE7IkJP1xPZ86pJfDfElz.ntoM2og1j7NjEjl2Tx6rU.BBmZp.ZC
WhimZx.XEYLkZV..akYc6jJJ9xx.cOTPt+amSMHn+fZeZ.s0D2Up.G8S4G1t
04iog44AwNaR9Xri+Vg8rN6BBxkovkp1C86hB9jyaxR1EHqePe7kv0u3DlIy
6.YcTKJP9nC1374f7uSUhjd6lfH+O6DFKdsxGhtVz8zm00js2jm3HL8nnBZ8
h+98Awem3lzEyt.cErKOI2OR9NcdKzc02odpGxBzOp2l5mGztBbEuwIy+ku3
rMIUXmqepZ.ndpYgxmni+GRBE+FALu4PjXPlEkr24M9Q4uHKpON9hg4+u+O+
eE+zOF3+dUwiSOPjO4saycjlyWV43TkQNMcU8J9XXr.BcxDOtnMNOE3nb8Q.
PxGU0C3MUTxK9ePQhNO6m9j+yAeuXDFEjk47TnX3nKxSAwaJdKxBU2y0dl52
lbf8bf3WlJGghO4rKIMnnb1IPoO3GcHP8.hRNrIV9z+neliP5Pvi8yNjp3dh
KuV7OoBp56y1tSboMg9wNuYub3qjAD2v2Ktg3irheV3Tg1ch+SUpnneZ5WXl
5W8wWDCBAtnnHAtkjl6Gq9lb4U9bxAEAuVvICyDBf4E2rwBSEf2c07gSAqHD
hmKGVVWpnpMGffT+CDyGSA8Ae8JMUcTkh96c.OLxBskNMxfdxP60S8IBzUQY
JLN2XEYBiMNXgmwf8fPT5vXGWZFEiOPcWprrKFlGrqrbVUTw0jN+7n7u1r2u
5yEU3piCYi.xim3KZCfAcbnzoa9SlDhTSv57jzuHLsYrxJPjNIi7DBKTHByv
.HvUWzNOGQmdpmWXy09J70rfdoKDd8fAblALfqBbFgLfb04LnQlqhYfe6Uvu
ZbpOnXc89h6dudecudecude0SvGamhu0x0TY4ZVVwN00q4B0eGsiVZd6uHlC
pqAqxx7Yo8mu4O+6jUaz0u+6p+f65PVXb0DF9XJqWTemO8.VzcdqY2FtLSg7
9uyA1Hls8dfuLgEHLZEzSXeBsdRlyQJCvZYF1X2UlAhVq6ojt4C71hDd7+9u
3.PPjq6EAuPOba3EBIqHhOh.keI6whpJ4k.1mrVdu44yMFXuO48AewIWE2hm
uL.WXoMqEfSYx5eJjCpe5efV.3tVj..1hkn4AKES41nxPtAxeBfJ8IbUZ+z0
vzKQ3q2bxCCVd8jnKSOozCNIdgAx89BApe.RPvoVOI5Fdt6lr8RC+B9xkguX
0lJhvk6pH.bT5zlshE2G9V3Eb0tHV7eWOZAsA8yZ0IvWaJLAXOkBSraotwoP
goG4FVi40YodfPiJrEPtLK0eKquPYk9WbbuFXdwhXByUoh+PHk.uWktiIDk4
7eSXQk1+nqtFABco0Hb5YMq6AutnrX9PNcEEnPcm8J0Aj5G7o52P6i1zU.jZ
c5vLmVPdsU8gP71RLVggcHwfHVU9ZNK3YZxDHaSm.4pimrUxSbpNXMogHycl
N3MhjTALUoOks4OkAbbW3FUWnoPHxqnQlPV4JruEW52..I2sKWCld09WNmBF
1Oxma4BqoL4JKcMaBNIjF11bvfOkYVEBOF0MyZlUgFYlmMeRUVSYJoJ24TpR
41u8Zg.8oEBvzcqFFV1eCaZorbiTaoFxvubVSEOqG6b9bOa2dZC3N6oInzgJ
6xJM2IMqzbGwxHfWyIkVGa3+eQL4ruN2EmqNFQDJP1jMYDBunejhom6d8adW
9gWsDiI3W23u9KiMKNzYvft1RfIipwg5d0H8NyJCYvz6YDgPjUDLfPwdX.1k
JGQT2VrLzUkkAn26Da2SLi6Ilw8Dy3mmmcOb7aBKjrBS33phXkm2rsUi3kdW
aDpsx7aTR.qUMv1lqRyxLYyjUnw5wF0CppbWFnxb48gBfUHpQokYpbTxyuqL
ClE3YwocTlvxNx7Ytw2zYxw.u7fAC7DpkbcAGq4ax9AdQr8HSvg3Eu3IufUw
AsHT4xCXqDcJC7IidYA9j9UVbOw1FBO5D5AB1VG6wdu1OWLxy2PTXVde1lC.
rVVx5oqOtdJKzAPPm1uRN18n2+Rfbke8TSP4byN2JjGM+IUdtGpNwK9oe1rU
vjdSO4M949mxWjjWGh3Rqiq.++j+ZY0eN6Em+3e3e36+2xDlG+8oIaDlzj78
+zmiW+8+YE2J66+W0au12+unNjN+gpCoiPmz2Kaj4u04m9yN6B+TvFGgsvYq
9n+GNNyT8NeuX1otnPIy5Qciqt5Gn5W0MlkKKzcxiPx6TYbg4YBpkMVmjlpI
lh5yQiIBaEl2j7QsjmzDiDS+nDw3ULaIR.LOm+R4wQ3TEXR6qjmOFw6z7aJc
mebd+jihhydIbaor3Iui+5A+xVbtZ4+rv0OzCoVqhjHHu0uO6ASjj4WkbphI
RrrWl2+6uFVBfmhTY6CzF419spdj4GhkaUq18e7I2azgzRKYK3A8ot554A7l
fHmiyzLVuSzAp.6RVoJcBLOnGkeYt81vBuFqDBmdW9ENBIk29U85DEWuSCkL
FU.OUoIhx4xPnBIBC.HJEpLtLnpLOWFCf43gNpJ3NCKvi09+FUNBqS3ssU5D
362dQNPu1jCSG.AjtH6SjK3cOzA2Ccv8PGLYs6Hftrswoq..glQbs.DLks9H
x8Nez2bQc9H457pyXrtbjpSgQjK8dqO5dqO5dqOpNa8Fp0GMPuI3zBQb2gy0
SXi+IIwL.gVQXTOJo7KAcUlh6WMtEpxak6n27cuj7DGY0U66WKEFGFgY5SZm
teFvzf3kUL8c+pquDYMLo2AbcTotLTheyCRkMmL8dAnZtAkw++X+J6XqJqr6
GHKUIGxN1ehtB8jLzwxPNf.eMzSxFP6nLCMbvVHUpqCEfhjg20ftxIWgX+cN
C7xClGhGIb5oCdDCIygbDqpYi.sBMIChlO1QTTLpL8VWTskmWceJFopr5iWu
uVAPLgyXHtWUh5i5xYrqtfqpDsMhl9hAOzZic85oVedqY3Q0kWa834V+duYm
Gb84EWKO4rzat9RdlN6ks85TmkN1YqycV4f2Hbxa.G8r2YOKb3yJm9rxwOKb
9yNG.sxIPKcDzVmAGqCgC3TnUNFNrygC6f3vNINnih84rX2NL1iSiV63X2NO
ZRglo0dL96rxTUylqNU8R2Ascsa6Wsqm5NrMrCYG6.FHzxHg1FJL2LMqadZ8
lKQ8dLcOmdv63YE3u5YEV2h.uPVwP8r2wi8vu9mFXWu88rQ9qRO9c7Ll1852
uZ0P0au.974KW6dB74vibuo4QFc+zvrGy8N3NScjyo+AOrGnV5EZ6SUAaPd.
51lGXtWC2O7Ot9M7Dh9ja5Y.l5Kw8CrC0ahmNnrUKJtyyJTy.HbNsp3Nxv3E
fCYrMFOfpmw0JiOC85bKLKZ.Vw3rNeTrh1w3vXqN1LWpqV0aG7Jaa8w8chUM
09iOaorKl9M2Vj6i9M0ZjWP5mLZ7mYM8exO5zvUZSaT1Tbcun3uLbaU1TF2a
dPdqGmegMsDUQDollskMN+n6w4+db9uGm+6w4+db9uGm+6w4+db9uGm+6w4+
db9uGm+6w4+db9uGm+6w4+db9uGm+6w4+db9uGm+6w4+0db9MsLS2mEB8oto
aEViMR8xZATuQqu+X0e5g5ouETN8AYVu0DgxFWpnaXFhFGN2ygaZbGpg5.Xe
GbPq.ulmRYiJ5ahocof4DjskhEipU5PkhTgHpotBq44mK8gFA8AZqvaxoO3H
nO7BPepilyn3vvYmBQijBAyMEpk6sh9HKAOdj32RPePamCywKDEBrlBQCRg0
tXciorwPp+1kVQCF1vISFMcb.LwEO00QA9oCUdYftEsDL4AcjiwfZEXFDaxJ
vLc24lfybGqpDADCyVUXmKuCV0cE145z5ptlnUese5vXwUk6D4QaUcTlEaSU
y03AqkzEnqKv8mF.YKaahdKciSMWnux0wlodXY2LpnJVfgbBmW14Pja0AhZw
bOjE8vyh+QSQcIMxXKOtE5DdQEQarrsrzEdhroy6AsDN6rAG5cK2ATC7e+k0
WCEnGTU4JE+qqmKtpP1fL0kMtLw09fYO3sbejLMXeP7FmrlK7L99LumVZFSf
qvTO.iUh1vGcXSWke67ZEpykLrvSeo90qCxZRNl3McHK9FVr8u2AbU.UDArx
Cy8.3ZhqVo7ELjxgNwUxMLt9hvFoD4l+dcPWgopTNmAK67XblkhrW5RadzkF
j6ySGgxVwaU1CHbc9uCtNqxYRuqGY5zNvtgkhs2nVfK1Sge2BV0Rge8aUq.3
5FOmEqZonWyV0Bb4tcaNvbZVKE+a.yZ8H7tUuNgl0RIu1MqsBYmYyZozWwl0
VBpKfYsT1sMtJTaRtJqrYLzyDvkhsaiR76Ac429NMvuRxtKlSCL2ei3zvQiH
lYuFXKtx291z.YO1aSXlpGAMH.RUBqDW1JFzCUge.VWE3Y61Q.x7DY69fAcs
H1Nff.Y59XrQbfcA3.dwwgpJwrcPASWwpMhDd3K.IfKNRT03JsCIf.9ptjIz
8btyCIvdKNRjrcqrUvs4GF.BnX8tTyLXp.+BP.5xOqHMvOOvw2Qsp+yo96bR
15r4vNY5L+A+nCMNQOM2jU7.xMpVGCjCau9u9fjPOOPa4UkHOT84N5l52.gN
EpUZhXsCeB8BzmhWdsHRHPcnrkBL6NDkGlEEtIH8b2SdHUe.M7nqXm5.I6B1
T9lA+91dS4YEsa4afnWBIe8G8RgbTmv4rD7RH80bvKYdpTWZwCcIj8afPWR0
qYN2QtDxesG4xRfclCbI5079wWfoKPbKQu92N9RvcwBrFh8aj.qUt.2LGVMz
hGcXqxbYcqAEhVQu9Itbqy7Vi0jviN6ksIAhaedstYRqANX0MRRM.QyhaAsN
Kf8lsGDwZ2sBMkUBgc3yHBZUCnstDVGQatRnBO2nSgujWerALZrouPuVAPn4
FfJy.9qOB4NZDpyfzOIG0B6lcoU5b0QGn2nQm9BX8bq0NKHpYwb4LNp..c9T
Z9TOcwVv8je7ysZRdMNn.7a5j86Ri5SkgIKVJq8p9fX.AnN8WdNi5CC7agDV
yc0BjtZL3q9zUyc0BjrZLzq4jUSAoKPHeX3W4opVwBZKRlpwHu9yTMsf6xkm
Z7eiDNsRKGl6rTy6FVD1Pm197UPfHq7b4PFuVGi..X1XTFoWnsu1uci8Z+ps
aQUug10Doinuop.RMdPqp+gWqZCWGk9CoG7m7CWmDoapDB3VUkBk+kawmNVF
P5UZYzzK0R50ib6Pu.anWbqeXM50USpDWfGE7XE423mmjtQ2uQ.K7HANVj2z
fvcZFDDaEev2FhOXaoWTezamhOSCQitJ5TlYhFZKRytIjLjk1B6nW5YoXY5H
ZfsDc+fr6b.xbKoWCbiECjY1JY.8tIjjkF6aE8xv2NzqMBExXaLvLOKVHDrv
CBvs6p4xhjTypq2YoNw0f5jZ+xcga1KbHIuvhaJfoO+2dvUDBmxKiTl9rd50
0EmJoQ1XLKCLFLX5n2qlwAy.8ZqCGH3sg1IasvkN7RVyB8ZqEtLzsA9ZqwsL
3sA9BuJVCLezKvV78Fw5EWamuwtcnWaVuf1qeCMH0425EqGD3aWqWn1ZmtAa
0VhYlTacdyfA8KgyaTa8qfhridmX+1n1ZYDkdSnIgZqkQTxsA9RtdVxMKzq0
VFciHOXskQtickkoidA1Ru2.5yfV5sKy854sK.vH5h3qI2c8nrtt3TBBVux+
x6tKEdUT5LazK15Hdxuch3I15HHRtI7wQQuHaDh42DqDonWaz7.sIr8kBESM
HaqLA6JpsDBJR9HvJnGm.gkYNiLujbc0wFr8EM61AbQwEJblvEfKgqWEwVfw
cQAFHYl.FF0a0XfEvxBKn4RdwqqqYFVPSBrfrcMGD3lv5bj0wcmb6Pu1XHBB
ag2DsWyY9l.Y8HAxtcCVExZmmuM1jVj0ps32Nlr.uh5TlOh1ZEK7aBICn0an
G6rTrLcDMvVhd4iUgxFI3ESuiypANmtpqHUPY7UyZfJfjqxbY2YkiY8pTKef
Uf1pfGPtMlQfrM5c7q2LBjqtTLZZFAv0siqMkHf0obzMfDF55sy4yA8BrUiS
Y3xlFpvVhnSZ334bHK+yQccPGNdZPNrIL4mx8yOj8t+TP7giG2Bwadq+gnby
T9SOuMLJphQ8Ms9EeyCkm2iB1Y81HZCFLzCC.bICFAPLHU8IwGHjSasp56CT
diXB1SdTeDehBYXh5SbHhfTRKFtU3w2ozxC0ax0i6h0epJbqMuU+3miTiDHy
s9gNQvdSS1mjVxaDOBuF22AUAPcSXQYGv0XOS8wZBKoheohscRGx7AU4vr9y
vjvVES8e9vZeaYj0OaPBgq+k8AwN+jeblyOErK7ojnMMOaNYAQAqkC3FrPFz
k5oXg.JCpgetqK.2VGq7fJot22EF+gfzrfJVBxCBTrDXEeEx3XTaVxnj9p3.
8H.NBgglhf7JAONykv45OYjnOUDjRb0PFU9Gl9S5m1rHAVCN8WKKnJMvDjjI
n.BbIcJmRJ+t1LiF2omKFvT2J2ifYpAFGC8XJXhP6VSOlQ.H0uB5gD2rVV.H
DsZ+REhg6NklYbANpYFt.NW+IA4CgsV3XBlz8dc0p8e+kv5Ew29m7YzCNSaG
wDPu67+DUdZCsjT6bdauVTYPxROGoZxNqXJWuRUm.NBwnY.bNolkYMmTHHKV
CB5UeNiTUFl.lK9Zqye6TvauNJgqoJsTMX6OMfpTFWtp+iF+j4a8qJ6.ZOSc
7RDmVglFgzrh+WyVKANg7lCIY8ob9GhNDTu8h2OkaZoL.ih0quVMH7jeEXFG
DoIeL9hFEGocRkNEzLOJ98e1+xFDtPgIAZ09LDBpmiCA..Z9FD+XZPvENJTb
Aj7OZSdkVANeCf+ifnnjOZ+Hn9ol+mUmadhmqKev0oEldwzZRAbcLZIBtGYV
FnG18TP5OJ793hXTxoGtJwMhvbChZz.pqceRGDoZCBkiB68pdbzeWVRSwTJx
qX1EqvFbAuy65MOq3YT9.dHy+CAadmP7T3d367yySCe5PtN7C0FjOTVtTKVp
r5k7vlvmCxxa9cOGk7jejJFJAoU3Z0ky8eVWNLd3aOtXp5u07E06rVE0PSC8
0PJZzqmJ+tFUOi+XPzGBxCW667+L3PoAVlKgFLtvgNgufh+xixkNlvfdq777
H..Cn9BnpHk.XG4klK4gGsPqamEJ9klZTEMTA3UZ5hgZlwUB7JKOmWHBBbIq
n.fvWPLiRnPSHHFMkHXUgSdtQPU467xfONErhPHx52hKBXD7zkQqIC7nKD3U
VcOuL7inqU2sk3XSJnglXPqci0wbIrxcvodPrZ6Q.xZzX0PI6Xc9w0H5.K+g
JRnoEG1ELsGBeNNQPpQgqeesh3TGUYn5TlttSUyLNBxLW.vOhMoBIm7fz2ED
6+TTiAVUoHBW9Mmr9cWtOarH0JIvpEemNNK.PHCutzW+rVDuCVq633sbvWO7
VJlHT4ScQtPFBidsxZwl4rbuWsSZQ5RJ3qQlIqCUvUsB1ulll1nt7UyZNGou
MGR60bMgAEPWFGJb4iUXvFlyU6NDgh8vBAV05vzVEnyNr+ntROPYA38jZRXc
5IH8Tm01FFEHiGbgyZkUKwG72uu1W2vIVAd7WznO+wpuJLV+UUwL8gzfODVd
+G+V+z0xcOYsBpjz9mnGqigOrKQHsFeHrVtlV495CJdfzHur895cT+gZgL8g
5Ugdsn.Pa6qrdjHkBg0lAIEhhRV+9fM0IuGR1GDGFuW1qFiyq1P9pKW3X+65
nHE135aKnQiWzbkZ7gmSC2jDKIhF7B4WWK5NZGJI0GLpeQr+dC2r1c8NtXlJ
q.dxOUxpJl2Aq78NIIp4kptunfs4EWdeXb7InXdx9tuXZ3yuzy89Th3h656Y
qtR16NDqu56DRE4uSFZhl+N+nnhopMe7exONbmetv+.MK.5VcQstmWxVmlDE
0X7puxGLbkMBo70ApdZodeApwuGQXPNFmiFo1wIe0gmJlE+t7fc6ijsRzF+.
wnqqrA4x6cmezOLWlST6xbxSDZ6xcBhSN77KNa7y8O2F3Ihnkl4PUwH0Eb98
rSvx2ZfARv4kj8NpYqCLx4jx1clP8OhC3HhmxdNN876wq.xhCB9w9Qe9WCDC
.AX3m636nlpc1BHZ6Agx1nbCXx6RjUvKciJce39.4rogJ+wd3h19gxJPBa5Z
Zic29hlqxFMRX7yJjKEzjVFi3hryVorZ1snSrqmiMA3Ef9vsRWUC5phPJAJm
hHrjrViI3x6pZcC.vQ2Q0l7lTjMnEEOcfUlvoIg8bcAYdWGDat5ZQq8iBbdq
vZZgYMx+GX0P0TbXQCFg4shfbYzxtN.WldVtzIS4U2yEoyj5bmsByVG.dHEl
t6QWwQHD.UJ6gEKvMcclEfGyptm0IdHdZh9zgmhc4s3I2tIuF6vywt8dbXOH
6xKxSyGxg7l7DOJQEsLCsHLlqas7PuSSeHSNUZgik13b4fNXZoSl83nocNaN
fCmC5z4fNdNfymC6.5fNgZgin13L5XbHsGmRGzwz9cNseGT62I0dcTsKmUM6
vZGNsZkiqlcd8TMHmplt00GRc8I9ojmr4oSupoE0X5vHIlsSXTOZUeeBHzDX
rS5zulaKzdepFbxCse3F7XoY5F1XotKEKa6vWSvLOwQ1is990RwugwTlttMP
THKCXxe29clq8V9byCQaSS1UqUBmYMLoaPddrKGk327fzuOQlcx4N5dape7F
mp9.61zf+5gf30e1ILVHtsKbSn9GDEtWFQpCYRUfNo9wOGr5zWPCeHQCi7Pt
tsCo2GesbJlcIXOcww9AzG1pmB08NUoshkWCalbUfvdgO7xCeFZJS8CfdnRm
AjYYpvkoh+PrBMIChl80+kZo97VW3rk+U83BpZ+z3zR7jp1BnU..h6Ap0jqL
6w0UWvEvw8CtlFSM8BqM10q2X84QlgGUWdl0i2Y86glcdo0mmZs7VyRO1Nwq
Mcm3C3h0NsUDZBCqf1siaV57lsNvYkSbivQtAblydG5rvoNqbryJm6rvAO6b
xyJG8rzYOac3arN8MfieV472vN.NrSfC6H3fNC1mCgc6TXONFZsygc6fnIEZ
lV6w3uyJiSMaf5QqQODGlWyjz3j7.028nielyGChhj+qzHUgjxyNg4YNhEP1
eH2rkpCZsZ2Vrpzugn542rtrXcXqVGxx0ALPnkQBsMTXtYZq0LsfMUNLrW7Y
I6ZPzGZG5yqLlyiPXtnR6LXO5v8LsOkmGq.+UOq3TufONQ55xJzyC7nWOrG9
0+zfBOkSC7yRhO5s70B4AP7JHByo02XC.VVk.nTHr7K4RaxfWOFCfgesngxo
9pHYWM9hrk0eJegyWwQLBAWyuSp2JFk.P08c5Zwibuo4QFc+zvrG4tfJDnev
NfGSJScWzoy.ndc484vdfZoWnsyXA1f7.zsMOPFD.mQB+dXYoFpofNls.nO4
ldFvooNwv.qdIVyIMwzBkbvfPoI8Q0SrhwYGR6TuXA3PmVeGrQ0iGeE9TCRG
EGaH85bKLKZ.Vw3rNeTrh1w3nUmguatjoB6VO7p1E5MdqR8Vc2rMUIFK6.OW
EorKl9a2ukFh94vaJ5mLZ7mYM8exO5zvUNzgkuq35dQweo+CSugvz7scOHuw
iyuvKO41lfqqXy7VzOWg4GcOL+2Cy+8v7eOL+2Cy+8v7eOL+2Cy+8v7Oag4m
eOL+2Cy+8v7eOL+2Cy+8v7eOL+2Cy+8v7eOL+2Cy+8v7eOL+KSX9MsLS2GEB
8wroaEVW0H02eb5O8D7z2hIm9fLqyZhPXiKSzMDC01BYMF2yIYZbmmg5.Xem
RPq.ulGBYiJ4ahocob4DjskREipT5p6lo6U8mEO+boOzHnOPakcSN8AGA8gW
.5ScpbFEGFN6THZjTHXtoPsbuUzGYI3wiD+VB5CZ6bXNdgnPf0THZPJr1Eaz
bxrvHp+1kVvBF1nISFLUu68b409pVEB1tCwJqXadfqfPtKmWlPCX4R4X8FdS
6sXw.6sXwb5IB0Xga8zFPQWG399peq5Gd49j6tvkcseMx44zjC6c.t1xBfxx
iqG9XkhRVkdcsnZ8LRFPiZ45rTawFr1OUDFT6p8StPPO09IxjUdiHyRseZDy
cK.ha24trW6ScK4.KvTW9WeybYT9hLwEdiMws.Gtcm2hdkOusjAr.SawK9z1
Spe7cl+OtLYMAh3ovCpMnRW0.2ktD3Fk3u4I+3mqewdyCxtqlmH01bi.PONG
xUEVeqfldUbonsNEXvmR1lyEzoCY6qR5tcatR+PlCA.EXziM1Crxlmjv2NwS
rnVKIaM0N6B1D5GK9AO+tp5tDv0Qsi1hKJtT11cM+lNqTu3KmshgdqvddTDh
w8zsFAPgf+TrfD16b3oyjBhTKUPTVjQIjUXNVrXdoRTOgVC9zUjQ6wmE24Ag
LTAl5AffH9J.WHGWkELxFdqKBXADQFbcltJ7RMgL2kVE73Kwukn2bWgeEO6Y
wbwmNjmmDOXrA3ppLtX9TqhHMTe9CvSz5NddiwHvkPlRNIbndefvqBUe1iVn
eGWZpsbga9JxDID4s3l48VYEbzVzAAKZMD0zPgtX+w1Jr6JuaHht3sA.gWQN
C4pfPhQgCbpdFHoTMjDhltljf2x2jDfC1yHP51eDDiJzNUqyRY0xamI13tzS
txcdZXmLQHsSlD21StvfK0ISs+Lx7en6oXb5Ruru+50GNIAK6SQjr0z0ZVFw
aZUDw5NRZn4SbZqySV1gVpltUGjDtw.GdwLjMRTZz5wALOfQVZYqC+Zni2PX
Fk1o1arM9saEhYybQ17XQf8Agrv95a2fPRouxiBYIGXAhBIkr3ggze29r7jc
Ye4hhJWoCR.hRoHwEWyCIl2kBhEsYmGGZMD.aoCRWesLF+26n5UZYAN4pTp3
YGf1M7KB6KiPrKusAN.h6jY+GFdNfMYd.6Zg+7KWEzU.js7bkcwg+HJLqaoY
B5FVZVVq.xdII+Jo2..jk2C3QgWlvXJ5zZwI08ZE92iMl0Von5QH2TRYUC3a
kLVxH+zLe15HSrjii5IhUuL9QSETKoBO7TREXKoB7IIm60kJfVREReYlNrv0
VpfLkTwsfvImdKvPTTAvVp.LUTgsPwDhDLaIBCZURR2nKORfElzvs3lUjl6z
PZjSSL3tHM3Tx6HiQJdRoBqDimxkaX1tbSoBnIgJn1hEzIkJrc4FvTpYwVE8
.vDRDDjsTwTRD1JZNgz.11U+InojJr1nPuojJf2DXgkDwTRCP3sfgo1RDS45
GpNvqk5qlR6iUpjsYMcCrtI1nGqIM.sa6wlFSEA1JB4Mk5U..fsxPdrIkNbO
8b+0kYHSNUXiQxjImJrZB0jSEVIY3Ns7DqIiojJbs01PZ2hFGCfmphV1QD7N
FZyCaBS9IU4P8c+of3CGiiXYAd0Lw+zyaCihVmDkzYWWuL5kOn+UM5f4k2mb
S6fdX.fKFOqP.DCRUeR7AB4zivo99.k2Hlf8bgxeNlBYXh5SbHhfjex0vsBO
9NcAd52jqGWVswjeR7UfV6f327fe7yEkHV1I8e58oI6SRqp2tqPdMtuC4IOm
5uIrnHB3Z7rY9XM4kTwuzTgHUuKr0eFlj2pXpuWues+6x5arsLzZrDPw9nd7
upKoMAzqN37+Pzgf5o1e+zq+ZYZd2PPBAXTLSxJoURFdxuBLiChzjOFeQihi
zNQLG.6oDMm4Qwu+y9W1fvE5Qvp4WLlrCwJ+DGJLD.MeCheLMH3BGEJtfrXs
qzn.nbpbnLWCf+ifnnjOZ+Hn9997ypc9g345xardhgQIGR.JFDiC3.kpShf6
QlkA5gcOEj9iIQatHFkb5gqRbi3AAD0nATWc9jNHR0pakiB6W9bbz+ieq40N
oXJE4UL6hwzyyD7Nuq27rhmQ4CXnJdPwfryJcfopbv.U3fSqtA5UOU+slund
m01HXMMzyF.W+vq0tpHYNW47VQvfFYjJkqRhdHQrHCQ8MsyODyGnMSGlMC68
8HGhMN..FyOHWjNqHo.Uhp2Je+MuizCjm+lNLh8kcUW9.sYRFWu.nF3m1y3W
XlIdkQFW6Du1VnvHLfLyTgWO4VY132yHEyKNlG.VQpzvQBkBLi4QssC05YiX
iSCMYpGs6cRhyBx2DH6WGg8JiiKxCCjdj2LGx87ttrYyScqSbG6SJkJF6nun
XpenTtfgg9ehg9dh49cR+84DS82jpkJFnelzUeLA.vp7TWX6QsktL1.SFnwk
LTCKo2FUhEMnjNZLIC2PR5oQjzaCHo2FOROMbj9azH81fQFnwhLTCEw1FIRG
MPjdabHc2vP5tQgzcCBYbVbzpQfXnAfLXi+ncC+XrokV1ZgHxWFJsdgJWQv5
CPEPWHDAmVIDs6nyiQyRd5Z03BnK0I51OwENrlmS2z1nDwyt9qR7hB2I9pS6
UMlOcSH84CT0+GHiMgr2ljtyW8nnCkl18dPKP7ahyg4EhkvaBrD69J.KKrJd
wkKIuFvR3MAVBX2DXoUGIcrtZ0w.dq.PgaJrxCsB3whVkCGMQGIcD9UfHm7H
oICVmtxgsbSeguBvRrmBDo3kEKgnaTrraHCwHKKjAdMr5AsnqSgW1UO7dMfk
t2FX4sg01sawWGitVbRXVfi.sarK8i+HP4wn5B7FaExiw4rxdzEs5DPcVN2w
7V5SOVen2GRhNrKvYS31sAx8U4DbZznHSGLMinHvkeAvH6VFFeKx8hfMtmZ8
GLAsBRHtTRsyNJ7BPMB7lF0vWGTiiuxnF4lF0HWETi.nZTq7b1SnWHpQuoQM
50A0vdWYTieSiZrqCpwcuxn1M8hpWnZMVQDyMtX.97AM7Msn1EtBpL.LctVv
k.Z2z1c.uTPSUy+LuTvk.Z2zKE.tNflwUBt.PCftkAsKUkFQgYlVGPOw8Lwr
E2RMq1qPlNCcvTPakSW1VG1TAftcieL+OwFdlK3Vl5ATtXOAv.FzAL7Vcki5
snYCI16GGL3zAWOEPfM.DHhRVAvoVCDOUcPrfcT4CaHkn+4MxDSLxCBzY7bY
9aCKxjaPe.W8MuPlLNmRYcc3CNMER4UGABNykv45OwwHCoPZ6isvLoBLKJ4i
NAweHHRHq2Y4WGNz1nq2hMgwcxre0kWqsYSTREHzYMCXdJ.g8gOa8yxuX7QJ
2KwGNWiOkkQcH9BwG7hiOuYsXFhipYl9m+cN+qoA6dJx+ye2P5JX5cQDiVQv
HNurvWgESR.X3HW6rdtl0gxBvxiT5xiddhSrLN1Qhkz23nUp2kTEZnj0QYjA
y0cE8zcoko1AHYaZ8L7CEs7XUPjXX5DDl+RPpiLZ9NIoNxIgqCy+rylf8Awa
j03tjXGkJ5yDBgLc5WabmtK191yCDa19GVDPbSfXln.7xDBZBbpglLmsIxSx
h.b2Dr1+ymqhMnmRwFSlu.bp.vZLOFc9Z1PzEG9j4FqfPkyX8+fr2krMxW7q
233mm6u98Ym8hk5ijf.sVQnHHprpzIOMYdT8FjcVP1Mvz10urKLW.YogO+by
pS6nVtTCCDW7JnGC4BKq2mvxcM77PHHaoqmw4Nvg5UMLUIgDIz53Awt3pVhw
QGwufZVXeUuX.b4QGvPnSQKGe9QmEWzIUPtA5CcQ0Bg1gVPOzJuSM6D.vWZo
wdvdRCYoK55O6KfL3fRUPUbUTwyokgTD7jVjlmmb+VSS1gBbjAaxKl1cVgwn
mUxabFJ0Kqn5n.pEXcdSoce961GEleP3mwabWIWOFr56Z3gQX7lfOMmKzMZJ
ryk+FeMCF6oYSBtUKWmJp13nKtE9cqEoVwOTllQ0.5OJ7MHL1Y8gTYJdLnIG
C5HftCHRVAk9ATUk1EZJ83muW.nk2K.+mxRhjKczQNEMFCyvXsgYDd6HdSu.
SWgKdil3W24u24sB2WVIC7fkc5VkHivSaJyk3gpIx..SWWCp6.YLSU+bc+cX
vSRDrvKG1J1oynrpaZhsql8eZ06evx3OhMKK416TRYE9wYvFaF.WbHyV455A
oRmePWPtls38GvMAQN.xfKuol5vjsDvSin.FMocgUBXwkLdIbu3mIMfHMXWx
GBb9C+9yNzLEg1BvcWIzUy3kHoqL7fnKPYs2h2Ufh2Ks9Zqy1KZ+aqZMdDxJ
Nxqp0r3B7jBf5FwzEX3ukJjfza4NwfrNp7EUS5E5RtrlcgdlsQuQ4Wb++pXc
ft63mmCHilUPFiEvr7utLo5hsOwnS+5DveJwYvMLNuNMIK6KNvKLWSKBOoZy
raoX0850NhF.puk6uzpsd3xDi0mlXi1Oh7lT6.n2xHaRbfJnCfqgtXiNu3QV
QtN8sx9QY5MLJ+28kqA7RnRSvZkYXnIVGLDdCir+O9hykl+03xiUq2J1oaOD
lL0fK9FFbC17bvUQx0nZWqv1KWw.jeCaOb9KoAYunLHFbULG1nTL.Quz1V9f
1C6szFpodp1YpkrKKWDBDq1IhKAYPcGmD2t1uBCwyY12RheLHNHUteWEIMie
UZy3eLwY9fezg.m2nLOKXiySeVHEuK66NljHgwh2gLwZTioU+R7uD+Ook4c9
GKta8nc2AY1j7o0AxDhHdii3cF6jFjeHM14o.YRE9Tv1jz.w+HebEgmW9ie1
OL9Mh2wiNhw12Id9kIZw+nirfTUdeEz+Ze4y6z624Mh+ufvE2sL8eD2ZVP7l
rSF6uQsaoeWiTG5MG+zSA4eLPP0tqTi.4V1Hddp.jKdflhadwH6iuDt9Ew2W
lIHNeLLJpIUJouM+f74UDRm+QAztWLHK9O2lF7WODDu9yNqOjmrcqy9jv3b0
s8G+0t24H1EYRMSkkl0lLQJpeUtmWdpeKG3B81kWH5VJgoYhErfSyarwaGBq
nZcJPOWNAiKy5Ut3KsZ60oVs85OZwVseVqYRmqdSqpfs4m9blSoxD05mqbJl
sIrHzoRM.Q74BVDT9Y0Db0L4qA2xX3PwXvztK+1FUjSK46tU+U+Yr9xcv5cl
lc4FP0oAkX8eYkR0EWKQeXWRJfcCqx5sWES2wtfU7SgL6x1mKwrIOxMreQ94
Iad5KWivpZLyyzEW0oDbukWo8J.tEhtKD3dK2W2EVgdUfViFofXSMzd0NQ6K
aSv1PyHZW3FkI6EjBjn8XmwVg4LLrLEBUUxbBniqMm8DM6Grtyc6y05FZmGY
t6jbVSZHlkhHxpxFhRfdjRCPkMFBDuiqMq7A5X3Ccz17fKKogaOU8kvMaZVz
uMvcJljhAB8jbOBxqV33DNKqrrp80lUQQag.HdHQwhAKhSVwEpjHUlJhjIYi
aGWaVEEssSzBcOO9cwrQrzrNJGWE8U4rQFtqqMq7ah0Jr8lcM1V1oBmzlXI2
xVGYah0d2rOQpg55pWJmtB3IzC3UKig7PfgtFfHTyqh8VoDE6wRIQCWaBwMa
XdzqHvQDVYpNL3hE3XByPKGiX414qSqQCWaBA.r8c6S6G+SF0ZklP5XI2tYW
XccwGK7Pfv4b2xZ4frcVg.jUPyWbBQ.nsK7csDX0MjIrLNTHJr4RjEqcz9ZS
D.vFWC39pnoCopKAL.XEiQAbTwXTNgEBAcbsIZ7Ss02EZQ+bdZnBq6ErdV5K
f7n6iIb.zqlzEDg0mI89tH0k19zCiPH8oXo00lSaCrFlP341aN6Is41+FB37
8yzPCxrnQEJK3MtxH8Lvj8BwQtXBcqjtG5BG5ZTWCYKRgKsFt1DM8zVykY2D
qpSrsC0CuIHWr6XBU1ToAFaqB3Ami.rccPtJaH4PY2+jAqb8mTsJX6KMQCdD
eLr.3TQELK85Be83A.lxVDJgH7rBHL6nDokvOoiKMUiexXBi5jwEf1FotIb1
HBXoNL90yrTO2hrSV1Fq8nTXshLGtrYd05ZSE.3NBtP+.f0yEfZ..PwxnEvq
1pLO3i8bsoB.tZ5imi0vPVJtZvVLaMwZRnaHeLd+LYTAcTgiDLkjAvZxXpj7
g1ZJhLY7mNv.MFORmLp.NFeW.V3HBwitBhPdXdsU5KrBvv0lSuasdvZXV6D6
cKDLlMHZpjF.diROwTMAEvuITWAXiwbwIiJfKP.D45Cx+MQ.DA1N0vvlrNwJ
Trlzvn4VghoMVrmU4lJKO.ValMa9QHaYdvwIWU.kkM98GjM26MuS2Hyemedd
Z3SGx04AUMZbbMb6miRdxOpH6rqRpLC8i6u8Hwo9aMxodm0xvMMMzSlsU6.u
6uaeVdxtpbaq67Zy7A.jqKbCb2Ux3hK71C5Iz2HUoz5nAaNIt66bW2rbMXrG
t1QtrYHO1tN.1d+263KHuOmE3jqDvdVrXgpPEcVHHxyUGbVvJrmGiP3DOjpZ
gztq7YNe.6ohEYrKfaEhQtdHV4LgjzyTHqDhvnUHDxUdhAj65otpOcN3STXl
Yopp5s7jIU8Qg1CY2S7K8Ld8jkQZ.vCwwLJgJGqxiGzIyuDqTuBPYdtLF.yw
JYFObMv34zvMM7VFwnXlxQYjrz2ikeR8WcAfzt.vSpmJF+fBjerCgwJYwmNH
O.CUhBEyndXhEI0u0uTMAVFv3yRzDTzdvK5ItFp1X1pzqB2ZbhbM1JulaUdY
w96ydII+BWh.iOUDld1yf6dgAp6XPIXMTR8zZlTyZP6TSQJft16IRC6G6KK4
p779jMyrE+55+pca+pQWzqlYwaVQdUaUQqD7PmfCPccpCIOfLbD.5w4Psld0
Uz1gc1jIEZAcRcOZ774+lbs3MU5M5E8lHHadSPybc2Y3Ua9MCtLQcrsBbWJ7
hsYLVRNW1axFgyRHe5UTzLyFtZLNqd0SgvJhMh49KvqFz0bzKCvQ1HUoD8PW
nTEBXqhHvk9lrgSNMnoMf4jHBYsDzU2rBHwlorvqfdIPiMjnu2D3ZiuV8pOA
ItRxT.5bo2GPrcUSv03MAr4MAuz2Dzh2D26Zfd1nIkQuVuI3Py14Wq2DZn2j
a6Wk1OI+86+PPZVwOW8VDNS9WzQaf+n5+LLV+epb85gzfODV960eiepvYwbg
mhGR09R9IptldoZ1eowGBKlhoB95CY4eN5TeyN5FprV37S494Gxd2eJH9f1K
PwvZq+gn7lXwSOuMLJpJ1H0CaaoOlE61RYDXaDGEnGV32uJNJ.DCp5qgHwGT
aM5wiGq5d.Us.QRYmODW0LBwbHhfZDAlhaCd7cIytA0av0i6h0eRmvC021Gy
sBQCMyvpe+g7jmS82DVT5jbaDZ4GKDkjkVBErWKfzOrS.ngk2ScQuJlw+7g0
98w.pG.Agj1+x9fXmexONy4mB1E9TRzlit1q6+XhAPCV.C5R8Tr..kA0PH20
UFSqZnhJDFp66cgwRo0plWJrpgTBq3Kv1MDRqjTpPwNDVrjA1Tbw1NV4IhKT
cFvH9f7OL8mzOoIQZo.l7WuVbglAaTBrpAKtjljSQjeWS.twc44hAL0sw8HX
lZ.vwPOlBJHzp6qY6EkQ.H0u.5g3d5OQ.BQjluLgnztSoSFWfSZf1Ev45OIH
YHrVhDcwSHdupvBm9uKU202DCiIiFnQxXcwzxN+OQkwArGxny4Mcssylj.zx
rG67qEh+cx8OY.KX2WwAbsRb2fHuPfRnWF5UWlUpd.S.Wa9vtfrL+mCtt7hy
WoUM0OkpOZ+odT+v3xUzdz3mZea2jqw0b1gcbw5M0IKjtT7rZ1CHFyHuqojk
NN9+PzgfxVIjYpxjZafbShTqaTQfdE6azUm.SS9X7novizEoZtIZhnve+m8G
OA5BEKcoU4wPHndtCD..nqOA9ioAAmAEpPOj7OZSnjVab8It+i.YiMsepq9l
z7ypsog345x6ccEwR6LslE.Wsclh6gTYhy0Y.bX2SAo+nvRzQCtRQQWE6mHV
5innTPcsYWEBLUaPgjB62SmwQalrthJaT1dERwrBaxD3s24KOqcgTswixQT1
9hVFsZ+I+1+qu8+O.bTMP.
-----------end_max5_patcher-----------

The main bits to look at are the central histogram view, the “gesture” subpatch, and the “streaming” subpatch.

Here are some bits of info I wrote down after that brainstorm session with Alex, some of which are implemented already, but not all:

Stuff written down after meeting with @a.harker (some of which is not implemented yet):

  • delay incoming audio by 15ms (to let onset happen)
  • analyze 20ms total (so -20.)
  • use audio-rate onset detection and sah~ for starting analysis to avoid scheduler slop (although alex’s tweaks of delay and fft size improve this)
  • analysis window should be multiple of fft size (to avoid having a garbage/useless bin at the end)
  • average multiple windows together to get more accurate value
  • loudness was max measurement
  • centroid/sfm median (play with max/mean)
  • use [zl stream] to measure values
  • what is more important is that you get consistent values

So - some technical points:

  • I will probably tweak the net version of descriptors~ (or similar) to not ever use info from incomplete analysis windows - the meaning of that data and possibility of skewing the result is just too high
  • I think the comment about zl stream refers to zl stream into zl median which is a simple median filter - that adds latency but can remove outliers in a convincing manner.

https://huddersfield.app.box.com/v/AudioExamplesForum/file/322660705237

the link to the audio files opens an empty window. Do I miss something?

Hmm, paging @tremblap, how are we supposed to link the files that we’ve uploaded to the shared audio box?

For the purposes of testing, this file will work too:
http://rodrigoconstanzo.com/temp/preparedSnare.zip

(I’ll edit my post to point to that instead)

@rodrigo.constanzo the link is the link to the folder. name it right, and people will find it.

Alex gave a talk on descriptors. He spoke of many wise things. It made me think that I forgot to add to my list in this thread that I’ve done mute electric bass guitar as controller for corpus navigation through descriptor since 2009 in this paper (http://eprints.hud.ac.uk/id/eprint/7421/) An even more naive version was implement in Sandbox#2 in 2007.

Some of you might find that funny.

Real old bump here, but as I mentioned in the other thread, based on some chatting with @tremblap this week I revisited the “onset descriptors” patch idea and came up with something that works significantly better.

Where the previous version was going wrong was that I was detecting an onset very quickly, then waiting 15ms (in Max land), and then analyzing the last 20ms of audio using descriptors~, with lots of Max slop in the mix. So not only did I have to wait a fair amount of time, but I wasn’t sure that the section of audio I was analyzing was what correctly corresponded to when the onset was detected.

So at the moment the onset detection outputs a sample accurate moment in time which will then be analyzed by descriptors~. The output of that happens with Max slop but, critically, it is analyzing exactly the right slice of time.

At the moment I’m using FFT settings of 256 64 for descriptors~, and in keeping the overall analysis window a multiple of the FFT size (as per @a.harker’s suggestion a while back), I’m analyzing a 512 sample chunk of time, which equals 11.61ms, which is also the latency of the process now.

This this is a bit faster than the previous version (12ms vs 15ms) but it is significantly more accurate in its results.

Give it a spin, particularly with live sound input (mouth/voice sounds are great for testing). The red subpatch p streamView is really useful for seeing the values over time. You just have to make 50 onsets before the zl stream starts displaying on the multisliders.

Let me know what you think:


----------begin_max5_patcher----------
8867.3oc6cs0iiibc94Y9UPHDXrqcOJ08pXrWCG6GreHNI.FHAAqCFvVhcOb
G0hJRTytytvyu8TWHoHEKRV7ZydZMX2tUSQIdpu5TmaUcNme4suY08w+T3oU
d+Kdeu2adyu7127F8kTW3Mo+8aV8TvOsYWvI8ssZS7SOEtOY0cl2KI7mRzWe
Wb7G8h168gvigYu4tn8gahOuWeGnzKdHHYyGh1+36OFtIw7jQ9j0LDlCEHFT
9SN8NOJCrVfw..W.Qx+lIVCtyCyWC79eS+l1e9on86BSzDF7xEiOmjcUP5Ui
1pIx36+g2gfYj28mu+9cg5Or5B+i29V0OtyQfXe3OJ+5pfCG71DGuyK371n3
iAIgdAOcXWTx4sgd2GbJbqWPRRvlO5sMLQN9iO1YrhwVK3kwJHQrV8KFRiQz
tgQPKXjeFYYtujOeHz73WcJ5w8A6Vk+.zjX3wTfJEodypGh1E9ovimhh2W3Y
7lUAGNT3xuovGQAu+Pr9KRbW9kh1atDH+RGC+TT1mGme0fiRfRgnmOpozU+D
ir5xWS71vi6OGkOWqmnSII8T59fmBOcHXi4Cql4yd6KPOTPT3KjvT+hCA5ew
KvRJ4YdbW7lOFtsHMuJ9P39n8GNFdRtxIHIk3ye6sgODbdWx6eHdexone1vQ
plJs79OjRhVeS0fPS++qGijyQY2xiGi1FuWQDklJTWN6wIGbT8XiVbvnui8A
Gr7gkbIRbol27jbPd9z8AGUyToKwPYuYhb4Q42J+ysK7gjz29Pz98WghIwGp
+MOF83GZ3yder7Mepoua86b58m2ad22KYJRd+ofOUFsSB1sKcge4u9eJXezS
xk6IQlo.DH+MC2GHGne3zliw61UZ7ZdmOY4c1JYx2D9iQaS9f9AUjYPd6QGx
XhVkOKuM5wvSIkuVRvimJekSIe1.5Etz46SWD+9jPovJ4nn7MTRGQwUrEEQV
55WIpzHDIe4XMB1.70JgYLNTKECj8yb9w5jmUub+qkqgEEIhLUYEGr5Ov9sg
+TAQEopFRkZzSLnj5hxpLdLb+W79CaOeTKZvCBAXWwJjVqHDoELgP8Crf1AK
+hDQa5AroKnLbTqNg5zKb0G2l9gZzQTudh10UTm9hR5LpSuw1SGVKmMK9kUP
+gzRF0zz6f.y7kOT+KJ4Jlb6ZQbPShKZSZUihiZUZPyhaZWZQCSqZYZUSSKZ
aZWiSqZcbPyiKZe5hFnFzB0plnl0F0rFol0J0nlo5zNYWCUMZobRSkcsUWKG
4ZI1Ud+Jd7rMrfAg4RyJtz328WkLnZ4.a+8WeiVjeC4ZSHgPe0uXLrV7M95k
GYOFaKQaR9dyx3uVNOy1HqFIGVUErpBQqfL82+eI5jzGmO6YVm9MRNlu8292
O922+eFbL3IuLUdeCg.AZ88xwy2AM2h5+i1u4XnRGs224Ikc58Om+QtbKO38
Mlucue224A79U+JuMeHX+igeSzd3258cxO329K5aNI81jWw7oS9GpeEt6TnW
gukeuG3a8t9Sj9h248M4jz2V7K4umn9oDYfxaN6aR+r+sqJBM4FRT1XhgxhV
w3hxFXHcKG1AtRzE6ut1jhprcf9x1UghrwW87icRppKfGAlGmBWPulWzBpG8
HMwVUVGqJxBsHPTOdT2Wy31o3yG2jM6jJ5vq5HTpHHIZet0IeeFEqu2dMi1W
5C1A5i0J8UFVC2FknXAt+wMw6LFf98RUh92U3GJYVW9Fu70MB9STNNbk4YOF
tyK4CRiD+fWw2uQi4r5lAjsVE6MLw2X9lQlv35SFDcMMVT2yLgXA2eJCw9lf
6Uq4eGE7sCB7HLfF7H9noC7nyD10f2qRSEOc5KdHJXPvED6qgKnPaLDGztGs
nZQKjczhCZBtbva26J326LwY9N7vvUrPnCU.1DpfzeNxbgKgkvuiLR.E0e5.
J5R.nniDP4CmNfhsD.J13.TjzvyMI.kXI.T7QBnnzoCn7W..0.EQQXqKHImL
AnDYIvNMPMdD55BhwmDThu.PIzfQIvEY3SBJsDjgCGCTJS.9jfRKASBFFHQ0
N3jJ71DRywFjHyDH8vtXIA4NZ7P7wmBzv.yQWoM6tYpyfj9gR03dCjTdh5nj
rSBO9dSP8uFdKghjlc+Q43y8A6ebbc6Y5.aNxXg5TB1zWVf8oMwGB+RKqjYX
spSrINvlP.CadO3KBOGUwcOKPXJQBV9jsuXWpXadhbwu9KCK5XoaBO0rstp.
7P6eHKpYS3QnAFxhQkIpAv72+EuA6F.1DwLZpVW7PBATc3I4EBdZhF4W7f.O
Hcb3SwZ+FDn1gUbWgUHv+EBtdZWz1PMrhPfgArPeC+JxDdbg+D.r7WJ3569x
nfkXfdUOdJV6K.uPvxfj3s2OPkSxk4ZdStQVpXBNfXB3qG7Les9ThmnWVxPU
mZC8OFGN0zMYDLE5mD3WJrp2eZjXTg35OHBCjQEunLhZxbiTxYWbGbmD2Hw7
uBciLC3FCGIemYmfeGtW9RRfioujZh008wN8.TQy9Y8ibPms1F14ilcuNq6W
xDjJmgnKPmsylSA.rxYxAQt9P4TyAxQ45qGzQt2tREp0ctQEjIjJDvtPEkuw
3iaMG0d3jPZZO5bedBLQHDzUtEC8NUSTJWv6.YflJ9EPmHiZXX.SBs4J6hJG
blL1EkcdNQEYq7lFp.4JU.lRp.1Ep.ZmWA87RZD3byF67RLDXtEIyccIlXJk
HyqxsTyBcxDREXW0KXQhvDyA4Low8maNHjqBl7mRU5tt3mWuzwzKlkPdqToI
012aRWr2GjjbL59yIFKVKlU5cJ4YebW78A6RS3nb2Isjasu8BwMN0PfvsOl6
ikce7wUpA.XoioLFCKfBL0GaN2YW66uKkC.jkxA.p1xAf1CyxdZNNXfJo+N8
g3jFwAJpJNvnWiCLRy3.x0xh.GVKN7vtXULEFQ.vjESckM.IXWO7SOTcnAWU
HX31qJDi23ea3tfO+EOJDo9+tBCTv0vP5IcZ3bAnYEFNE7gNyC.pHJvGMVCd
1jL3yxqyru7OEE9i5b1MZWTxmKRKwO7vovzA+6HlPCUXTYxa5sGkBmyyg0rh
.ylcQa9XxGNFe9wOT75URI1xuwmp9F2+3SoY3X9UtXTQ5UBN9XZDSV8GTY9t
VJ4wym9P3o0AQOn9y+vt33CJqoTu9Sw6JpWzcNc8LKLeKHsOAmQU45w1F9Tr
T079sqkSDxm0JmEBNmb+G7NkbLL3o+KI+PCqBPfp.CkIViKT.gDU1RwUkSbK
ACQX.hOAPfDhJCtjeVHR94E.eNVfzWBwIXBTHDbDkyRSwqFQ71JHQT3pWe0R
GSJOSDl.DyXlyKjpHOcqV5bqV5bqV5zm8N7f2CxIlV1eBAVeL0flr7lLEENF
nfz39SbqnwTm.xqDRRS2QbhQVoYtheqZwbqZwbqZwrbqVLWmlEkER+mh2KkY
k38vwv+uyg627Yuy6iR7h1mD68Tz1Hu8wIg5qcmWvIueLb2N0uk9tbPNS+nW
TxIOoD0CmS7z6R95qeRkJjj31KbEHibkzspmpOuHD9jU3JXyQ8PosIgMlIAU
03b+VC1JesB9aDMQsilFuLf9r09TJGf8S+GO67ghwOO0Dj4BZe3X7SdYKtiO
d5Bi93.sF9TewDiknEAapjwzSJWP5A7oXsrVyZ9ghjp5EHBKc9R5cr4eDUYM
ErV3yXHT1EE4mFuIDngbxBRhfWQovmFLNKQuJ3rPrVf4TJISzfJB09q4LJDy
xtFahwbvBnpTo4tAq0LdNTfkLIEhp36hulKk46V0VB26ZUEi+xnZUob.zqCv
oOYM9ZlQxnT6pZDMoKDz75CzWKIKMq9BSaimpuNBOh1KMZYa2Tk5t2kS4m6J
hqdF.mPHuRs.tk06RM8jqsjx0of9KfrzQwuBz5t4iNAsyV4ZSuvy4BhlVn27
Wx1X7tPiWeTWlGZT.6DNRcnzx8VawKpsy0v0AKqWNU274bv1Ycn7.XZSHBmB
pIAQ0o33zFUS7snZdKpl2hp4snZdKpl2hp4snZdKpl2hp4snZdKpl2hp4snZ
dKpl2hp4snZdKpl2hp4snZdKplMTXRbrziPMEXHHknZBtHJLULgPJmvznY5a
zMqqbVh6RcHYlJ1HsURmZqTbn5nVnBgEFN6cIwwEOd57tjHcwW5Xwm5ovD4H
PdmoYEiuobqbcASoQDR5ZujQiSxr+DnrU2OkSic02TVLMofwi+CLX9uYi26m
24osSOM2T7n.mYDssdFBwSPuNokZDy3CXtwbZXMINvalcP0et4L4eEyXlgwy
Gao3ENWY9NM9rKv7qX1xbPd93KQqVLv0wh921ZGZ6hy6bGJ0ectTiUdt5kl8
MF34YesJB+U7h0TLdFWptfVqdd+gfMeTEu2B+mS.FiWkmDxvCptxRcouPTST
2tygWTSoXYBJRfNWiXffot3y4RoNBlUkglNx.4DYPVBkhuouf.hetKgQNWm4
fyd4mxcZCM60TRgyUsqIbxy0Zf0TVg.ctPbglRAKTmKmjSobEgqkCrIjFbsx
5AguRKIYG7jFvHEOzwRQDjAWOlkfJrCUelWeESkRmnVFwTKUDfa0Rka0Rka0
Rk94X2u1CsdXMyJBdMxGxPrhG7LgtAqg7mfNEFr2c2lFbtaBbY927EOHFgAC
rqg3SpBuHDcMU9RLL6hbo7PwDzJgdozUlND+wvu3knsk4wgA3LzZdE.mwU0X
Mj.V7DAOnF3Bvg8MXBa.nMfkxUIaMk6zl2SEsEORNPsxXvDrkyjl2ZuYce3+
0d3gImTxQowKBTEOLLr3gJEilD4j3WFBJ2d5fxfkvA1OfH5.MhIYQZDBuvch
GB2IoN7s2Jhh1WNpio+s5Wu7DXBI9ZAlDPlrwYUfoO84Wh43npGJknhp.jym
p9WJsNL8Y3+Kdfw.ySUhIMWkI+GklA794xNF6dyn3UmEUo8SrYSh.kMSRDbo
MYYF7lD019AedfabMlLO8Hq9BRUNw312pP+ph9vXQUNFWvPXW4XvkzgrbZgX
9ttCGJkf00Yalls3vYRCSWpMnIwT1vybMX+Vvwmh1dHVZKXJSTZ87WEYPo8s
jL+Ff36z8.ypldU8NmSFC2G4ydGOxUJSo.Yd6STDmagUhkPuFxmN26nJtian
5BrKHo4p.yIWkNB.tKEB1jTHHWapFjSVCu1RYD1hGfVty4ssNh6xRJ3xbdAB
l8SUAv01dV9nXhniNnFA9Jbip+A4hyl5THvpsLJUWnfHshlREicGiBWemype
8IkvedavllZHPDSP8fDgxCdS5lRncafXoIkfL4V+XcXBTwRugAA0esTBIRfQ
.rt4sPQWOEQvMOEAbcJBxZZJ51gI31gI31gI31gIXz24vtuArH5ZBUPxKpE9
9S71LR5aHYG+cfTJ15TPoRDTgpCxCI5Tp3jGhxjRrtqT8gXW74s6keZowPxu
QuCQRf0S0b.8dJbaTvd4M7362HEYcLNZqDOSy9gmBku0oGdp7UJ97qqr4z2.
AC8khk..HBA3YZ8RKhYzQMT6jde3EF24Tmh.ZZPxUo7iBaxB4opyqMIg7jsL
i3Iw0f2wlPeOHt5ROw+U6ojUpw+bvtne1.IouesRDrtcmPxZFprGJLHVEz.D
Ux3SYJQCbgJLBbe.mKM0mnMItq9qPrXLLpHMWUtPMoa0c4oc0qO6kgl74haL
aFaJ0jTe+aFLeyf4aFL+loqneCMEu.AaMTZsjOofYwSSA.mdq9e+Fa0yoNV+
uIHywzwzd5IlCsCFvtU.vuU.vuU.vKNstfJ.3sTgNutbbUePL7WyoWcr8fX7
ZJm4ynYWDVWw5pQw3MKJuxwgZgTsNaqF9lD6opw.+yaTLisivbStkXppmbCH
NgkTRvRr5b6LLQLkca9DiRhk.HkUh9MQ.SWhOyh50kp1+kB1eVM.UU6nOe5R
U5dDpL+3KEiOHE80Pk4uEoip8jzi3.WI13DY5w+DXQVY6BDI8UfH5kQwf979
NBm9lcJjiUmZRLOuj6hFt5EZCRFaGMuqRzSd9Q2JddUed6vzmiEQwp6NDykN
igE94GMUbcNiMhZxK2u4cv6r57PqJ10nmZM4slkup57ZqAO2Z16M27fqIu3p
3Imidy0zVFWaGcpQm5bzwNWctyIG75fSds3nm6N64fCeN4zmSN94fyet4.nS
NA5nift5LXWcHrEmBcxwv1cNrcGDa2IwVcTrImEq2gwFbZzYGGq24QaBzro6
w584jop1MWcp5nTsZ6Z81u5VmkpUEbsaGay1xVwHgpFJL2SZN2BAZbGzaLwz
5SmnZBlJHK8oBmaTFCbpnsNW0Df8nE+x.25vU8F4GkNc0DLwbcWuZ4JgpwNh
U+mWF6Ni0jLGAdNmir59okUO16fV0dnm6SWzpwTp0MuPqdVh41n31BjxxaNv
dG2pY3uaccq9vZ2J5SeAf915NWMCrs0gtp8vuO.nrR25xwvpT4by0M6Pr2Yo
l4YHqMyqVD8zsF50THWuRy8pxTQ2rNuSSEUiwg0F9k8Yo5ZXU0LW4Ziqpobz
xVyqp2bYCl9s2bvZh9s0fvdFoeZmwetyz+U2z0gqzklIls35Nn3uzdyEy1IM
09fboGmeoMsTcZyWPx1yUb9w2hy+s37eKN+2hy+s37eKN+2hy+s37eKN+2hy
+s37eKN+2hy+s37eKN+2hy+s37eKN+2hy+s37eKN+2hy+qi37aSMS84BAA1r
JlFUu3dj5aON86hTX90O8lTnb8Woc4VSDJaUUQ8vLB2Ibt2I2Tk7dnH.1ThC
5D3UNKksJnuLlVm.lqP1p8gRahUZnokh6YlxzW5C2A5CVUf2jSenNPejmA5y
ReeskYXzrSg3NRgv4lButsG2.8QeNli6H98bPeHWWCKHOSTHzYJD2JEV3MKZ
LkKFR8KCshFztgS1LZ5x.XhKYfa1EFbrsxKCBj1DbTI5nfPfEJvLX9DzCbHq
luhumK8nkLDPNLqTgcljd1BrCEXmVqMenQDspFw4K7RQ6kuqZmHuXqpm15VW
pUjVSrVZcftfaKH+CrhG56uZd5bRIR4U.OWV5QT8uizpXAAInBQVsxWsUGlv
j02h6D1NJv4qbnyzk9KyXXt53TIdQdQCpzwRTMhf5vSLZHvIpl14k+.6AfyZ
O+KL3iCqSdIQOUQYjn1WHfOfjWHavY0Xj9ppnF1UezHfuyMLeL7P39sdmJq3
o6cVYeC2LghVSX9PNOCsQ24wmhJ+V+aAfyG3J8zWIecbPVa7wT+on4JRV7H6
uwCNJfJlBW6SD9PRA1UWD91cPkNDgCyEt9AoMRwpM+cbPWoopLgfix50NB9P
YYqQ0lOaooZqIOcjBakCVUkOG38OAGGsb1j65SmBFY9hW5f6F0BADeM9MiV0
xPeEaUqD3pGOmDqZY3WSV0BABP8lCLIl0xHudMq0mJpW75jXVKi95vr1bjc1
Lqkw9p2r1LPc9LqkweIXVqDWkhMoihlMqgdlBmBrs2se8G1EGL6NMHFId2Yy
oAN3UpSCWLhX17ZfuPD91zlFn5rTaiNcXWvmaG.YZlUJfuli7w43GjWWAddf
6H.kuZlfASsH1Mffh3ZFI63.eJvAxbgC4UhY2fBtohUaEI7ISARflKjHucs4
FRff51bpcjveBPBh+bgDwO7fTNr21+XKP.iX1kZtESEDSABvlsUEGCCRB8B7
zZ8e7XvSdwO3s87Spiy7mB1ctTF8TdSVIsv2nacLHApp9eShjvFYPa1DknRp
9DOUFiG1VnSQFglXd0vmvlB4ojYSJhBBzIkshg4oy6RhNsKR0ev64dxiXlDz
vmslesCj7oXS4IfE2lxySaxnyWzKQzuhidojOpV3bRBdIh8ZJ3kbe8QWZ9Bc
Ih+5MzkLiNy4KxkHwqiHWlAryVfKwe8ue7oX57E2R7qnsiOCbms.qg4uRCrV
lBtYKrZ3EhLWmN4xlVCJBulMKGbYTyGc6JI6VoSurKGf3F633OuGqAAb87dn
FP3mW2Bbpu0meZOnRc2UBM0jz55wn55c80Ds4blJxbiNo9RNiXCrNrooPulC
P34FfxNA7yHBApCgpMH8SRpV31pKiPm4CcP90gNMEv54Vp8ovckKlK8HUAfl
ySo8rdZJrfSza6JtOX+iW037V5Q8I2vjY6Hq8pJQLPPbs9KOIQ8gCeEef0.q
m0iqFG8J43pAVOqGVMN9q+CqlFRmuP9vIuVNpZoJzluSpFm9p5jpYXbmuyol
3UZ3zxrbX9NkZ9KdotV5z18W.Alt1GHPbQgNFADxGT.hn0r448ORk02RtK.0
4jZ0ZhzEz2VU.ovbPkp+gekZCWMk9Cki5Wciah2YZpDR3VWkBU+.j9JG4V5L
8xbjd8oKG5E5B8RpbiEnWfgTo.nOCdWN4W51iOt0zuQfOyiDTWQdaCBvzLHn
tx9PVFrODWoWbSzasrOSCQiGEYJyLQibEo4KBNCUotvM5k0KAKSGQCcknaFj
AyAHKbjdsLa7rAxbW4LP9KBNYkw+NQubxxgdcgoPEgiVV44fhP3y7f.tb0lq
pdRkqtd8RbBvh3jB24SQaOHcHII0haFjax+aezZJUvDYQJyjqm908lSE2HuK
lkA6BFLcz6nYbvLPut5vAFsLjN4pEtr1UYMKzqqV3xwKC70Uia4nkA9hFEqA
lO5E5J9tPrdA355M9xgdcQeAqQ+FJQpyu0KNOHHKWqWXtZmtEa0dNVYxb04M
KFz+b37FyU+JXX2n2I1uMlqVFwXKBIILWsLhQWF3Kc7rjaVnWmsLZgvO3rkQ
ftpYY5nWnqz6BPdFxQuc4fwyaWHjSMEwWat65y308lSIH3rl+me2cYnQQnyr
QuDmi3oX4DwShyQPjtH7wQSuXWXhEKBMQZ50EIOHWBaeFSwTCxtxSvGQokHX
5gOBtF4KnHT1ImQctj..SrAq9l1c6.8rhKLzLgKP.UXzh3Jv.dVAFDcl.FNy
ecWfE3yKrfmK9E+5dO6vBdRfErq5bvvEg04Xmi6Nc4PutXHBl3f2DU04LeKf
bdjf3K2fUgc144kwlzhcVrkX4XxBZDkoLeDsyBVDKBNCjyanGuWBVlNhF5JQ
+7GqBsMRnASucypAgfsttHUv3h0yZfJPzQYsLXVmwbVK0yefUPtJfGRWFqHv
tF8Nw3sh.CLkhQaqHf.PMu2Th.NejiV.bX3wamymC5E5pDmrvkMMTgqDQszv
k7b3Txm2UWhNbIaPNuMJ9ukDjb9z6+qg6OeIILjO4GBNuKwNke+iODsaW9D0
apbGuYUVJZjNcVrMhVZBF4SfPgZBFCwbDS+J4KnzqasplOGL6CRnDeUp9HeE
CwIT8qDHLEq4Vr7QQWdlJKOzOIfu.PLuJObqk+nA6ebmdjf3fhohhb58X7g3
iYyMxuB+Rety5Bf51nzxN.vZOS8tBLKGk2odZ6pNj4Jc4vr32gMls7I0+sya
BlhIx7ASCykc.WKOaJxmCEb.UHLuRPv09QymMYT4CSc+L0+3lWY91lkIyZR0
J4Z0+iCg689aA6O482BeJ593caWUujNBmBwZD.4iE9lWQg.leUUUAaT0.kRe
bLRtdPC3jL7PsJhX4SGtK7oq+3bgD5L3O.JDlWI+lPnpe96erzG0GPfb8iVR
0DN27QQ9luNJqzm8j7guQgxke5H4vTSyPFGYV.K..Ho5CWkpa5O66i1+ovim
ByY9v9HHyfZYRFPE4flzEcezTsZ+u+PTwh3ayK9r5AmssiXBn2mB9IlJaCcj
TsvvYVhlC57zU7Mxrb0vTxc31baSVALQfyU0rLmmIkKjk5fP9EW.pXDIT3bQ
5Ux+14PGPAI4YRgq9pVjjyEJ822Y8U1+nKFM5SGWb0Upcmi35JzTG3l0zaAa
sjnK1eN3jMY47eb24vhMY7NKlBC4Lhwnf7Agu5RvYbPbL9G2OnQwEZmlKSAO
yih+zmCF1f.fj1GXTVvwXjQx.BBg34aP7mOFFNvQgdV.q9mwfEkoqy2.3+Ib
2t3ebPi.gzrRtQ1JTXh+JUNyTUHaoDw+60ohO0G.DS8.87S2Gd7OKMWdPCS0
xCflciJMRgpGwvh5DlzAwQiAgpQQuj6xHLF1OcIBO0pZ4jjOtUCxmgAd52Q1
WvpSAeJb66krmRi6eePRxwn6OmXB+PgA4prxkZpB17GxpsQOFdJo70dbW78A
6zwPI7XNtl+1IAOZJGFqd6Emp0+zLunelEpnFFZnoFRQod8T10JU8L9Kg69T
XRzl.u+8vyYFXYsDZ.U04PeHUprDvzAQmRV666SgPNTnOwF5RTBjeYtzZMzv
dwN7hQF06+P5cVtEUTXTksv1eMXDgtrhy4vvOAxeMGSYTFGKPBnUDjfmcDLu
hJOgHnt3cNL3iJnqYbeFRJEgHcAlaC9LkQq4E9XSO7kUcOGFBhgRDDgkPEhk
AXUY.4yOBhGODrZW14R4Ypf0N9EnDa0OdDo8kpHhdyTfpJ5X9WVdI9g.t73y
0.kAdFBrrALtErPWlLRKBTWqBstMJp3TATbg+4njAKI736C2Gbug7KLjx7dN
6RQOtOVhe6h17whDl8RajQS6zLyVhy0lTXteaJwZbdU.eQNuBdwOwRZddEy7
UpG3DAESgT1qlkrB+W5yrE6ua1M7jztdquFW0l2BYWdSskpWeEbxnP2i3TCl
hnZIFLJRfQ.rQ6JDuFxjqZ84LyhWdkBKYWLDonruU8g0sT7lK3JPgdQg8Jko
Pyqx8Q9LCmZkQFl27HCYcjAsX3TVnDps5LNNypuStDbMC1z7IDIWeTdIJgfT
aeIV.EXoK9ltu7HMxy6IeMWeUGIl5fmNbJI9oSewp82EK+jVEeQsfM.5ZcAT
8BeR+32QV3241Lm9RMmrJjcRJuPMDlBv6PvG8Bje6e9TnWh9je7nGTJ06RGB
ninoEkATDaMw2mSk9HZXzj120LZRckSif5JZNpvWAwoeY7vKlXMFiA.tw0lp
k+TWX8r.VTbWAqzdRTO.reL3SgODe7ouzhzXhjq.BnDypLh+0rJXNQsC89.N
GlEWAJuM9l6O+vCEhfWJm8Jq.Eyh7qr67wiQaKu2No6.h7UJyMz65Gozo+oN
Qd203KLsxoQl6zfBeIegsO..5EWZU0lTlloDB4ijXQpnq7l4XmtCeTB2zzR4
5tqAFu93wkBlUqXIEOVb0cNBKkW7WkQGUl.G8mLn5SFN4O4xm+6qRZqocL6a
+IiF1SF5viFxub3G68Spb4VntAIZDdRTWdRPjc3DLCO5of4kfb3ImQdC5Igc
hakMFOIWFS5ANdnOInqrLvA9jtZYbCn2feRLGdRWs9+pyiuz6WoB+xFmgvzq
caBxPseaiMCuSCuxmI9wZUd4bkokBjwvdRtHOgMFqpQnNvsLnmDrTB4zD5Aq
kuDUkgifYq4DeAjI7ITSTaPLtC22Xyd3z.7JdnQZQAjMWZAfHGFjYkY5g+jZ
kyjMVOITaZADi0SB21SBT8QYLrO3vA0obL810OEo+P+fwKMwc5+LZu4O0tOr
5X3mhxtecSZaUvwMpCN8ljyGM9.8SLSKLY0SwRdw8miRYG0G3jqxsEynskbZ
4pSdyu715N5qYGUE64uRexckdl2J8LmUre5Vq+jsVyoZM63zb2aq+vAU9fAU
j0yRtnz+IfqOyw86j+1y7Moe4ZxnMIXI9.MmWI8JmR5e9jLjbIou4QxfxgjA
l+HCdAQ07Dw9BCGxMjASKkNY41Iidk2GtlyGc8jxOJC3B40QqHua4xwnPVk1
CswVVYmyMidlWF8Tx7HKrbj3pJu5vsYwh4YgCbWskaEClypZNT37xbmxahwh
.KleDNSgNkSDiDEVL2Gbl.cJeGFIBrTdM3NE1RtLLRDW4bVvcMMtjmBMmiBC
e.TIWDbl7c5X3OXBrRdF3fbGGysfdkWAca.YbgTu2YpQzoCAFWS0aw1a+Gu8
+GfxG3SJ
-----------end_max5_patcher-----------
1 Like

Can you explain how you’re patch is more accurate? I am missing something here.

The results are more consistent, I should say. Whether or not they are accurate… is another thing. But they do feel more accurate as well (when comparing ‘real world’ sounds).

The main difference is analyzing exactly the section of audio that is relevant to the onset, whereas before I was doing all of that in the Max domain, so being much more approximate with the analysis window.

As @rodrigo.constanzo explains, they will be more accurate for a simple reason: doing very short analysis windows bring their range in the ballpark of the Max slop. To be even clearer: Max’s slop is variable depending on the SVS and the load, so +/5 3ms is not rare - if you S&H your address after the attack with that slop, and only analyse a small window, on very percussive material, you can be within very different states of the sound you are trying to describe. If you do consistent sample-accurate S&H of the address, it is still imperfect, but you analyse about the same distance after the attacks, so you get a more consistent value.

A good test for you to make sure you understand: take a single sample (the same snare shot, no randomness) and analyse it via both patches. The ‘message domain’ values should be much more different between hits than the ‘signal domain’ one. I have not done that myself, but I did it elsewhere and it made a major difference…

1 Like

Ok, here is that test/comparison. I’m really blown away by the results actually.

Here is the old version (Max domain, with slop), run on the same snare sample, in a loop:

The centroid isn’t great, but the smf is a mess. Surprisingly the loudness is ok, but it could be because I’m requesting the maximum value, and that statistically stays the same regardless of the slop.

Here is the sah~ version run on the same loop:

You can see some tiny variations in the histograms, but the stream view shows exactly the same value 50+ times.

Absolute night & day difference.

edit:
What is curious is that the loudness reported by both is different. I’m wondering if the newer version is under reporting loudness since the window may not be big enough to capture the peak peak of the audio.

Next I’m going to try to adapt the bit of the code that created some ‘gestural’ data for each attack (waiting a bit longer and stitching together a temporal contour of the descriptors).

1 Like

which attack detector are you using? overnight i had a new idea (devilish grin emoji that does not exist here)

1 Like

I used both versions of the patch as they were posted in this thread. So both use your same onset detector, though there might be slightly diff tweaks between them, but neither uses the newer ideas you posted in the other thread.

Curious what you have in mind!

(evil grind full on)

This is it. The fastest, nervous, crazy, musical relative attack detector. It takes the slow fast one (my original) and the tweaked median filter one I optimised, and take the fastest of the 2 :wink:

Enjoy! It even rocks on brushes :wink:


----------begin_max5_patcher----------
3853.3oc6bs2aaajD+uc9TrUnnvtQVl6x20w8hatl1bHIMHNAEA0EFTjqjXL
EoNRpXqqH4y9M6CRQJQZSYQJETTCaJ580ryuY1Y2c1cze8nC5ML5VZROzOf9
CzAG7WO5fC3IwR3.4+ePuoN25F3jvKVuP5MQC+Xu9hrRo2lxSdd3LG2qQDcE
zwlJHLFg0P1H7.UDYfdVw883EFZfi00xRLZdZ.MMcwLpnezyOLsW+69iQAQN
EdA8mx1Jb9T+Pn038UrLwjzEA71tWukESPUd4LkoNyI0che33qhotoh9hA1X
fRejlN6I1j+ODx.EzexpxmeziXO5ucPGvAdCcBGWEHgqEj30X63a78x2XNea
nrUrsazzoTlXaE9NWAXTTXZh++i2Uw.UVGGT0KV1PmoB157XemfrblESS.x3
j5GEVfSz0sGn2GoaqxXBE4isC3TpG3zHpCHL5IfNrMG5TZYnScCfN6s.5rXP
mAQa2BcZFcHzQZNzog2JniMxQ2X2BclVcHzg2.nir0Pmk8NE5Lv3ND5T1.na
KFvZvM5XRT1sPmFoEftD2nYzuT0jfJ2GaCyKy5FJ36msIxDigoOkSkxqfVgJ
rMPhlhXfHgOcCVUI+i1ETL50Pt6XKdW3XMk1gCUIFCLANTkX1JbXciXf9cyG
yn2.yMst1uNlCDZhEGRr5DCGfbaCfA88GLnhM6RXPeSfAi8HLnY2kvfwl.CV
6QXvB2kvf4F.CpZ6QaCXsNDFlR8Pi7CRownzIvTiS1.P4guzVCUMwVh02IKx
nL4v5JaETNJHBnbk3jVk3Do1Mfy79P4MgeGPoSLjNHnthF5LT.EJMClMMaNL
OJJdpCu9FMD3I2OvK5.RbWaWg6p6Mb2VgsXx8HtWpCrk3dMtbRXt3KHbcNmy
tV3OwebH.vUCHpaummzsUD7MemyxoQZYOtcbUqnd4Bs1LdlzZ7La+T5FDXkT
vd35DFeLM7KavjDMGQZ4oVuKOSJ1rops7ikvTw5PikfiDcfdne.8Sz3DXzdA
JbPOmYyJj7AEpBCR+XTbAODyRxOTjjZdRwzO4mUe87TchgddJzsmGK3zaMxV
HBqYh7nwgy84cEQhfv8QYMXFyh04boImK0Eaq2z1dI2B5AiciBDcI1VYs6W3
AtXAod9oLnrwUX33fH2qodELZBZByng9gEscVJaO5Hm4AoWUR4BOnx7G43Rq
sxUpLcPuww9dQgrNQIgHK4LxAnlXKoJEYFdIBclUQkAUc.vqIyDfImmLzIlI
ikyfPxxLMJJnbV40KfNJUl8L+vvUPwznY0mYr+3I2QcGFAYN8tZadNIWMOTj
6UfUgzqRb9TYzN0IHPZlnbyeqSnOLcFM0WHBHJ4YJlEcRhabTPPI9UjympHG
OX3gK8FeuzIbBUTY.Jt+rLknd4RYO+wzjzxok5LNobJqYDARZ9P4v+qRoSmE
.bQ4BT53tJNVunA0Rou1Zw8nrR1eY90nqu5TpEqx5KpIWScMqoO4UfZYxLXv
h2OVrMpxvZM3RsFXyo1piEqahJ9HKUUwrU7YnMrsJLNiUOFDwI+IeO5x3KCu
LE1nhuSnbuJ8kINzIA1+RTHJY9LZLXSJvGrIhJUVzvEnON.M000INMjtPV0i
Y+Hdk82ErF3YYMPL0I.wzcQNy87iPIKBSmPS7Sf2R.shKCQvOOKZ1B9.Mzgt
GwTwIn+Cf3InW49LAsFfNOH.wKSBhYuK9STuAL5AiNm8CmbxM2by.NI3TX.r
KMHSdi+tI.0lEGMFV8IBdcTLkhRhFkdiSL8Tzhn4HWfGiAVMIM1e37TJxOE4
D5cRDf.Qd9iVHZIH04gd7M3QQ.fLMAEMh+O+xqeO5WngzXfaey7gA9tnWBiy
BS.9FHNKkjI..OT1Rr57bV+3BY+.87Hno4lvOEQ8g7iQxYBQjLpHax9nnXQy
bnSJq+Gih3iaOB5zKPrwY4UdPcnvRl0C4Gxa9If8V3EnMAF8Fe.uGRQySnil
GzWzHPwQ+9Kd2u9au+cnye8GP+94u8sm+528gSghmNAznQvr5hFyGFv6CsMv
bwNgoK.dPzFu5me6y9UnRm+Su3ku3ce.3Ezyew6d8OewEnm+auEcN5Mm+128
hm89Wd9aQu48u8M+1E+7.D5BJqqQEMwcf1i3hL.O8noN9AI47+G.wbBzEC7P
S.iuf31k5C5PHGjKn8c+BRQy3.acZLmaghuDQOE4OBEFk1GcSLrNCTZz5hXQ
CrTN2G8hP2ArCmDJmS30AfX3hTnFPq7b+Q.EddPTDLB8mhRRYE+UmiTHXrxw
XUELB89KN+xvu+D9HO3u+sSpC5SNAGpqbTejyXJ6kSY47qfnNJdAZ5gxDdCa
iXHlUxCgkY.FtNi.e3b6YY0fMGE5LdIPGiv7zlEk.Icr3efEcLmUB+Pw+m82
ImfbClOMYAjiOvGL8wgfsUPg7FmE+KYQ.rh2ztSXdFOAcCUHS.TKlxpHq6yI
ynC4E7aNCM8HzeILx.h3Cu9LkSQW+DO+oGBE8H38GeFNuDWlNK5ZJKm9nqge
EL0koel8A+wTI2k24YMpOqQ8eBOcjewFjIpOeLEpzLJ8ZQC6m0pPmLO+yPLn
qTGggZ9E6.WlRC.M07hjU4GelDoKy.xrKPvkrA6ual.qk9PDPnu4LEzxtLkK
B48WPqnOq.GiEMAh2oExvmfXkbUniWCVF75cTEcqk.gngWqfIniWxPeFI34g
v7AWeZUL.qBeyJvWU7viKwCHAS7isAS73JYhG2LlXIA48nBMzRpoTt4gmfES
bIFjqteB4niJMppW1z478cJ2dxCbISk1KZ48iB1eva9RovOzkRUZuDqsFJks
XMT0tVIqB9+EmsY9tGXYSL9.PVsdOLnaSW9YiVloo3h.npemf2xs3AylU2Z6
4zfke0nZBrfF2L8GoFFp7hZg8p.6dNeCu+Q9h5QMUlto8A8F1GzpsOHSTjxl
5.o4SGRiy7Nymbhy0DJmSAkGh0F3y1p7LK9tbYDz67mNeJ2IKJ05FInhYkhr
wNdUbiSTUrYdgSSwJ26qEcuDaezdW4jJWJ6x2RV0iSf404znQq6Vok7Naocq
.r+AV8OW5mnkEEVIYbZ0BgRkKC0UpHuo.7vAgAUmqysB3sxrYqRBrArt7ppR
IPT6kiYkpkOHcQXaYIvzYq4MS9B09VbU9x8NN9fNyKtY5O.9YZgIXXgtZ16L
2WSL2atulnXJNzWCt2JI7KbYayzNoQdCqjwMZLiWyQ9PrDmVKoMuxY2EdkSO
9Q7nY0EJIR6kegwIvOUMJgnusHGVWbLEZ1M+lWsE.WF4DdEGi2tqicclU3.l
JNWshMmsKrG5zhbQQXTaOXrQSWq.TH8Kmd6pB4MLMxoB8Fr8lxv31fgE1REW
yHsN43wp0FC15gYbE2dFW22FKvp6u4WDm0WKMruNY+vjpj76OAOFFNytJoXw
HcUyt5.gQO0adL2xNz7JUcc.r26Z+x0VIuso+s87dME22giwJhXtvVb+wz0T
953jbI65SxUOKJj9mSx8eNI2c6I4RpyIYFci6G2QGgqLHFwhn0vvfeVtDU85
ND2rixQL74PPnW7Dcxl43PMMrB21L6rcvKclrenaLkc6UQmwsIcRdUVVjQnC
EsN5ImgTPe22IOllC8CwGwNgC7QR2rKKVAGjy9f6i7BsxOhTxcLedMjubL5v
7tzQkOijBtGOqk3z9z8jyvefd7tK8oclxi3tWsRXgtG7pcctttKcNsDCzvVU
srrul7NsQG5cZi8p2oq6FwGSCjWEdTyuli38PvCQDtJSyRqMtU60AGvdZ13H
CXeDBQ1hflCapzknwlDIUZ6iXmgGEiDaira7cWD33aBFXtOBblAKisvNBCHa
BFrWBkLgy7r6PL.uIXf9dCCjN9QauGS16gXHS3sKMYfDauSC6IrVmG9Mcefz
HmiUFII63.XBq+2.DTEy+B.ocPvZCk8k1iaVj52RAxNryW1TMJZsRXreeAZk
B76FXvAqX21wdiZ64MVcKo2I6BWRmvtF2bDqn2nueHy7qQDCqaIVZqMe2hV1
cHhwbAC+QywLK0uF0xrkechH9trQgrUX1FG4ol+Mvvc1WCIxcT0py8Uzxs5V
diu1gSkIryW73xa8KNvnX5+cNMzcA5aw8Q07U5FAuGts.RtWDloXrZWXERDw
NdTlgCzSihYQshJ5ov7eyhXwIwD+wSlAsA5ooQyhBhFufEbGPUtIJNcRUm3b
8iD87cY9YxIdQ2cziYqLPbgCTM5DPy0Iw0wq5u1i1eG3NNygLhcdYrcG8rfl
UvgpVcl60jKTwTbyqEKtSs3BGy1TXwl2Ozida9IztgbIu+WkVL9gIFUZiaPf
MWLJt4HD8rmaNHvqQYWXKvjUcarDYV+xLy7CrQNgq1WwruzGP0oisQTR+9nD
osnj18PI1khtcnj58PIrdaQIx8QIs1hR36SNY1VTR49jSshtGtATRuMPOlur
ueJUtP7ojq27VSIMwnAj1nZJqrcT1rIBxNgoyLMc23ssXvy1QIRSoDda0Vsa
.kraAkUrUCHjV2H2TZJow6jQj1cw3hFgupJcAo0T2.RucC9ajRTaXEuQlY3N
naOIJWoClSZR2aWmSZbaOJE2DsHhQaHa0ahrsMVyFtIVW4cGbaKIsZBbhaig
JlMlI2MvoV0voR2SZNb15CLTajonVYNZkc0pAHMYQx31Xg+3lfd5psvj+XbS
ozVuEilL1tMre0jIhVwPSKMdqIT1ztKVsXSFBn1JSNn03kXr0pl5MlTa6VWH
MZZb7Z3mv6RqDXFLhrR.YrRvXrdfXTePXrZ.XvC9Bgu0VwiV4GmyTmaMxue3
YQzPYDf4FWdHXbkeHquW7XpW9nPnXT9aqOrLW4CkAKcakiqKMLsT3cXwJgkp
MAavdyTw1RQS15OZY7jvNmEnpq51vdSgdue1fyhR2RLbAuXVMKWpKoQT0I7H
NQ0jnqweiXpoia6tUoSbo8jEi7CBxYnhAOTlSZ6MN1wye4kGRx+3bYhA7iY+
JeqTD3vqFIqZlVV.x0ux2VuZY0hXqfs4xdUorm8FjDdkZ4DNVFdKlEhQiYwQ
yhhyiymAp14kedZTNilY9N+h4Vs3q7nilIEKdP.MP6hKyz.0JEB+MfmUsaSM
qTmY2Umo3g6BFudoSZD5krH5o2Cg9Pc97i9+.DQqJ6.
-----------end_max5_patcher-----------

Thanks for the explanation. For some reason I thought that everything was in the signal world until descriptors~ for previous examples.