Onset-based regression (JIT-MFCC example)

One of the things I was trying to do very early on was to somewhat emulation the behavior of the Sensory Percussion software where you can train a handful of sounds, then play back arbitrary material and it would return the nearest value.

I tried doing this, with tons of help from @tremblap and co., by (somewhat mis)using NMF to classify and match material (link). It was a long and winding road that I eventually abandoned because the response time wasn’t great, and before the time of @blockingmode there was extra slop on top of everything.

But now with getting some refined onset detection, and finally getting the onset descriptors stuff working reasonably well (though not perfect) I wanted to revisit this idea with TB2.

In looking through the examples it looks like the JIT-MFCC-Classifier.maxpat will do exactly what I want, so I was eager to test it and see what kind of performance I can get with sounds that were not as different as kick/snare/hat (i.e. different types of hits on a single drum). Unfortunately I can’t make heads-or-tails of the example. I’m somewhat versed in reading “PA patches”, but in playing with this for a while, I can’t seem to get it to work. It doesn’t help that the numbered things (4/5/6/7) are all in a row, and don’t seem to correspond with whatever the text is supposed to be communicating.

    • assign a component to train at #4
    • play a few instance of the class to define (at #1)
    • copy the trained dictionary by pressing #5
• once finished training, put #3 in play mode

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////

Sooo a few questions.

Firstly, does this example do what it says on the tin?
Is there a more recent and/or cleaned up version of this example available?
In terms of available algorithms is knn “fast”?
Are there ballparks for the amount of entries that would suitable for any given point? (ala NMF’s diminishing returns after a certain amount of iterations)

Thanks for the props :rofl:

This looks like the wrong version of the patch. Check the other thread to see if you have the latest version (alpha01) which is supposed to be readable. Then if you confirm, I will help you though it.

I’ve got the latest version (I was just checking to see if there’s something sooner), as this is what’s included in TB2-Alpha01-Max. So depends on what you mean by “readable” I guess…

Also, on a more topical note, am I correct in thinking that for regression (and/or knn specifically) that having more dimensions (i.e. MFCCs) is better than less dimensions (i.e. three or four descriptors)? And again, is there a sensible point of diminishing returns before throwing the whole kitchen sink at it (specifically in terms of latency/speed)?

you are right, this is not super readable. I will make a new commented version tomorrow first thing and post it here.

As for the curse of dimension numbers and stuff, @weefuzzy and/or @groma will have more things to say, more wisely.

1 Like

ok this is a somewhat tidier and clearer explanation I could do quickly this morning. Let me know what questions you have with this one (there were wrong facts and wrong code in the other, sorry for that!) and that’ll help @weefuzzy and myself devising more learning material.


----------begin_max5_patcher----------
11237.3oc68staqijjl+9TOErc2MP0c4xSdOImeLn5owL.yhY.Vfc+2zCNfV
h1l0QlRKE04RMXL1mk4QaeR17FknNVhLjEyTorTAT9XKRJl4WFQjQlYDew+4
O7gate9WKVdSxeex+dxG9v+4O7gOX9H8G7A2e+gadN+qSlkuzba27bwxk4OV
bys1q0T70Fymurp8ipV8bY0rhFy8Sbe3xluMqvbicts4qZZuOr6SWj2L4oxp
G+XcwjFa6JkjcG51jLIW+Obj9mDxcnj+C2yTN07EO+9e8mYz1ud62cy2VTX+
Vt4lj+C8U9u9geP+iaA1cqJ9h568U815jl4+q42WLa4N60niuWKRMcWYpoyK
n81qwgoWur+dMFXuFs+dMgKMcTjvzq480qoo27F5Z2upoYd0Q096aTSRuiqj
UIVoTV6O2U6OauCZ2mW83abfa0y2WTeT8Nx96cRjYzw065WSDmteYxaW2EW+
tpyetnon9iEU42aadnQTaU0DJRVV9aEGkMpgQlzTxvZqTRuHy3pwtntrp4gj
7oSMJtI+woI+wk9xRM21wSwl+ASk8ACjvXy5gYqJmd2LiUqhlWR9e7u7+9mm
c71vnCiBLoEEx5CEj8aD3VcGXddy3KXnjEteZxxpjmdR8K+j5WT+T86KqT+b
mPiDHzH6w7H0Xy.iPol+MsWC7D9ffCz+cbm72XNwbakO7s+myUZX9xtRJgal
OwpJgsv1dM4JBngEk7CxW8ZJ1zc4VUGpn2NMlMnTxaqmueOc2mFxHXBkxwlQ
ZoQQgw5uqO1d6tutrwzf25x14NA1kIgqK6ukzPDF2DA1kCj28SluppYONOxA
1mY8LLmIsKnwXyWf6sOi1u2iFqsNKZ2Z+y2DJ32EBvT8VnKD.ijmcKEfSwvW
J.BeIsV.Gz.Zs.XjOVLvdm45X608YRKSnE3kYFQcJo+dMJPVwmLqHu1acYqX
eaWt2U6jkEFi3MI26KSZJYUirrjm1wl195uDOXRaeixXeMBiIV6aBj0.WlVD
euc4.s2ip0CNUiDITuMRSjlkcHP1A7dUlIApaerqxpu9K1JLKstnLvvLqWWS
hv4pWObRYCOYMQDOyU2t6UasT6jhpl5u0YebR9iS8lhfSvH0hbDbu6kSlLja
o0mppdwWagUlxdGW6Bi0W89mL26ag09L6+PYiQLvIdTVTOzt6MB1JZgFhAZv
r92AqPsZU+s5bh0UN2RU62zXpHPcW+sxbrTdGgCs+xC1lQ3s9q0xFrtKKPGy
3lCsvZw+ON0Zz2Wl4oVObZO2h90o4gzH+z7l70GaQG6bYBeY5uEKbmdgn2Y7
RImniuXQh52pymz7y+y+0+seViRdaibrq.Phs5I3dW0ibvyzs6KR4wmsi654
ePMi1rhOWTurbdUml0GtIewhNe7G57HZ35WmW24bWzeTYk8inq+n5hOW1977
0eZdsp61n5qqpsvyWEs535ul4SKpqVUZZJ1OTMv8Csegq2uiL6YSXPFAytkl
onMHjZL9wYym7ohocN8eEDsnnprZQcwRkxcdiqws9xSKdHe0rlO9v7pFyFWn
aEZYycb8GxmTr2GtR4hpoy8WpKym018t4w5xoyqzMhsfZ8G295TlGsyxy61Y
L2QU9hc7vJY.ErrmKtT0IWs797Z8HgyYYR6EalOe11WZ8yMq3gF2kWTVU8cn
Xy7E6+h0kO9TOO68yUW7499tMWY4GWUYu5GU5kMebY9m2FsaxmMyont8W+Wy
qJeNuonozNDPPquncACOsbR87Yy1p+Zuxm2wUlpDhmT7kxoMOYdQcEFT2d4h
VgnaVOJOs7whkMa+YM4Otb6O4U1GTezp6cJoero34EyT8hsugshbptZjcMos
0m2mosuy7V9jOkTlT18h6Zl+8z32qAt8dLiVqZtii3UGx3dcqs24A+Pq0dmg
i2HLssOQemmBM40pNSdUxe.GJrhHjVmjLySJkCAVLd.AqdjoZRtuWQJ7ABST
HhTt0OyPChRo8hRsdS3N7mMazh+wMksugzFOTni.RaDmt6CJauK.u2yKKjP1
rxkMOrRMgwlXD33AMPlvv18hWLnILVVufltGDNyXnDbBKQjHSRUdXlr9X8Cj
cerEtvnA0RE33vV1OkDZy8X6wa85EH+pMALcPswPgREecQcxenDm7SI+3enj
j7mSR+SA1iB6RownrgjrxhJWJdPus1I+AxsIJGKa59Q3aSryEETXLyZOCyGD
FQwgBpc2Kte0CSl+7h4KKdI4WVNeU8jhD8pfVl7KZbsrxrpO2F5+KJfw.xKU
VC0+g1uNyueudwiJbIgDVmWnVW73jAmMQjAx6kueuPBfyK+VoxGrdlElLt.G
G0YlDNcHbKkAB25582nhbFbXuXCZb0ksXi0UX55etOnQB.Z15YUZZOWT07p1
XY0zhu1YKbFEfy1dFM0QT+HmPZQNFPnaKGheS3xlc6YVY09Vluokpu9tALqA
O23UqqAIa2p6XFryMpWxn9FAMfcvsBBvVAg3yVABXqPaZ0asBs8G0LLC2Jzh
T9sUPfHWj5wVg1fCnQjTlGaE5UX.SGwmxEse4C1Jv9TtvLbCQtHK02sBH5HF
CKXe1J.Yu.6SrfGCVsHPsf2Zj0KshVQeXxEdsUfgNa1tkNceX6Yaci97Ml9Q
6Y47w7ll5x6W0XcBn6g0cPm4viylee9L2IJr9Do56.H1bJE+vl163b5op0k8
PQ8KsK7ZY9yKVdrGobeIwDxr2IL6AKfY8lOOx8GZvqW9zQDT78cX6JXwr5zM
KV84GlLQsXU6ZVcqbU0smVTW94kIXecF7tyb1kB3TRu4JAI8DcF7qAMMJ8RB
ltF1JqVrpI4WdnHWevxKagwMKvmvEpK+PyRUyU00UP4ldgu.SqzGq+bJmbxB
ls8uISidL+3PDN0FtKXd+oezHGuKsqG66AfoE5.QPuMOJSt4S9jlrART1de7
wh5jlmVmvkkSrl18ECDjZ2sGQpYmdY18v.smH9TbyHh.KpmOQGW2ZsCsM4YJ
Mk7GZrc++VkEfJl5vmjeb4pEE0KeZdcyuqcecMKW0jHWckUFaLhQMfCm6RbO
qYJ5dhQnrwDilTVOY0r75D6bX9RJvMGkMATwtHldOBAooiYGzM31NX+67UOz
kkRbKSaLTWDEeTsAG43CFxvYXmL0CYix9FA++8+8+1Z5JurZKCWE0+spD0+o
uA8Dj5KatIcfVozpS98za0OP0la6g40IE4Sdx9cj7s4qzmHQYcwl2vO17T4x
DC.k7T9xDZhYO2qTMsk+c1GawrUKMsjOmWWNW86+pIrJepT4Oi5luuci3cs2
1Pe4Oodv7ukjm7PwWL27cI+S51h0sQ0KU8cOeRYt0lj4QsQTTxWJadR8blHw
V+s1IX8aYhgj7pot6qJ4e6e9u9WM9W0dycB0Q0m3hBxMvx7JkWFOTVUt7I06
1fCJgiaMn5umpeDSKWiqpGR+DEU+57u86R9m9pxjYodXy9tMs41iWvLLnv0k
EEIOM+KI533Zgpi1jLQ0Fern41MMZ8CpcadVopknCuIEPVYZHJLUeWNfbYw+
mU521zBcCR8kW70EylqF+9xSkJnbgZR+j4OXuakY6oFXsJe12VVL8Nkfveqx
INo9BTlDL23l96D0q+SIljbyH+v14z.XjmrgfwVpYBisyGvbwOKdOZgi5rkF
sHCnpfDZxz5UOa0RTyZpUaT5J0panHeoxGzje72i+S5wk+N0UxUtY74bGXdu
xIUy8+vJktzum7mtwyfUlAjX7dcrPRFSn5KOoUOUxPy+68cuS3BCC5qLGuUb
bJZCcus5z32RmV2K2dllmJ2d69uoaLl1cFjL6TfoqGJ9tAD8W8j4yrwR6+dB
5NJKCQtcG+RWIdfPa4iUJ6.FM3t23tWWy5gxMZ3EOlO4aa0B6MUUMZnRgXOc
0tA395fX90QOax+37YS6OikWeNct6pVaVyFXoh0Qr4tybL20t+wNftYHBcmL
MkP45eiIQ7zTGjGT4EhkaNXRz4i7B8MJujY7ph4B7f9kWRuJura6KtneQb9H
tPdahKNSnLD.oE76Zok8luJOuZVSoxcDsizIMEKsNcnCq75ihBIECxOAXG+5
zeZMwjiCYa89LEWHNlnBcMGWtliKWywkHMNgzAoqgVAAFnP3CJNgXmswOEwt
XSv3B+fvE94KtjkdP3h3fvEwHhKaux98yGg9WEiaS6IZGhqqGDicSf.gtLTn
2AAGS1ADCnADCVSLBdGCr9.AECHiIFr0pw7dhE059LZOL42dOvzAOugyS3vZ
..Lbj8tFM1Jd2GFLjAFLB6zoNv.5rozzatLBe8VKHPAFF4f.Fx4Kv3rk.FXN
LGSoAKv9gFUnu59lWO0tEIH+Dk8GXBGrqVF1OQaNvVFMMVaY3POXhgFZ77ns
kwHG1n4EWj4VL8whW7Ub3xjlrWlYS269YcbJC11AOpDP9Spuwir6iGt6aiRA
d+Emj828WV9XU9rQlMqdJuwajalZ1UcBriwngooXLBPG+c3F7aYAueVXioLb
p0wDtDecG9utC+W2g+2LKcvBGOcnV8IOKKSJVScNrAoNGBOZHqieJglgPgBs
voh0nENUBj1unQCZUmWMc9yZMwSBhwEVhv+HIJsQGwB7VAZCgbJG1leQPAd2
u5mLzBFJYoOaac770EMgW4AVZ7fR+Y0jSAy.tl8cWa.2lUBzAUvj8uip1b0J
blvIon6NI3k0+U1fRWxzHBuBuQ7tXFVlAyHtLKZl1SqPhPASkTXKhUD6JGYC
RhWCvYMgVaDcGMzHk0kS5ftRI4Wz5gN3R6SELUPQznBZHCT0zhI3jeFcWZBx
j6blemsW3S3GoMKuHg4CxAsBVbPKbSVU+40av2qgI53xipsvjkSPYCiR8qT5
1+qaCsSXunD2DgRyjkItSn9Ot311ByIiLnOqf.tPAXK+7CunV6OGqCmaFazj
1XCfbbGIZayxKwffl.nzVO+V3jACl7myyeWNYMHcqhYQknWwLUOYd8K8PUkz
QFvjNmMLddHGjBeyhJ7p7wW5gJeG6f0wwWA1RxIaP1oDihNr5mCGX4JQ6NvZ
vIOGHr2BLX8O7RRvbl0oAhszoxv6YAlDSHU07xk83RF1OXksvRxFdRR5Et4c
JQdPl2SubMu6bc.r4c4Er0c51SEN7RitTMt6z+.abme4ZauEpfZamEeKZDgQ
5EaKDgZQisl2gtnQZjslw.Gf4RKQiQgEtvjSV7kGVdk2fJ1B03Alyi9hV4Oo
QYMV3St5FZbK6Sl5FJR3UVKWBlQl07ENyWsBngqszqbmt.ZqvmbmtjeHiHmb
djW5ypb.TwBGEq6GtrG53Al4QlSW.c7P3ywCwALd3Kjfe.sAuwf7GVNb3k1.
EXYE.6SyDD9gLctuDIHzCX9bbHyoFvsLRvycKv0e.hO8Bh.sBxf8o9LFpWP6
voMemUVfaZhPKAAtoQ5IgwH9ooIfZczmlnwGjqCdqU.c1JuVgOfZHD60VA3Z
thOaD3CnQ3qoLwnCnQ3KWqwGus+KtbKcQxRuQF6ZlTpaRFR6OIC4WxIYXJOa
qjLDekFAuljgWSxv2ZHkpY31fcFWXGgwQfkegznJTO9yujfuiEpSNU5RgGLr
XHkhhtiCL0bZfHdnNLPI1k+NFKooCF.CjrynHHMjoRFiI2jlO1faX3StWDU4
thlRwNIvkMYLFNSxFHd+dumAKagYVFOWdrQ9263LIiRwl0G3lMH6Hi6uvmIY
xPiTVWLFNSxvW1YRVKbYiiF.pfxXKSxxvJuxz4OlTmKYXatjICUpj4vOBxtl
TwfAX5.Yw+6zTIqElrtQLb7RRvQYpjERmvTdvrgQVvT4YYB8iogyMrsALA+Z
F8evfFFcMk9GfADbrAGCeVlR+36BNRIImuozOMfTqQKMCJOySoeYmT5um.AW
3G3yUQJtlR+8BStsH67Mk9C1lv51RQgq.vLX9TKnWtIvhCrZ2c+ASFCQbs69
ZGIBGcKxH2I4qcre382mDS9oF1EBoVTM+.VBDIxVBDOfKAxAUBLrE+Ptr27q
V3BSARGkhHhtSSuK31prDeNEejDc56cwp03EX4JVb4KOkHvJu3QILLJgqcjm
azURb6t59OQ2LebF3sUCcL6H4K1PRFwDLJrQJPqQ+gOwirXiFhwnPiUTfZlC
vlrm6DPLWzYuYFtxrItHIfXqHi.J+CyhH9G9kvpVQRcYiu77hZnr6ASRJJTa
CiCtrqkQvFERoIzaByjuMYVQnEvb7sRDRiHgkIGbAGHzB+1EBSNXqlp18178
LSNjFAIA6URT3JIJbkDEFIBLPPe+SfAfyTbjOaEfS85rHfLGZyWwSJaNf843
AkDCRETTDjmtjLfINsvqrBPZTvMAxCj7F7Sq.pdJQFCD8gIW+E9pU.NU18oK
NvI0CMVH8UqfDADgCAeH1uwmZRDg3yoxvYGHcXbZIkCrW43.v0eaeZ.GKhB9
2.roSTLvBHm.JtgEuTbCzlFsGJtQdho0kdPM9Itow1eSicZaZ6vN55ll3D2z
j6uoQOwMsvyzSfIVHdLPrPhXfXgLSzvN0LKjWWLM93m4+BjZgtep2nVHpI1R
WSsPr9oVHwEL0BQs0SwqLKzUlE5JyBclEP8XNua5xxgEU8QV5xFtX5ca3xFV
ECGXuwXxxxBX7huEnYKvamgIKa.UJYTaZ4QMQOGme1UArQxfiU1hTFfLWOBS
dCd.UFawKq6MmUYLaXyeJhMBCwjTfbHANpTByBHUdsFqrQFM.kPxkcFT0hWH
LPkPZjl15bcZqOT5sH7jIrLakeaXwsKyrVuEmHD50zV+PTKI1bB5rKu0sUSP
oHvUSv0vlUNKajxf83gAQCoq+HVVG2yFlob3YQlq+oAGpXBXTki.cY64uCux
.5yg.GWK.OX5fYJy+a31qTXaIFOxHx2vsmXaAWP0E4xK5E.zEyfpOxSuXYON
I4vlSjdoNmXKRAVMjcQOknCt.qAxuPmQTlJ1XtB5DhnK0ID6hVp0FATS7xlX
66hYRnpijKyclVhnem13vaNMKtNwVR.Y2qtvkScb3cLjcYyuwcwLnpirrHhl
ujgCqD1LmuUzZvnAfwtfIRHGXkALH.X735bOv2knO3CB5N84dbWvnoWN0VcN
rRZ3AqQSLZbbfG5.fc719dBHThXqKNzA2FZF4x93Nb5hNdGBvocvvwzocXTH
kbjgx8zGYiQsLjGDYqkea4KQyXoCIwEUUwj.xbSsHUZFLpahlEiplF+VCVo9
xRKOtsxAPQeTdA6VgCrftQNzzKzMxgZOb11cRc3xiYbsSponPCTtMRcXCVQm
S8AbaTcfEXsO9Ea8HDm0U8K6HqNsuiOHiVjB5AYPwWzGjgCt.qARhtkUy0Kr
FYVWMsuHWU3G4LYZGBN9Hp9wuO2wYBQZolcBAXwjH1J6FHR3Bvd9cafJ.Unj
3Zm4Us9PiTPsweoW1MrvEzsNMpp5FxvcbOqsUwo.EqnWzUPuV7BrbUjU0MZK
5FXhxyAWU2fqbnHMvEcCWLiacjffjmOEci.ZCyARP2SqK5ZtgCqvowYM2nup
LQd0SAq74YgIJOEnHkL3mgQfqNINLfds5jLnTCmcs5jLDFQrUh3ytpSRPO5Y
21H3p0VCezyQ4waE9SEzYsFcFWOWZpKeIICi5c6XndJ8gsGmpbXBHIpJaPAs
B3zFjCVgrgKANhKXnxJGYKEdWKVPNGKyxtVrf1wpRduWrfxhAdB+ZEK5ZEK5
ZEKJ9qXQRnb5qzm74uDJm95UEUnDYqzmEU.n5oBx05XUbUGqvxXnNV40hEj.
pJB2qUSKnzdsNWBR3m3Z5Eyq0zKnt3H7ICfyA6smO4jct7PDKn9pU.Utf6Sy
EbnFv49zbAmcHiHdqU.0.N2mt6wgZ.m6UMUnFvY9rtEvgZ.m+tudHxfZ.m4S
yErzCQrvWlNYfMf6y0nxfJWv7o4BF6PFQ7Vq.poSlOWMBibHtZ4qUivvwv5.
XfK4K9zCbZVDTCdnPMZQ84.BUdHEXXesXDJTiVTe5oEkcHXgulFgBtvSyd+W
niwwP4uFb4Vlh8c8VFRqH6Z4V9Z4V9Z4VdPr3cc4V9ZIF9MThgIu+qvvWqsu
dsoQCdQME7gLgi1RAKOMZqsu6XinikJhLmDskcXVVzVhqY8LfldhKL38nFjc
haZ8fZ3S7zA8UO0wm34C5qfpiOwVc6qhpiOwSV0WIUG6ooDPwv9idsXT2Swn
tY9iOp9d8TcmlaSaYFZ2ou0NqmI6Ka+V+VpUXSSQ8GskW20NOONUga0Wc8bc
gxdmPBYzfDKEeIn8UHt46uNb2IqPFm98j4qpTfpl2RD6rqyA10YC100DihFA
j81248JNbq90a++M4B5XgDylcT5C8f.La.mmYvAccjsG.fsW.naueihgtc+w
o4M4euUHyPqoCHVa+wcauNxx+Tw21Nt4u4y4yV0VDwWabbW1kcOJYmOJBxiR
24iRg7nr29akuyGk.4QEu82p7s2WSe6CNYu8FLF81es38HOcKrNL9Hjovz29
vK9Hjpv729.LVL3y9F8Ho346KltYScdStLrG6lKKloIS5D5NMdxFMimXtIEd
4hdm9f1+Tm295+cTmDoTMWpubppEGHtTYtWbfr+YQFy96zhY4e6kDBWn+ee4
6DSZX0Ylie3504I198mbqr46.6+aQ+Ai9PKASrdHIG1g40rJ7X5cne6dtJpL
rtm7rq6YIcHX8Nd3bseQxS4M9Vh0xSGzdMFslVK6Qkr6axt2Dcm95gxYEetn
doaA0sdUbS9hEc93slTUAQ+575s735FEDX+n09FbScwmKae90ybeSdsp+1n5
rqps3yW6T7ku444SUqTeUYmCIoc9X8W3Z5TvHInVfqi0vcyeoSz8MI648pk+
O4S14lacz5l4KJpJqVTWrrnpY81Ur9xSKdHe0rlO9v7plkk+Vg0Uo6140eH2
tmH67hq2sg+RcY9rM6HQc4z4U5FwVfs9iaecZcZ6jxc6Ll6nJewNdXqGJ64h
KUcxUKuOuVOV3VaOY8tcLe9rsuz5maVwCMtKunrp56Pwl4K1+EqKe7odd16m
qt3y88catxxOtpxd0OpzFa9n1arsuu7Yybpma+0+07pxmyaJZJsCADz5KZ2e
imVNoVuhzt8W6U97NtxTkX7jhuTNs4IyKpqvvArWTa1Yod19okqt2ol9wlhm
WLS0K19FT8t8k.yiQMPiENFCUuTcWADhfAxMSDdDQYgzr.RsicqXbolYDXGK
uEdBHGMxIBwr9HAf5BCLsGGXh+hh6PNuCR7WDzEIwegEFeIrLmC.l+JMhX9q
PR4yo3MU.NBR.i1mkQVUFLMbzN6V3k0+0gqxfxK6pLXWLCKyfYDWlcoV8HDY
RywefQvpdDRVjU8HngFobKwdPWojW1LKtCtz9TASETDWT.sZZwDrlrmS07.M
2R7yorfUF3bRaBacziOHQYJXwTYfKXr8nClxrSNNLJwiyxynRbSDr5ZVl3Ng
5+3BMOqIgUQIv7XhCCW94GdQs1eNVgaLFazj1XCfbNt805VQ1fLxJV.TZqme
68GE.ybd9mZO3nAqPnCPTxgVzqXlpmLu9kDRnnlUli++I1JwDZTHB3fgWkO9
RBNTqDmamnDainKF87hdoMX0OGNvBk1ErFlKtipR06+fZRyvUJP6VJuFdOKv
jXBoplWtrHX0NgVrBYkpFdRR5Et4cZari.z7d5kq4cmqCfMuKufstS2dpP4Y
EIkGRi6N8OvF24Wt11agJn11Yw2hFQlxpfZ4ugZQisl2gtnQZjslwvRP9ViV
Tmt3UBxuKpHxtRP9ay3.mTBxmdkf7uRP9WIH+dwBdDvG6ZoBxolN1MY056b5
X+.FOvmXli0qzTZDTfUnVY9SKi7.l+tLSmiO0LmkqfIDNZABNmdwCMs.Alnu
7KY3gNPRU3zxzWm.hkJMdIVpzCjk1BHwRIfZczmlnw7yJVSyqDHG3B4hWaEj
HfERw3CnQ3qoLASXLYdz0Z7wa6+8Kewr2bLbo2yZTW7O1aV+RQWxoXXJOaqT
LDitlhgWSwvqoX3aLfRmUN4SA6DtroUHNk.K6BoQUfd7meIAeGKTmapzk.OX
XQPJEEcGFXp4r.Q7PcTfRrK6cLVRSGL7EHYmQwOZHSjLFStIIerg1.8HqB6g
NyUzzu1IAtrohwv4Q1.Q62687WYKLiffkDKXxkZdjQoXS593lMH6Hi5uvmGY
xPiTVWLFNOxvW14QVKbYihF.pfxXKOxxvJuxzYOlTmIYXaljICUhj4vOBxtl
TwfgW5.4v+6zDIqElrtQLbzRRvQYhjERmvTdvrgOVvT4YY57iogyMrsALA+Z
97evfFFcMg9Gf+CRYl4KY3yxD5GeWvQJI47Mg9oAjXMbvEVdlmP+xNIzeOgA
tvOvmicJulP+8BStsH67Mg9C1lv51RQaV9fSGLapEzK2zWwAVs6t+fohgHt1
cesiDgirEYj6j70N1O796ShI+TC6BgDlRHA3k.Qhrk.wC3RfbPkk6zGdwOjK
6M+pEtvTfjQoHhH6zz6BtsJgw4JJ9Ho4z26hUqwKvxUr3xWdJQfUdwiRXXTB
W6HO2nqj31c08ehtY93LvwtZf.lcjrEaHohXBFE1HEn0n+vm3QVrQBwXTnwJ
JPMyA3R1yc5GlK5r2LCR+vCv2VuWoeXqHi.J6CyhH1G9kvpVQRc4hu77hXnr
6ASRJJTaCiCtrqkQvFEJoIzaByjuMYVQnEvbrsRDRhHgkGGbAGXJ6JONzEUr
9IxeuyiCoQPJvdkBEtRgBWoPgQh9BDz2+zW.37DG4yVA3DuNKBnxg1rU7jxk
CXeNdPIwfTAEEAYoKICXZSK7Jm.jFELSf7.otA+zJfpmRjw.MeXxzeguZEfS
jce5hCbJ8PiERe0JHQ.M3PvGh8a7olBQH9bpLb1ARFFmVJ4.6UFN.poSrOMf
iEQA6a.1zIJF3.jS.A2vhWBtAZSi1CA2HOwj5ROnF+D2zX6uowNsMscXGccS
SbhaZx82znm3lV344IvzJDOFnUHQLPqPlIZXmZdExqKlFe7y7eARrP2O0WDK
jKh3c7JDqOdEZMgHbIxqPTaoT7JsBckVgtRqPmYQSOly6lqrbXgTejkqrgKf
d2FtrwTwvQ0aLlorr.Fr3aAZ1Z61YXlxFPkRF0lSdTSnyw4mcE+ZjL3Xks9j
AHs0ivL2fGPkwV7x5dyYU5xF1jmhXCuPLIEHARfiJkvr.xiWqwJaXQCPIjbY
m9Ts3EBCTIjFo4rNWmy5CkaKBOYBKyVz2FVb6xLk0awIBgdMm0OD0RhMgfN6
RZcagDTJBbgDbMrYkyxFozWOdnOzP55Ohk0w8rgoIGdVj45eZvgJl.FO4HPW
1d96vqLf9bHvw0BvClNXlx7+Fh8JE1VhwiLV7Mb6I1VvETcQt7hdA.cwLn5i
7zKVpiSRNr4DoWpyI1hTfUCYWzSI5fKvZf7KzYDkohMlqfNgH5RcBwtnkZsQ
.0DurY09tXlDp5H4xbmokH52oMN7lSyhqSrkDPp8pKb4TGGdGCYW1jabWLCp
5HKKh33KY3vJgMs4aEsFLZ.XrKXVDxAVY.CB.FOtN2C7cI5C9fftSetG2ELN
5kSsklCqjFdvBzDiFGG3gN5WGusum.BkH1hhCcvsglQtrOtCmtnizg.bZGLb
LcZGFERIGY3aO8Q1XTKC4AQ1Z42V6RzzU5PRbQUILIfz1TKRklAi2lnYwnpo
wu0fUmurbxiaqb.TwGkWvtU3.KnajCM8Bcibn1CmscmTGt1XFW6jZJJz.kai
TG1fUz4Te.2FUGXAV6iewVLBwYcU+xNxRS663CxnEofdPFT7E8AY3fKvZfjn
aY0b8BqQl0US6KxUE9QNSl1gciOhRe76ycblPjVdYmP.VIIhsZtAhDt.rme2
FnBP4IIt1YdUqOzHETa7W50bCKbAcqSipRtgLbG2yZaUbJPwJ5Ec4yqEu.KW
EYkbi1JtAln7bvUxM3JGJRCbE2vEy3VGIHH44SE2Hf1vbfDz8z5htfa3vJbZ
bVvM5qDSjW8TvpcdVXhxSAJRIC9YXD3RShCCnWKMICJ0vYWKMICgQDaYH9rq
zjDzid1sMBtBs0vG8bTd7Vg+TAcVqQmwEykl5xWRxvnd2NFpmReX6woJGl.R
hpZFTPK+MsA4fUHa35ei3BFprxQ15f20JEjywxrrqUJncrpj26UJnrXfjvuV
thtVthtVthh+xUjDJg9J8IY9KgRnudUQEJK1J8YEE.pdpfbsHVEWEwJrLFJh
UdsRAIfphv8ZozBJmWqykfD9Itfdw7ZA8BpKNBeR+2bvd64SBYmKODwBpuZE
PkK39zbAGpAbtOMWvYGxHh2ZEPMfy8o6dbnFv4dUSEpAblOKZAbnFv4u6KFh
LnFvY9zbAK8PDK7koSFXC39bMpLnxELeZtfwNjQDu0JfZ5j4yUivHGhqV9Z0
HLbLrN.F358hO8.mlEAEfGJTiVTeNfPkGR0E1WKFgB0nE0mdZQYGBV3qoQnf
q5zr2+U4XbLT6qAWqkoXeWrkgzJxtVqkuVqkuVqkGDKdWWqkuVegeC0WXx6+
xK70B6qWaZzfWQSAeHS3nsNvxSi1B66N1H5XobHyIQaMGlkEs02ZVOCnom3p
BdOpAYm3lVOnF9DOcPeESc7Id9f9pl53SrU29Jm53S7jU8UO0wdZJATLr+nW
qD0Gdknd177oOWrbYBxW0iZhLyFY1lDxQR5sfTi2aAo1ES1iSu9mRv6r6RN9
tK01C4tro4UrS3VcWzd6taR7wCrGu54hpUseskMEO6hr3aVLK+a57L4V8OZp
yKq1TcueSi4zd.AGqxZyNaApuwbbVufvs5WuY3e8qqVoyzTT+QaYWd8hpFGQ
iGyaJRHGkzAYPoCoKuO6s5ri2uzgCQFud88qd3gh5WRd9gISVl7KKyedwxjL
0zrGkUgd.hTjPqYPcUq9ADQ1KPXo4fsydpwAQdX1pxo2owgYkSJdI4WTup40
I+LCo907kJEnmWrZQBeyeMc9WpzYZs5FVNa9Wb2.YqOny8Lup4o5hkOMe1T0
mn96GdXyGzlkJlbCXx7U1jKf3oACmIZRFROlvDYszkytFLR26fwlbYyKxl5p
Q+ZYSLy+BmrTKWVJv8IbJjm.oy0Saur72JJqrXRZJAsmI1Fg4wSw1otckuRY
+fBKLSjurJegRio4EeMcNykAdtYxD80o4nAjDF0dd9S9tSSyr7lkruNMaHyA
iYm1XI7Eku6LFF4Oe3vDq8PKigk0a+GyCI.7SuX559ti63Y.duc7fNxuX9mT
SBWVsXUyN67TfcdTOcdjkQuPVWzn814o2bV02HGPWiby3O2soyY7ExayYamd
hRrSOg5UoU3yorK9so4SNNay8LR5n8dLqSlgy1iqZqcPZ17IZ8Q2Q7bf8m1r
a8Uy.ULS0pRxSraDSRd0zD8hLS9wo0qdNIe1iySluno74xkESMW0xFQl+7g5
4Ou4QM+0+K0b4KJ+sj4UIKmjLqbo56tV08+bweZmdCyNFIodPXKcjZwWhUiQ
f1yL9x2hthFA2hcct4oxsyd3aVnVHfByM6b0V1mcIurifFQs+bciS+cOY9r4
01G.cGkkgH2tieA24o.BgJy5yUMF0Bh9T2ab2aKvZ4j0SSOq3w7IeaqVXOyE
YWERqh7q6oc8AYs97CpUUsdK09K0k4yR9GUqmp+ERea61s3tqZkD1zByWuYc
o8ruCtqc+icvbi3C5NoxcbJW+aLIhml5P72f7hdeGWU1qgS8sXM3pT0+jBHu
43cFfaohPA1h8866KCpC+lGd6Td2hAe+t85PhWuKuasMu.hZnWg1PeSaGoT.
hIm27aZ6H9df9TKNu0w1+1e0HHuZ1XzIA7h9tVy1QMwa9Muc3izWdHgG8WMl
B3cSGCgHLlDtWENTupTQvdS7f8lXg5Mw.YrbSlS71sUBQLmHFCvCht7HzinP
ftTeXthhNUu4sCS5P9ly.8lI9XFPPuZoW5zPbv.OFtxjAwhS1n7lBlgfLHS2
kMFdtXj6HCMNgHivqRBQXrK6M81eS.5SzwnKIfH6MFBDBH1M4iwahCwoDNeL
dSPbJgOFB4bHCS7wPfvjT9CJ5gGq2Ddn2DZrdSCZ1KaLdSPL60kZGd6uIH5S
3QYb5.l7+37GVBQf.6iI6YxCPp2CuZDP0fSQuF4kc1Pd.pjd3UiOcuZ9fJsz
wRYhM3qZzzaoC9pvAau37xhf.MCrWzUnfV9kvKq1Exqde1EOxdMDKDe21BMV
85iwj7Q1qAMaKyK8Z9IyjLEhxkzO6myITuFzZjOYuYrevaPaN8teyD++lwTu
f2fd06YCzn9e+J8CdiNc3M5jg2f1kVuf2fdy9Aug8p8CdC4HGjiwZ6IBnao4
QedMbP6y3XrYYlWEE5qZjkZ3PVhhGe23Ae27vAwdwSVy6l+Ve2i.DO7FyyFK
HlA8UcRfX+7tAcV0iBBSB0ogQ.4qznXPGA83bN52D7Cw73B8CHyCS7SX7.xE
.LyGVZvP1GS7XLcInfUh3EyoXNvXqX7GZA4NB6j0owjcGbXGm6zXFT2owGc.
aAZWMGispEif3trejeA8pIdQ.FI.tnridnDwC1ahEr2Dn49QR+H0.6ki8ibC
5jE3Svd2R+zsgrP2wwbDnUg85fszFn54KV74h5kta27Vt447e0Fq+xaM+YYk
8OMY9vM0Eetr894lOwjEKMESZVUaCE+u5RO1addtBMqVU5FKMzNhMj8+tfie
cNM7b9WE5rEvzcT8lGxWMqYaHHexjhpsSBjTcZHjRyHXgI0DPYoH11o.x5zx
3ikU5dbQ6yZRlg1ez8IdcROr4G5xYuCLu0MbUqZTee1HbyypVeYq3T2g2s5v
cJUf6tKuUmkQnbRlISWjDNy7aDIii2JCLFglkNAryernuF18O9P4rYqadc4L
l1Lj3lGqymVtIAqb8F75wNg5+j2tyeqyvg6wHsO1lzO40+1qer1mhjgvYFYD
pSFQ+apOB+cOUd0iVHiHWmhL5zVZ9h40sJWpGMa88upY95N5ZZPbMO6b.Re8
M7ss1ArQwtkmS.RWl1Bi2lLULEJo5kuUIK0y7e8C++AXxfzsF
-----------end_max5_patcher-----------

Yes, got it working!

It’s still a bit unclear as I mistook the sprintf classifyPoint entry JIT-labels %d as being where you set which drum you are training, but you’ve now made that “automatic”. So I guess this is where you set the max amount of labels you’re going to have?

I’m going through the patch now and stripping all the bits out so I can try training it on other drums and seeing the response time. On a quick initial test (testing center of snare, edge of snare, and hitting the rim), it worked well!

edit: (edit:)
This is the timing from the initial onset detection (fluid.ampslice~edge~) to when a value is returned from fluid.knn~:
Screenshot 2020-04-27 at 2.48.46 pm

(I cleaned up the patch some and got to these numbers now, which are waaay faster for some reason):
Screenshot 2020-04-27 at 2.55.50 pm

So pretty damned fast! And not too much slop.

As an aside, is there a way to get a distance value returned for each match? so if I play between the center and the edge, I would get whichever label is most appropriate, but perhaps a number associated with how close it is between the two.

A small coding thing, doing the edge~snapshot~ thing will sometimes return the previous frame (an issue I was having a while back), which @a.harker/@weefuzzy suggested the following as a fix for:


----------begin_max5_patcher----------
2864.3oc0bs0aaqaG+4jOEB94TCdQTjbuc5Nm0Ar1sCV6PwPwPfrEiiZjkLj
nSROGz9Ye7hjLkrjrThxklGRYIMk9e82+KjN+44msXU18hhEd+Euu3c1Y+44
mclYJ8DmU9+Oaw1v6WmDVX9XKRE2ks5qKtvtjTbuzL8NurqtpPHqVHNxLs5i
9FFtZxr8xDgT9scB6abwBu+W4R6BkquNNcyk4h0R6pPr+RvEd9P9x.meHTjZ
RldIDZIn9Ijteabp5waHSvgIsuTyrP2WlHujKKYyyVbUbh3VQdQbVpym9rEg
614L8YNaQKa9Zl4Awtndp3T6Tv5oxE2FWseb8rg4JVVp3284FAxh6C7Wb3wj
EIxS2GadR1I+94UjjQejFtUTrKbscyZ0V0xGDhHTfVRA8M+ieobyGbPvoT3a
RxVeiHxQvozU6Dowo6xEEhTYnrj3qWNRbU39D4kWkkJKh+CCI.UpitV+pRRr
yE0Lgg9+k73vjZNXSdbTVplHZnJzSW85TVHDCuQbYFymHMbWGaVYLpjK8rXg
hI2WrJLWqoVkXdCnpEkYYIMWpdeIhqjkKuKNMskTTlsq+Eyi2b8.6cUlZwsC
8rMqTb49T6pWpLJjWVDdaSosLLIozqs4i+9vz3sgRgL1pBPf5EEogJF85h04
YIIM3W6J21wJQJi70h6hijWadQtFCpOd7tJinE0Z4n3MhBYy4jgaJZNSg7aV
gtyT6WU5DeoTrcWhhKZ9AZfq45w5hu0X9V3bqy1tUY4W6O5B18aoEJW1BO40
gROs8Tw0Yxe3ICuwLovSqH7JBUDlPgKZl5VkoWVtmLyK71r3HOkPWA24EWTr
WTrz80jDmJVmsOU1.snIlJxcCcfchfFGcL13fvAFmepiexQHlvlK3fZBpV36
med0fKdfR0FQOZEAIWn7IiZFGoMeS4tKze7jdio.rRDUjCpBSD5yBXv.ePfJ
lBizNlxTjRvmGoza7f8HZXfAEMwZ6owIcnzkLBECn9Xe.CAvPkXgujbJgC5k
V3DFYQw8Jh2baQexI3vlPWLNYElbvAiQOskS+BGzLJbrO1d3b7hw4bDPWRnP
tx+fhXDHQ6bfMPHXvCDBwYkJfUW3ZCglFItuOikCw20ni8.raXI85cKnJx1m
utRMWYI3AavOpHUx3z5zc9xAWKOEiOJE0johxG9IoBM12SFUT8vOIUf6kHJm
rJI0E5DQhtzlz0kgRYd7p8RqtyMq6IkbfJS0UgIkg9qScribGN+.wY9sUF8H
JvQDsQ7iNptABH8VdypvzMZ7Dy+NToNLP+U5fFtRGXmU5flOFuN+lNY9fdY9
qRxBkCx0XtgqCHK4t+3iUdkP+gYaT2E3Mer85qUJsdz3zdYZUfmTUULmVWio
3kX2ef9W3QHODcsKSa1WSLRqLnMdPoj3XzHrKNPOX.F09AjSEjdhsh2uny5m
vI.NMfqScHfqdZKI.HGw4XFkigLjdJNm4S7o9bBSY1yTOskknJGo9FKoazKi
f1IGPvdDuKxnkSfdjSW37q1buUO1pwCZhoUCGZ0rgiazP+MYncCFL311ZsZY
6bnD88QwYezjh0kePjt25FTUNeSQ1pMWEmjTywtH9U9Kkxi5dZ3JcPbeHjok
NXHlhBLiTCHD2P118.q1jxhhCLlW9AHpOwLhgvDrQL2ZanCuKk8o8M.3Lfuc
jZJXohotQPoaJaL.0o51c4Y6xxq6PxRLu9yuWlsIOLJtLeGPinRWTZwkqVsc
ItK1pDnwU6w0BsVY798qCGRAHRD57rZHUorf.pQrv.PFyNxm.PnFbpR40Xab
fOjZ7jYbkSK0tMD29nHA06qP8RWqkDMeqZb.itTkZIxpKX.fFwy8k1XO9TBD
ad7HEtA2Nh.M.JtaRiWa13kwoZeEQsREyQv.61prJPTlOF1lUOscZsNrGS0Q
Z9zzXkUahxn.BiYGcDA11XMPAtZ9rlTDn1Q1mzShsZoXxsUcJzs+kpTcuOFl
V38Qw13UYIQGh4Etdca6NrVGXjK9Uju1W1m2.46Q5P7AUNlC4P31pRcwNNFA
tco7KZ7kYgf98eQdoYafgAJa4qYsb5ZTCukDgBZ+vNg1XIbk6IwZenLqn3la
pkH.0m2GmnwesN29Tfw3VaaiGq22wA29I0caza6o0ey1b7gbwNEtvrXQ+4O8
2lZHG+.nJYISjXNJv2n3HbnRFNXHGX.VY4YhYP8C37xQ.9fFzr9Lng5jHrQq
zVwlnAzpzIb1Tc9eMM4z4fXhaAQPhMmVr1ZvlJ6Kuw8ovWekj2S211+8uEkm
sQj9IiHZ.SbBfFXHRP.ACsFGJEBZVihXJLLd8DPrYXN0hKf4knl5oHCh8x6M
wmRX1tF83fd6119QgT2QB7voIVdv1jsUAkI6c7nGjk7fFruSjJtMbPS0SpEm
Sa02tWJUj9.VrGmm.qVNCJGM6j0uVedtuhHp2EFm9iQRUJCg5fEGOZ9Ish6h
UdnCQbGYoAK8ZO7qmDZB8phn9GEIwQh7ImIxHQVaAu2K.Y2E6N12xyn758hn
oJqB5ioO1osiVXMOjspdt736WKymHJxSGAIjh7e7LY18rB87OyhDEOUL1HS7
4jwvmUF9zPHipYsyD0re6pgIltvZNNn4S.o86wqkOQvsyJYpumZxWcYa7w0Y
6D+XB0R7.hd31rat4njdprE9T3poZDLxDyW7xY47IUcTqlbBzshV2eg.Os.G
eJaitdlIpTvpxnoPa.EeyAOpjuMNgjWvrf+OaOwAK8Ll3zmCuUbUV91eLUn4
gsgAKIujB5nv7adSp9tm9FSKAFh4p6xvD6GZOMavuFDfVelL0mNCyHdlgloA
Ogg9r29gYuQZMa+PGvJmrA8yhkxWKunM.P4claNdTCVKY6S0XvVaBFHISxIr
DOzt7iFLes.abz9OE1fsOOhUIBUHS6Q.91rraVLalbwo2L4pUUrIfUGoEG.T
HR8ztzIrm184cjPeGaCe3zGLuEr6nS2QgQPoS8y2mOwEM98LzM3wSSOiX2y7
wYz0gwM.6NKtI2XqI6y5q1yKcxRI5TINcJzc53VG7mTiKVo3Gp2H.te4UBwb
qxJGQYyZzusg2GT+kpZDUu0R.6lk2zOrlNLpXMKihVZjOuLr4xFN51h3ivDD
uYbMMHIbtIqshhhvMhQkp5yvcQv4VETcX6GOZ.nJJSeqztnyQOig3eL2Ssld
GiSK59sSXrMcy4N8M642Zu5uuMYu3MvIcBG5akHs79Ib.Ci6hbMmDXd1coSl
BOI15LRg+0uENcBDf3D68AgRwXj02AAUIKM+D36xEhG.EZjd08TCFnSAb9It
OnP1RkgSl7X9ff.a29B.JhyHJC3PNY9ow+sHZxzGsNwMXc8OfxHFyM88eEII
Y2MLId7seivA.1fwbQD6EMgxfLS1n5q2tO4IiAP+Lx.liu3cYIO.Sj5tWPT4
0Pr2oG2PZyBAtae9tgaS5QIX5Cr40fHf.twFFwHAH1HuDNz56toOjnfMLXaZ
ziYUvmKVKhuc3StqKah5xWOPbfY+tBlaKQQaVLAI+IMH5rhWeENHuL9As79o
qLx4yZjjBQZTwqsHHGDxC6605NFSg.p8.i7C.7x6yOERNYQHOONrxvcmBGzo
YTuOTl48dcUnKls2egTb09jD4IOfk12aUFg.sM1N.Sw1u.BAJuqgNvK820Ep
4iFTmhutCBT17JTsLk7AcnQOvR0QLJyliBt1K.i3XN6kWdn+1k9Z56Kvc5t4
7soeVS.szxTCItTHo7SKOff9uHF3fwDHabecS5oghPNGXSKU4.3WdV6A.yeP
Abu2zs7m+03b4279sMYOH2Y6Wctd9Cjy4e+7+OfdefPB
-----------end_max5_patcher-----------

//////////////////////////

I look forward to hearing back from @groma and @weefuzzy with regards to the more ML-y questions, but I’ll add one more to that pile.

Is there a way to setup a centile-kind of rejection of outliers for training data? Say I’m training a region, hitting it like 50 times, and one of them I missed and hit the rim by mistake. Can I specify that the training is only done on the central 90% of the points, ignoring outliers?

And I found this from the documentation of the Sensory Percussion thing, in terms of how many hits to train each point on:

Center: 50-100
Edge: 50-100
Rimshot Center: 30-40
Rimshot Edge: 30-40
Rim Tip: 50-100
Rim Shoulder: 50-100
Cross Stick: (30-40)
Damped Edge: 50-100
Stickshot: 50-100
Shell: 30-40

So a fairly high amount of hits, although they do do that outlier rejection stuff, so some percentage of these would be presumably thrown out.

Aaaaand here’s a video of it working.

(I’m using the Sensory Percussion pickup for the onset detection (as per the other thread) and DPA for the audio analysis, and have the DPA audio panned left, and synthetic drums panned right)

I did around 40-50 hits for each point (total of 144 if I send a size message to fluild.database~ and fluid.labelset~).

Here’s the latency:
Screenshot 2020-04-27 at 3.22.14 pm

(that 85ms is obviously an outlier given the average vs the min)

I’m really surprised how well it was able to differentiate between the center and the edge of the drum with only 256 samples worth of MFCCs. There are a couple of false positives in there (particularly when I play really fast), but overall really good.

I’ll also try doing all audio coming from the Sensory Percussion pickup since the MFCCs (and knn) likely don’t care that the audio sounds worse from it directly.

1 Like

This is very, very good (and very quick!) I’m trying to fish questions out of this thread

You can set as many labels as you want. You just give them names. In this patch I use 6 (because the pair ones are also labels) but if you don’t train with the pairs, you actually just use the 3 labels you have entered in the labelset. Does that make sense?

not yet but since we have kNearest and kNearestDist for the others, maybe we can. @weefuzzy and @groma will let us know…

again one for Owen I think.

was that in @blocking 2 ?

that will need to be tested since by doing an EQ you are biasing the spectrum, therefore the distance. but I’m very curious to see how it works…

p

In my patch (below) I’m just calling them 1/2/3 for simplicities sake. Still not sure what sprintf classifyPoint entry JIT-labels %d is doing. In your patch you loadmess 3 into it, which led me to believe it was for each of the labels.

Ah nice. Yeah that would be great as you could then “morph” between labels.

Nope, @blocking 1 as it was the default in the patch. I guess @blocking 2 would be better for this for real-time use(?).

On an initial test, using unfiltered audio (for the analysis, the onset detection had the pre-processing from before) it works but it was more prone to mislabelling. I imagine this require a bit of preprocessing as well to get the most out of the differentiation.


----------begin_max5_patcher----------
14220.3oc68k1iqijbfe989UvUXLvX20qPdmI2Ornmy165tsG3tMFXLyhBrj
XUONOUjZondGigqe6adPQwijWR7pTUEPqmZQQwHhLtyHi3+58ua08Qe0e+Jm
+mN+Em28t+q2+t2o+H0G7tz++2s5Iuutdq2d8WaU3gmt2O94U2Xt19fGUeL3
VP5GDrQ+0ht+u8AH432J5PxV+jjusy27nT2Vn21U23r5gsQdIqb9+l9MeHJL
YeveW+8fnre0mh1n+HTtuVn2S5Oa0uINP8aYtxNuj0eLH7w6h8WmXdZPDS9C
4v3B0+P0+OH4uc1CUhSAgR.be4GwCdq0OBvounAULeS0G9e+92qd4lNR9Rhd
7ws9qrPrvmvfXIlk3Gemen28aK..UHjAg4Hd1vcBRizBpFqIGe0NtCshmvy.
Oexe+duGyPzD+ulXP0c9gVvdQsbJMhcHpqdkEBU+Cl1sU1KG6B8+hDpqfb6e
PBZQwad1AYAGaUZnKXJWubxbmYLcmy8Gd3A+3813jAtMHLJ4GoJgPCaYKqX1
k6.4+08iSg9TvWJ3Fr0+yRPKHJLGO86V4saWtO9c4tEEN+2hz+Phax9nfPyG
Ay9nX+OGb79wYepWrDGSjH3gXi9nuxNtTmp4JN7PP1Bfl5mBRZ5rRO19coZZ
zKGGu7IplR+p4EFQ+ODA3DQStH931n0exeSNxy6zxZAg6h826Gl3kjB3YWdi
+CdG1lbmcUtEudIEgEunUEwua0iwAahB0B74WFTe7wGmT+jlCP85IjQ+MB81
Y4lk7WRZRMWbuDIOr+duX0pTphSzwKlDEss3kxtus9Ojjd4cAggknhIQ6p+h
wAO9wFt26ijW7ol9s0WY+cGBMW8NICQxc689bQpch21soRhE+4+pWXvSdI9I
Alk.DH6hFiGeb+53nsaKfulq7YKWYijAes+WB1j7wBV0UWQ90C1cjIZU1p7l
fG82mT7yR7dbewOYex2LD8bezg6SEfuKw+ocakXQwuPAWSxKslWmUgOuIcWE
0eYzd8riTvH9aNe+dum1s2wkk+6lSiFGj+BUTeabgQ5Ky8dgOloEuNEfTs7K
BnMECIU7FoVqx04Ax6NpUOU2x3Qsd5g0q2mQsbxbYohEfAmbAMV7fLvKHxkR
eTF4BRpmdw3CO+ENkfAeAPvj32FkCiNJ6BAgFBlPf.Nv5nXjFoXckqBX9G9E
QjfSKWkzh9gDkhdPczlgW5CmRt3CMyzIi9aCBqSauFtTW2NAbezg30GQuiLG
NEAQo4qjfvLef9KYTJ02yJb897dpsRYQdycFuOtyKIIN39CIF3Muqm8xJozk
s681lZCLyGJKFQe+IfqmduKAxjnPq9nyNqvMKvzXigw0vijp1YxB2r1vTj9U
7s68V+IqzfKJhLFBphjgwM+C6rhH60WjLl3XgF2edKXl2Bl4sfY5jmAFsFcw
gaaYOxUmtELx7OfiudNlwA4tx5nmdxOrHASCZga7+5D5aziJ5scRiKb.8TDi
Z2AHzb6n3CwQOs+aOcez1ZHIB9fPRv5zo+hv2489acfNHm5B.CQajhn854lp
+aWoThzXXI2Rby8GA2FgiTKgiLMDtcNezqVkNflCBqjOT0uCEoQUf0RXWTHF
vxOpS9TUj.TquU04eUoa2leV03qU89a0tOW042UAeu5f+Wk7ACqc95CLfweE
A0jLdknbdptcOw5f2XcwirV8Jqidl0f2YcyCsV7RqUO0Z0asV7Xqcu1Z0ysN
38VW7fqOdw0fmbs5MWydz0rWcM6YWid2UmGd18xqFO85j2d183qrJjxpmqb8
1TSWTU82I0jBKe05rw09lI2n6jR6ZToALN8noLgTmMT6O.wp+.M5lTS9ETvD
WQybiN8D6VHGaUHn3AifBErpDTnfaBN9JgfF6EtI5IkdflHpnQlnZJ+CN8kB
QsPJ7rRwpPNaHids3iamHq37EaQkL70pKaKSlyDm6afFCEqFN5mozGDt4nen
W7zu+IoU3lr9v4sRAKVIXMQBEPbQIatZCUY1qAnWrlePxvFahhJFaJpILAB4
0j8Gt6fY+wFMExceYY9oCh8.PiB9jAjMk4xUa1BBZ11.2qFYcvs3lngzQfFZ
bTG+px6RNavjtSIiJmLulDn24s9SJS4NPmO.tU3.jdLCtU+dRCDVV6R48h4j
wM4og2MxJaoSVWeH9y9O2DArcQ7S0Lem807H4z0XIuiTSbiTSzBvpyyRVTVS
9q2YpYWnhDW1sL4eziFxEtpsOyDcN5JQve+me3YGBjBkjVBoIYcHqGrpM7tN
Q5oFuOMtM4xFBFXxRfAtI5KYPYdSiKRn2dEjqVevU.6p+VIJFEe5nVXcyeGT
JIO0WIsiSbvPvKtDnjAO9rSSdvCACIUjZroCYZ9QB9JI+GZp3GZjLBGTxHPj
mLxuRHi+ujV1ahFhFAAZHFeUk4nvnf8M5qIDOFTQfgSjcsHP2ICLhgjRhQ7W
kFX3if+Nu9ruvFTVwhVoekXdgNBRyu5rtPFCh30lwEcv1.HPkGCVSYx.OcwZ
ez7yKsXsqTYzU1g7UcveZMtiSEVsVfz8kOq7VtWSwRWSASOhDLMBzj+gC2lc
aHqlCuYWopflkdGZpZwBArxwPqJw11wQyBIuxwRys7oR6X0pY4joAKczz5E2
v4Bfhd.f3Y.938gBpJ3foGB6CITeLEISMDx6CMTLGzPVefPxb.gz9tJO4PHo
OzP5b.g8..UbgnIF9X8YMVkwdG3TCg8YMlMGqwrdtFO0TPZOguol90mE34X8
EajK6tHxTCfHZec4ZpYAQ3d5yErx2MJdi4TNAVtPdMKDYfNbZAcTe.84vSWU
Mc2cF24P2DrOd5Vii6yDma+.c1RhysWfdMr4YfNZZAcVerVLGlyf81kuIGB6
iGAn4..6iQA3r.g8Q2u6b.fvdBfSsKKPPOAvoNzM3vZ6L2EyejqaqkPUBROu
SkZysHJydJTrMQUDAF6lCv9vZ6M.zgn2.3JLkqlIq732ZM.SUqAPj1llN1Z.
ff2ZM.u0Z.dq0.jeY8kSqAX81f0epo8rGOn0UmoQ..En9zO.V9mv0mcf21Tc
wiGz5jkmdbVgWemx.gttG.zl1xd2oqtG3vzS3p1.f.esbFCZ4DYyFvyTHgvM
G0UFv7GhcywF6zUzIxV0E3trJ79RIolyY3qqijMb3ZIH1IpHvqryjcGJ.7ty
nhw5FfKL0R00zYxleYGwv9SCMtL855LYC4Cl38QxnoPFu1NS1tPoCnpShMWc
prglSkMuWcFny6PYmRVQfllACUoqu7OT1H3XbnrORNMNFc8bnrmxN.jzSLP0
lqB9pygS7z0BfrSRYz25APWROnyJQEBdqI.cA8pJAQakmbs4vIrY8mzQfFxu
Jc3DOUMAnijQH+JtI.wy0DfZ7rJMTMAniTUWwaMAnAveyTxYZ9MuhZBPMQIG
zi39wLDaNMrPw0RSTo0yxICMBjwiaLD6Jp0m1n2OngzMcDAcKmlEryUyNC0V
3inAM7QF3V5UY.izFCXDQGAhnYVu85JDQzv4C4QxHDeU4C424Ht8xZd9mgNQ
l1iQL7UEqHY3lqCGoiWY7h53YvHFTFICvg.ANTUvLTsrmSZlzoW1TInGE0Az
0TiAvNpxz8Evnx.AabOdFtLpkRBSM5bkk3BXy6TlXnohX7U1vvnZuIcjGFFT
VtDn8JYXXPFt9ChgOjckMKLddx5llF5GRj14d3WIpCMYJyQ.FhVu2M8leLcq
YYjqjTks9aq21Xddni.OYZqi6EiskAoMRkV0tBxasQpgrMRwMNLSeqMR0utz
D8stzzacoo25RScbU9stzzE0EjX325BR1fvd0hW.yAD1q9gh6BuSRc7.zuXa
kTv4XMFiV5bgXvBu4Vfb6QGLgMKsMHwhuwFwOitF0zBg8QWChuz6pY5l.Dap
gvd0mZlC2W6W2KSQC4SMDhV3cmPDru17fK4tnFZNba.5dF8yqkaGGCNKMLo9
XRANGF8frEeiEqWlT.K8Ve1BqeCRd41uA6CniaoeCxWv8JuVn5zELnSZFzIK
WPuFaKYfNaAC57lAc7BFzWVsEzd0wHoK8NFIao2wH0FuIK4VF4rj7I3v5g1a
8Lx56Yj2uo1dFIaH5Yjzz1SfomQRdqmQNQ8LRrf8VKiL225sVF4asLxWtsLx
VOTaCa67fRs0NOnWUmvsVNQLCay7vJA0TRdWaGOFxj0LOrRTMCh8qrl4wz0M
OfDr4z9i0EANkdE0+3.7opedjQEMSM7qsCiIcpZnGYzQiqcWUR0MJROjstTH
xT47Pj3J63U61bCfkiFCpn4HF8JqEbgGNQ5izQ.7JtI8PUMom1OHqCUK5ISO
oqY9r2Uty25QOMSOSSa0aMomyXpCjJmiLGM3qmtzitm4S3LUSym0bC3BMccM
+Lxsgi0kcE017aN7Gp6f10MIt4b37pp8YKZhUELFDQB6ZrcF1bzOL3.1sRMz
QW30WJMZThdHmEFtR6OU63qhqrTYBaLWlT9XSPuNkzaNnH5v0+OrQSuFk5aV
reH6AUBN50ncbJYDnguFMiSoCWWI1PFe0YEeHcojKXUUP9JyHNbjomxPHeEZ
De3llU1nob3qp8sfLjNZxA3Zj4uh1BCTycHVhXjInoB8ut1NCx.1+CsPSuxD
5+NIR1H0b353oLSOE5HSI70T6jjPGZxnq35aG1f25n1hMD3V0Nr0npS7.M9K
nXyv.zvZBwWIaslpr7aZ6fHnQY5WXnlHyP9DyFBdyk9FqQfC4FqkJbm1cIud
1WMs3MmBzMEZ0tFpExaYCzICzLU7ngGyvTDRutlohM24Nwtigf9QJpv8pp2c
p8XuIh4vM9TIl1rXZ52dc4LDVLzjwWaoeCOnCUZS8DbLa5WQGAfFYBGt.aNR
.SSk9qp5AFSGZx3qtsFCOj4RGCcyKL+ZYqwvvQfF9ZbqwvCWJySIitvqxDUP
Uop.nyTAt4JUG4NPiF9T1RtH27D4JHLlVmFcC5H8CwMicID5pZyFzlYPS1L8
iPu8DQ7JxkQIdMYizuTZ3qwpqZHGoeFx3UV5vUaKyzMR+NpSjhe8MgxGxQ5W
Jc7ZbqYNNP+fHo+NoSzOpzMHwzMP+ROqIF2eP.9Uy.8qYckC377KkB9ZLmiC
377KkJButjxS7B+XiyRM9ftOWPi22h9vIBealHV06GCsC+1LQ7rneF9PJ4sY
h3kHGi3nqqYhXakOwnropo42IcTEe0T8Dy17kLk2zTLJWM6QcRbvyNtPPaMY
jw33dmte+b3PPKgu.lUmrwn1dLLjjqEGGm1AdZpPsYXj+Jafml5zrq6aC7zg
bfmdLdt2F3oZGaV1yYl2lHqWLD91DY8xgv2lHqWNDt3mHq79LuD3ywLsh2m4
kvrnroOM6e9bLzs5itFF5s4B70+bAFxW5yE3YYfmx5inLcVlbw8YzmnNAYNz
E7rUlLKyV4939JaNldLzdEAvbLifn79xFhmZHrO7gz4PcHsOF8nyg5PJouqx
SND1Gidz4HD.ZeL5QmEsM8wnGYNl2Wz9XziNK1T5aNklZ.jzGidj4PcHQzW1
vo1jBoWF8lib1P5CeHYNTGRH8cUdxgv9XRgLGQKSP80E6oNZYBboGKJoWiPx
4HROr6BeNgh6iBa7brHi6iBa0QXZxCVF2GE134vCaLouzvo1rLtOJrwygQOL
ZoOuZwv9tJO4PXuTXOGw.f5iB64fDh5iBazbnrA0KE1yQV1Q8IsRn4vnGpOl
TTmaEG1TCg8xjxbDGEB2WZHepgv9XRYNHgP29RBmbHrOpCgygBaXuTGNG.Ha
Xmy8i.D1qJvvNOaT7FyfZGrfAcVyfNbAC53lAczxEzqY+hy.c7xEzqYOFy.c
xBFzoMC5zELniZFzYKWPmzhxQ9BFzaggQrbAcbKhotKXPuEpNbAaNE2hbJbA
aOE0lq.KXqR0DZ3IXeA6L.rEQU3DaRErz2CF3vF7PtKJg12e5458Y+M2I+Q7
WmbmWRRbv8GRLGtDKPp54uNNX2wmegCyxpMAOJAupe9iait2aqlP3GG58je0
uRh2ili8yp2WEAxd2I5bFLU5TEcBVKdZh7+6a7Vm+LpUnk2k+y2FsVcRzJbF
drcngRahzbxoygl507qX0dFzJeFrFPDs7wlpvgVN+ors81eQ8XMAT+Qkp1iI
U8GQp5NdTVNZTiLEBBvMRhZk9XFi.SN8AYg9j8PqdbwNQxrocJGgq5wCqhZ7
5RgeoMYnwEtdCEvNBEB9HBEBdGghx4hePghpYzt1JqhM1fArSfwnSMPcBLHi
HXjQqaENpjdGKo1YFAMncPCNyfFrdpFXj.M5xcAktbWPoK2ETxxcAkrbWPIK
2ETbebMAZUye5GdLBo1hNJEdpMpHaQD0RzPkiDx.b5WMTI8yLmqtFXnnKtIQ
O93V+zexBQ.brelzTWIq4HCr2XSfpVvJCIzSqnJcgLqMjBaMgidhmEZLI45W
kNdG1DD8aB819s8A6sPGfYcCv5Zap2ToojXsu3XZ3UlFxgak9ws0..K2Qgx+
qaDPxyZ8PvV+O6GuOk05XTAq71sK2GWP5PRi9aQlT2dS1GEDZ9nrvJVE6+4f
i2eVi5YkWrDGSjH3gXCi4WYm51ZqdJRJCGdHHmFlrrIrRutnXn2uyyHZpW9N
d478rNcqsha5l43zYHDOefRqtWJlr9S9axGjzpnc9gAg6h82KiFJSrN6xa7e
v6v1j6dHJLYeve22jSrasd8GRAQqWLSp72DGn54TGkbiC1DEp.hBKEpO93iS
hblAiT9TAX9Fgd6rbyFcK0bw8Rj7v968hUqToBonLEEQQaKdor6aq+CIoWdW
PXXIpXRzt5uXbvierg689H4Eepoea8U1e2gPyUuSxTjbmROZwum21soRuE+4
+pWXvSdI9IAlk.DH6hFEUeTppMZagLzjdkOa4JajL4q8+RvljOpeP4YF5gN6
SJkOsz7sskzbu+v8oBw2k3+ztsRrn3WPhc0EGd2RcgTzZu2i94SAPlROIuRb
xCJk5N+J3MN5lei8jbPurTbfc085OJ.laNiTtEL00TeMjI1oRapJW67KxaSC
TDFrQRRkFIjUxBSaJfBuESXbHExH.FhxwxOSzNIBN2jn0d6W6swutbjxPMRh
rz.urRjLi9UHxnxGrTXcZRvBdKhhk.tyGf2RvLWrTKBiPwDb9OQ3JX75ncWX
RESYsL1IQKGpVkdZVc8yLqYRVq2fJH2xx8GER6VhSqWdArHSrr6PH9fLcleA
aAjd4ykJc7gYSTSFe0iO5G6HgycGpiTRZgwBKzDIpLlD2b+wUZhMtbhNWNqo
R1ABaCGoLiwFVAbTHXikzSCKMiAWRCFpdX6gfM258zt8akt18ry2+QoKq6j2
3Cw9++T9KBb9dYLbQwNefRkuU5+ozqncG14fO8+sI5KgRNE4mreazWRuNBAn
m9.8Ww7QRJm9gs0O7wjO5.AHhy2KiS3ixHQ9Xz1MRufj++O7voOfV2JaWTCb
SWrIX3.ft7B5OYH2aTMBe3k3wwTItKihaiydIodquilKxIIx4ne4x0OuhAvm
sWVqiNX3JQ0Pjay1CzLRxnPo867xODb1zoWMbslacDMQ69hWPhSxG8cR4Iid
Hib47EIwL5K8lpA5FUCyQVnZ.5KAplV1r.GmmjJJC0TQ+hB2WTibWnZhVHZH
foYdK4pf4kSUZpg.2WBDsew6SJpk7qHQMSp0j7ZaL7a+c4kRjW04ydwAQGjL
edeauyuVSKuwYazgMgRequwY+NIII1aqy9O5sy+FmT6I2n+kdTFp7+3s0R5w
0TNCswuBLtJy45wrkIIcD9xlXaHuAg06+CtMzFCuUpDCIfbrP9JhdbDLZBiX
I38SCl22IEEeXestFItvXoRG96DNnXbGbj7C6Pb5cyi5RIysbUTUSRcqKwtk
KWLKI3slj7VehdaOYu0kv2xkPVaI9sTxeQn7yJYRJMmTtgKaMAvcHIvcIQvs
lL3NlP3FRJb2RLbKIGt0DD2ZRhaIQwsmr3VSXbGRZbWRbbeRdbCIPt0jH2bh
jaNYxMmP4yu7Hqjb4ZRvbmRxr8DMWsrT6WyXuZ9wJpz1nx1gUYnDVmKTURQ1
vLg3Pz7iHNipdLc4Oc.ZcrRQl3oJU5.sOMNxWLiUppdVUjO8ODtWZpauLvIo
e+Jcpxn0Sd1IQ5g6dSzTRENGCPPFRf5i9rjpHCFUFZp2miB1nBWP4Gbv98G7
2eaiL73KabOfLSXNybdF5Br4+ZeWE.KfwIYr+NUj+U7yqLMhOPyMaHvPAkd1
wk9c.IBlvr8L2jVvtWAy7qO3zzz.R.Ft4sqgZJipRP4X.mfI.ABfgRxnqt9O
d4ORa71X7pxYeviedeSz01GCIpz40UZKldRfWveoL+uZc11fW0cgTYPpTNzU
JmxQBJjpDRWni5lIanrHfkKzulp484nEII.mQmDX4NWVXVo2yTqNnWPNdI0o
C5yADT.e6LrcAIMSpHUtHGTaIt3hGhMf1DVfTu7s37+wk19YtWTQt7Vxy5Rx
yf.SQlRX5+gASONduk8r2xd1aYOaol8r1xJw5CwwxqeLuC6h1GnnAN26qRzv
WhCRR7CcRhN2bMvV0kYOrYyck+i.iQBDgC3xf5z6dD9kRlGZiRae205Px1pP
u3HUntlYzr88U6kH842E6KEIb7bR9RjydIyU3Fm+5pMQGjxzN2e3gG7i+qqT
oBy3tgSTn+wulp.DzT2juHEwc1G47kOJ4ZMaRrhOlBQob36uQkXsXemf8Nda
0aXrmym81FrwY8GOD9ob+VQG2k4lSzF4xRzVFyudczLL3YfW7IZyRUOWgUe.
Gipb8o+QfukJ+So9PPn.JjUWg99BLIa6h9j+ysp+vsx.OtAWoNd45cRptDlP
P2xcgLD0kynLkhZDmdKW9GlhcQHJhxXC0v5dAvN+cO6PHvllh7t3ydRSOJqP
b2aQkVgj5XPHDTHvPr.f.LxMNT70xj.WoO9YYT7p0olyGsXQsRYTcAkF0UEC
BAhjRPo4dz8ZYLs2McWT1Tn6hfLMOmWzpqZaBkiIC4bumjyEkweHk2jixS4T
fu8sVf1kMRkSJqHFKcWGWNPmweeFN2P8VXCI99zAvcoywThuOsu5ZPmmB1rK
JHLIkHZNVIp8jmH+CR3bBkyDPU0OKuVYWwp98VJYkWz6AnIboz+g6EnWSK1z
9xJfpOIMLnfhAHNlPT44FWYYs52aorMQ8ZrRUCgbczVSRv+K5byk6E3sK5Yq
iKsc7ws3B2MoeD1EHH.4Gp+DfzyUocA.Eg3bJOEwalEhBzk8.CpKw+BdOBon
Jg.T86sTXg5EIulYH6HQx6jtxhF.04.tEKfm7bU4vyOq2Lf69I+vCEM.eb6L
Zldd+iODrcaFA3c09Mkdkm5CXJ45lRWt.QD4RfPghRIiYjiX52IeCkZQyb58
BOdyDJwEfT2BgIcChpemPw4oI80b6nSOa.z07DAtBy5EV8QPqKSuakW3ioah
BGTNVAIiYbztn3rcc5Vrak6+PRziwdaBR8Xpf.Pw06hajlolHk2k8T+qjZkK
fAk+MaRLJi43GOr16bXH725q77qvpIWvXb8xf.H8av7NBEfP1Y7u+whRTRoE
tq9lboReKL2Nx07SRYUt+8RfXshhWDJP.lqlmBx3HCuf..fD6.Qg6kvoPr9w
gbwRnP+NJT9CZ+lUQfp+AtKHTs6r9YLWxv9fLysejKEwEDLrNRQ+kux3kZQD
qmr4EExDYhVBNfJDl2UKhTVHiQAl0B8QQgadm4WbVjwZHBeot++scxHT9Yuv
8N+r+SA2GscS03W8VutLeOVsFqoqjinqRGFw0puESjf8e52jbm9mEbd56KIZ
ZXXr8NqBUa88hy8K.MNa4JkpoF1AI2j5Tqa6lymUl+hNuLsXIlpLiXzQHi3U
yqqX0w8UnspWguRjR68sOuholTw0EIy1T+LKRleZ+1.oGe+YUI1bNxlkkqJ7
xLgSO48UVoZ64rT0TBgjhzCn3qEFDCqdlwZdpv27RHsj80dyYH8kQ5ILxMuw
HkKHDJbtQOqm3ptgfKIU24T9dT2R020AkubgJlkar9t5u8qhnXrq03x3trkV
8yP5QyKkKBy79SLKRNls.62t8f+GfmC1YyuUHW5vj1nXFh5p9H3B.Qii9R3f
gomvOZltP7BAS+ceya3PT.RF5rwTFGiQFcQHHDhmeD8Gh88GPLUuZpqQaSr9
JmXmej7mjV1BS7FLzTP.LlIIFLfDI0KsLWnKc9w0+S+sai9x4gpUCxi5B.hN
4yFhB4FqjPgNtO48RmWe5CO7z89w+Pz1MC1JOOKXVpz8TpFig4srOKHZrI3E
ElN.4UnUbro39YDojgapFNdZ9Bk7AtypttSzmyiSnTdW3PfFwbwDFvMMknbH
syQ3rLYiR71ctZMxkHfezKIx4GUmwfUiAd71gxptCkk+lGqsc5pmLFs0xguo
isdXyoxxdKMBsTZDfMPnxZDC0RrXMRrLcr+VGcYlFNKjaZa0jW.ss50eTt72
.ODe3NSeDDo3Y5SsUPT5KfFW8F+sde6YGDko9uZoUhgiVg47BscUcGPzE9Bf
gZu2Gqmaxc.oPXXw1RpocGhpzX5VBzqF6aynATFaL6ay002.GiFcsxZ9gf5Z
144+b02zz3My0idurF3GAaZZlpFNZ9+zENBErTTX0HMBhsRjN0phuLRDyvng
XrzszIkDoJhjWLjHpcRjpwNOHTG6sw1WJTGViLPpVW8vvB49BlEBArRjx2mt
uvg8Z5DYf7RlHAsSjBGXZDmNIznwYn2h67HV0cLm2r3dMoWKNX.KlVXpKE3x
YtpF2ESmvDJ.5hbcwBtKFJL6xgqfPIbhKUPfpJDnPlPFTTi0UTSMFZpY18M.
PApeC2vwAH55rM9HMabfhE.k.AWB.AXA.DP29HdLZPwRfo.RWB.AdI.DntN+
wsX+ZnpR+QZTt51YKchoeNy512AtdtuYoSNhZrYnaiHLUx2.DAEfXRJspjjX
jZtzzNveEcFa4i5.Um2Y3ftHFr6ipl3tOWss.uc7PdMrPbWg2oetQ2Ke6gMI
MiYFoY.sZpzUGQTVojeZ4K1cY6SQ5T8bNchZzgy2jkMULG8plRBL+V2U+YY5
bOGSWvYX5BN+R0W0eMWweMTse42pwade6azZ0MY0FKdMmKolWHuvyhzkbNjt
3yfzYe9iFjydTujArUNrmewndAmfgy+LFMJxA4Hm867DcImknQQn6m7RR5pP
WoB3p7d9ju6Y9WJlViQ.vscXmZS4+4d.mN6C2TKGroy9PMcdUE+Ugneut0oU
1u5gT5RNfRihTye9W9iWhIVBCJ8V2Tc7HFIsFyfR5eqlXgLbZkmC4Dlqa56.
tsJzHZRnApb9xXkVIons7wO5FVoaLyY5hrwJ+2LETLBRM4OFq3rLoMdYJ.0l
MiErOj0K+7O+sMwQO5G9KZRXKhQT.mYRkCihMEGLTt.hlDql5siJX8YZ4Qfc
4GOEZoZ7UeDsU6GtM5HYpoBauaXLeXW9Yvr3TS.Wv9S1tHd9xKUoNVW8cWjz
RmDH9A+P+O60pnPqq7SgrvuszP+pYIhp9RIxVi.ouax.8eeg172KH.+G7BBe
9LfbICXlwxpua5.+8eIPpQoqHPEN+lNJzS.bidwA3+KlSpvE4AXOrxTxrWiF
JrmTk97zV.z2ezeykPaYMQfpp3ol7bOdn2O4kDG700IwWf1xoGnUiUxmmIV9
EgZ1+0nM96mJBPObXsUeqlDhS+TI14caZDgX84Nrq.rM8pUcbYBA++Tv5jIv
LzjfJp4NTxKROG+40Q67e9Lie8LsJmeCubyNE2SIu2u3c+kvz0ifAWs73V+E
YL+2eQAoUxiplCJcdTN9KQOphA+BVjO1iHTFpI5M6VtVUYmYWfQS8e7TO1H7
Efyx+YuO6+PT7SOeIlxZV1pTujZIsnswK9SeHTcNl+fNsZckHjk4tyX+PpIA
djS8Bqr8NNaWjEZR4HjDbXKBbiVJ8FsDfaOkdVTM15F8Mpbd+szSXN.j6vRL
F+7cN+Hk2c0F2dCPKAbP6.G+osfqxaFuzW2cb5EKud48C89s9R2MLkCwuMJ5
SqFcV6fvOcQYfQRZ.hLOWvL0X+pgsOom2W48ApGptqJibZmO0OMb920srq0Q
n9btm5j6tovqivtE0O3bFrEMxaopsBNnARwnJNZuqmtbcLcqxcr9EhjUkHs0
44ZHeg.WRZI.pO8ZouiKlDOCpzaF6QVAZtKtdla37Y18VGMhSodqPORUXW6L
qiFnWoCr1wvLlg5K6r5xpWPGVchbYZHqw5pRp8minbWSsuI9tkNk5nvIauin
1ycesGcA0wDIJ2sS6MVz4Nb5HhEk6jo8FI5b2KcDQhJcoz9iEcnyjNhHfkNP
ZuQgN20QGQ73e2eyEgC7Lm1gYwXCRs7NU3P0NjZuJpdacE0KninN9HJ5ZFQs
1hW6OaYW6GmiBRr6P7ttukHUBHg.L9shn.lqV1BInLjnGEUJO67UPfTcySSt
rpzPNIKhw9q8C9b2q.Ba7fYom4DB.lrZ12Z+2sWqh8nm6dl8a2QAw26GtY+K
Qqx1aHv8vA6dzDfWdJbJznea2lPaM22QBF2m3+vgsaS50FFW9LsHnTnYCyXX
N1b.LYRMCsUP.pyNLW+0YYgapxRGWLMKPFjO4h2r7KHUWHAWX72DmIghQtXW
wxl1oZcyuDOujeQkE1ucY60NPQ404RAmRvk5ZR2LylKDPLqqNKz8i1aMax.z
0EXBeQJHRRquJF.fgUOOWkz+76ChS9lye3wnAQ8S5uwwef15g3oT+Z6c315a
3szyvK2uvMIWR+pgWQ+Ly038LvPwFt2w9xZJVj08ckXS7oLJluK7IN1OGs27
X454KrokLRMcz6bhFV6WdkmI8CHZH+R1PAZCnfPf0PcZq2DN6nPPnMTfz.Jv
cQ4VEPhoBEJlF5Sn.5VWHffH1viitP0P+ZzJiFwzuuo5VjNWTt4LZs4LaqoL
NPnndGbsfeb5YhetZTBRMcPX5TgeEZH24XB88rwExw0hclFc+MpVVcRiXJD.
L82dS2t2zxjqGUsyshFvkxO355ZAWYhybkDq6zNPBwzswmaN0ZvN1YhclEOH
znp28V57hcBojhzQSjMbjxOObTP34z0HHy8JHTFtGCbRyYdT7LWF4TwrnNsF
0MIwQGd7iRG5rghjtoyoCpdDFUNoZdnryAqwCGVuy26S0fy3ACmcgPsLpAmI
h4FmcVu6PRvS91LdR3sf1Y.c93QzphdekH.RafGsxM.MhBryyja9ed+3xd++
PvVeU7Pod+ereQuxa2tbebgv0jTw+lI7GwMYeTPn4ixZ3zqh8+bvw6Gm8odw
qUAFtN4PrgF7UFY0oelnMxvJNDjqsskEOjoNtUzt86RihcUt8jdUtYUCRSof
BsE.nqQjByyEN2p6kQxr9S9axOuHVEsyOLHbm5X1Dlj0B6xtbZDr2UXoUx65
RgBVVmv2129XX2V+orxNHC0JNXSTnBjJrvn93bA4avTZdTS+MB81Y4lMACVy
E2q6uc26EqV2tOsNCxhrKJZawKkcea8eHI8x6BBCKQSSh1U+EiU4dq9Keej7
hO0zus9J6u6Pn4p2IYQRtSE3awum21soR6E+4+pWXvSdI9JwcM5BxtnenmDQ
+nL13nsaKfulq7YKWYijkes+WB1j7QSUXja8tGAYeJJ5BMovRezg6SEouKw+
ocakXQwufD6pquF1sNeekwbagYnvpl6b8XiSXbiykziudNcpdPMCsEocE+3O
6s0IHz4o8NA6ch8U0.i+FGIUwezGjKMLoft2AV2DCn8AWVso0pVcMMZXo9nb
x6YEubD48YEZpFnW6NrVo0tFRKtui4rQm1BMghj5F2xl39gS94UwomkCgMUs
BQqVAaxoDXQOzvpWU.cwnJv3y80il.1xggkny97hSQPSSsM9kMyZR08cLCEs
a4u+iqMkrgydomk6cjdtIe7NdgaRs9KcDH0u.qN.flHhnX.l4lFwxIfP5oHa
oTxFodS1PCpq8M+wra0yW.8p9t1u7Ii3f8oqcKe1HRGHKfQFBtGqEi1.0oiv
P8S2noXWh6VBRlf8Rtt7UiskZuyb2TnLgdtEjFp6rueCHa31YtmeTrYGvVJ3
lsMXffNSby3S1jia0j1YuMqe1A4XiyDWet1Smft2TYV5Z0yLtwyLMd6hm6c0
7utB8WWYaAEedKnLybBlYVJqNcDGqEzBmfy7Hh6oT6GKUuI8q5NStCy4rVKA
9Y2sPsBGZZzDjiu1m0wyhwMei.qPt.EmEhp3ZaEYoHcR7SQ11VTGNl1ZjRik
+r9NZaaVjSaPSzMsoMJEOgls54r1S9ADO2uKVFHvCNda17id26u04eXiy+vd
K37Yp7k.zna53nFZLyLiZeeX6gfM2tUgp68Sd14+y+6e4Cl+Oa0XxpFkcuI2
Vf1Ihfvb3VOu5LAOzL2l1kzCe6OEEbp1urM8jOCtblwWIpof1f.wbylK4rA1
vQHo003VDmyFy52nKF0YEMWGcPEUuMDETuWuoae+w+q0plhmVsTZblAaFmoV
wYxPZ9UO06FCCvHouSZCvjkhA3rVqzHXAFaxHbJ1trs.CAWfI3iHJjMslfqy
+3ZwQv4YyEhzJeSs4hQK0BT8T0.1yhhKuKEytGEIN2aC2PqNa0NBhFyHPbN0
NnwWsSeBF28LicSP06kGNsn+l6fwktusQg1VCGGct3nPuWPXCeJGMUqe0fi1
8tykzn+.cg+z36CkOYqg0YVDwFOqhoKloBiytUwiwqUv4cG+vj3ukKVFYTb1
VxO6hP1rdKLws.cmYFZSLbeJLaDkTvp4PEzFCoKddJAXR1zTEyVcZgeHHQuB
mtxG3G2bvqnyLh8T79Xvpj497ejKCEFl8+gMF9caEq7Y5vTZ9RSSRQan7Dwf
uwKwKKGE4V0cY1NLSnAhs+HsHc4mM24pXmi7cwdqS9ve728SePQSrknF2y2a
qigyZBgGBOO2sdEV70t4p7MlQKolqYDp8Zzsf2p152p15qhpstgpcSJw8Im.
mf5JoXzkUvVoGeLNv9wuYtpoxJcPx7F+Ukrz5O5E57qpq5JIzKipfRO23l8k
gyWJjkF3SRbtuA1Dhn85M09g1pYFGnISDDP6Tn5qsQ7zPgjZtZVVB1bwO1ah
CJc+7fWBwAMMDmsA6Sd3fTw9o8DoBOjaijG0uPW4ZbMNHHtDByTotA3.cHNL
GtiP5InCDWWcGCGBMwPCQAB.u.z47c0Vd6thVEk5nNXnKSqJtRVAWfzC+utK
14WE.c9Nme8uJ.47O4H9Gqi.ML1sMgkBAtuXLb+fJYbN+JzMNphWL+GAuwwX
GxNACLHDLSer.Aou.DuLg7e+gGVG8ztn89O678lZBUU01I6c99bk+YZ599dI
fpIm6kZsT+OJ+jzu+dUXWpZ7FUm9K2N4hP0LFzLEGmVaKHwKAWD96ARWZp0B
nfzIRTduoZiHYRdbp5dJ9R3JwS0QDgzyytTsnswsQb1qC4oaXzOAnMdBY47V
NZPLSF0RKC0NPA5+QjcdODGtc8TbPFyiwgaWqYdzXdPNT1t51onvcDgBQ54D
oUnfyGan.0E9BwXd7d55YJQLlGnCFrqxHiIewwe71OeMiIegd4tK7EthwFJ5
hLhVwBbLghNouXLOxSD5RPqEpqZvOpjcTfBXWOOftnwFJfc0ZFb1NBXSvg6p
wcIUFxjNBoSAL8zCqWKCXxD2TZzSRun13GG748N1JlIjXX27TDyz.OQvYdyS
yHQJZxyNPbFQJHb2gDmu+AeO0dDt+HQ6THkHJSd4GR1KIGRjbuppBsQ53CLo
yD6HgQm65sn9zUTr.xunRN.JL+Cbxpxh550q6hiVqJDN059dum1sUxC38Phe
rSxG8+qxPJTamr+FGoZCUl0+06OryOd+GihS9ebLuWqLsL4ClXRPVJRA2F5A
ZXSEVAIll4EmdrmUN1sN1ZqqbtXjJqb.yr8xvItrxaoFHsc.IPmI+cZ+W1To
0ydIP9c1U6CN6RfzjZwzZFY5ph0C4FE6EzBcdm.w7G7iNrXZxiAqik.YPh+S
o4WX0tsdeS8TtQ8RRrWP3p7273X76QuDeGj0Bq+7O6.oK7lcO2cxNVSJm0ND
X6LzlUFupuhQeVZ1eOOA2ipgcg47j4RDc02WwrMYv3xdDmh2UynRgXVqK18B
gNrJJdioJrrKkMnOZt8mL3xdx7N7jyGj94+jXc4IAHCwihzgGk6ffT3N7jPr
g3Ig5BNMDTOMKNp0EJzP7n5.NMDnD2sS7dmBv87eRztHIiGBbpKrdpNn8kiS
cfe.ODrCrtvOThBOP5A6ziV0ipOkqjgR4OqKJFKAeCEV2kGMkLFXMsK5nU85
8Kl8k1EAEJeHdR8vAhK5AQ5B2JZ.vHBuGpyFVdyN8nKwEk8nQSviFOFdBRnS
0JaWj+PihVmt8n4iB4EMUj2t3vwP3ZCF2cenF1kwN8jgPwXrNhKZItom8ktR
h6ji2iBR1kmLbTDQQcxSL2Af+Ew6gdnK6Iw5ZDTWJKCZxhJDglpv2Qvt7jFD
NBPWCV6heRcOqKWzyA1kvOKg1CjfbmdzPHYLzeA6RfivgPL.1EQaB2dbLfI3
QOJANB6dF0fCsKxP7Dk5lxNPTiT5n3kQ2d1jQIwrc6YCgiQ7Ok0Gzd4MdAOp
dDKvk8j.cJEOiBeDnqwqO7rQfNkcoAQILfzQcBvK9I0I2d.7wYwraOb33rbB
lsMopaO6wQYXWdxtCh9HPWBrDTMdDy1OVpQKndJkZvBkZtBUarB02TEJ2PEz
0am4vkWZKOO0SBNrIH5m0cFf69or8zuznSOkVb+iODrca1nHOek5cbScSGj8
Y8vg7isb0TTGpGa4XHlizisbr7MTZ95KzbOvi2DgRbAH0WkjNizkuSfvTrdp
mW51PmdV.nYvniAtB.w7N4GUZNtuxK7wzNg.O2w4eWbjZxdbrkPbKNqEx6cH
I5wXuMAoG3APgpI7l2W+PTu3.TOOqW1hwOdXsWSK.9a8UkLUApJWvXbMYQ.f
Bg4cDJ.gJfoxEuB2lKf.4t5urKkv4laC4Z9onrr6au7gtVQIJ9TQ.lYH1CYb
jYsP..PRwGZg6gvoPr9mG4hkOU86nR6OtEuIUcSnuw6BBUxJ9YKpXWDjYtsi
bEHtffgkQ014SyVCqgUsirOEYVEYrnBNfJDl2UA.Kyrxn.Csjo9iadm4WZT3
UsLXPk5s9214G57ypCt2O6+Tv8Qa2bp7L7VutLeGVsFnoKjifuRVlbbwbPDH
9IujjlDHx2aVTyAnbLA4aKK+kSNTbg.ze52jbm91.Mqnrjrlgyw16JHsnZOk
4tScguH+pRwSpg+PxVwwEuoRj.TcRetTk9WivMgCzL2JdabWk9zvxwWdIKt0
4aabk2LcCnlDwZSuvfvQ+m+k+XeM4PXPHvXI1EwH5ENpKTRCazjCjgkbdZaF
bBy0M8c.2FYnE0wPCUNQXrVo3h0VC3GcmH2Mk4XWQVNkOHZ6VPDjxLZxTbC5
eG24m4tM8qKD+drya+O+sMwQO5G9KZRTCr3T.moAR.ihgFlC4BBZPshXZYcq
6gFaA1kazKfcS0Zp9HZi5dcq0wmT0r1d2ko50Nu8Eoo1hC7v9QVNadxxKAoN
6U8cmEmbiLr+fen+m8ZjUs0UwgjW82l6n.XmispeBhL5LH8cCNX86yZfcKHf
5G7BN1.VaEpjLBYFKp9tgGz1+k.oDZS.WENMXpT6oWFEXBsn.p+k8aC1brkJ
2COQ5nl0Rp2qUAo8fc65SYBoW+n+l9RqX0gzUEZK7sFRvVFOWbvWWmD2SsHi
G.oNgJOOQrcSppm+0nM96GKDqiN9zpM7AEgaWERKJAFTnIWKh2NvXSWSUili
.n8mBVmLRpaGTvT0XdSVbda7yqi14+bOhk3LrdjOY2tX0eiEuvu3ceeYB5ni
4qlONmeQFG0881A5RVqqOPfwUwwuD8nJdldtnfkgQygFCJDLTGiEovNjLidA
+e7TKarzD53ze16y9ODE+zy8U0by7vfaoyIgdiW7m9PnpYa+AcJAZB4xxxPO
yGZMIafjoDfmsmLY6NiPSdFfjoAagQevS+vfmHshoevhZkVSP+fvo72RaPJf
iCvsg3mpwXIKuqFMlZSPCNYRagS7T5xq7lgKEXcC1eQvCVd+HtequzjoYK.+
sQQeZ0fwxED9odGspDMAhLKsXFPpQplzk1i6obdd6npup7vm18A8SAm+csmQ
gN.o886WmLwMEdc.xFb2goIT28.ucF11LtFP2AQL4SlXx9ypR6YtcVZqxUh1
cg1pfalweZldwiK7MkaDfKIsjPbcwBd563hA052SdekkMDY5PzakHv48xq+a
ViElJQwvn3oL4CKBmqs51gzhPPXJxsncMkRR3PCVEZ2Us3p5DTKB4ppfia1d
020fpJtPUUZ2X8cSnI9KoN0JJczsUw7Mj3tlzsb0z2f6eqoE77a2dv+CvdsC
GppRjmVeBmzg4lWy0PBfwQeIr2PXq5VGPH728Mu9Cf.jK0TOHbNFiLxNHnzY
ogG.+gXe+y.B0TurbpAYJW.Gdf6mjZ1BS75M3IH.FyjsOFPBbZRIyE5RGdX7
e2eSugOdliavr3e.oVLFZ36+ze61nuzLHVs52nt.fnQatHpoPS3BnP6Mp7dn
D5ng.nWhHfd6K9gnsmAKRV1KnR+ZnlZ5IuIsAA.2cHdWyoIshClDfwuFDEvb
07vHAkgDcrHb3Y0tIARkpMz51TZOFTBer+Z+fO27N2YimHK70S.GXvqUvXSH
JJ1hdP4akgvZDuDodP2T6G7z5SWxj6NnVR16GtY+RyBxIhbyxdkpwXNDvMaX
DgAbSqmeNj1ZPHSi.ah2t1zClKYT+nWRjyOphBc0f872m3+vgsaSZcCVJW2p
BJEZRrMCywlCf.SJc0zFdoNqKb8Wkk4huJCBY0H6fhTIm0lFclgpiDbgwGEb
lT.F4hcEyO8P0UvWRmWfunxly25+dMATTKcLj3ThjTNMcCBpuPLvrtXHqaG2
jZRnHz0EXbKUJ.PR2qcF.fgEqa5Rxy+9f3ju47GdL5rDmMGctZFHvu++98++
gVPQXt
-----------end_max5_patcher-----------

the helpfile should help you a bit there - try my example learning to understand the workflow… the 3 is the number of nearest neighbours that the algorithm takes to find which class is more likely.

Blocking 2 is what I called JIT mode, and what was called Rod mode by someone else. Check the helpfile on multithreading it does clear comparisons and explain why it is better but not the default.

that was my guess. As I said, the preeq is in effect changing the MFCC curve (the spectral contour) which will emphasise differences in distance…

1 Like

Yup yup. Didn’t know if there was a specific reason it was in @blocking 1 for the example, but I’ve changed it to @rodmode engaged now.

Right. The helpfiles for these objects are suuuper spartan, so I didn’t think to recheck it for that. I guess this number will matter more once there are many more labels and entries, but for small(ish) numbers of things, the classifyPoint can be == to the amount of labels.

Indeed. For my general purpose use I’ll probably always use the double mic setup, but with how well all of this is working I want to put together a set of tools for working with that pickup natively in Max (and by extension, Live).

sorry I meant the ‘PA learning examples’ folder. We do not do helpfiles yet since examples are much simpler and fatter and therefore we can negotiate the interface design there with you (and with me learning it!)

It is better to be linked to the number of entries you have per label. For instance, I chose 3 in this file because I ask the user to enter 5 hits per class. Imagine the descriptor space, and each hit is somewhere, and we take the nearest K to decide which class it is. The PA-learning-examples folder makes this very graphical in 2D. MFCCs like this just take 96D but that is the same principle.

Heh, without text or context these make even less sense!

Ah right. This starts getting more brain-fucky, particularly since I’m not super clear on the vocabulary. If I’m training 3 different categories (labels?) and doing around 40-50 hits (points?) each, you’re suggesting that I do a classifyPoint of around 40-50?

Bah, I thought the titles would make them clear. But I can make them verbose if that helps :slight_smile:

it is called a classifier, so it finds classes :slight_smile: Each ‘label’ is a name you give to a class. You could not do that and instead use as for the nearest neighbour of each and code a name in the entry - this is just much simpler to be able to add a label to a given entry.

no, but to find the nearest 3 to 5 with 40 points of each give you a lot of nuances and should be less prone to misclassifying. Think of each of the 40-50 points showing the diversity fo what you are happy to group under one class name, and doing the same for each class give you a ‘turf’ in the descriptor space. When you query a new entry, you ask for the nearest K points. if you have 5 points, all saying it is CLASS-A or, at least 4/5 saying so, then you are confident you are in that ‘turf’

Am I clear-ish?

The names are pretty plain (“simple-1D-example”, etc…), but more when you open the patch I have no idea what messing with anything beyond the first two entries (typically an uzi and a fit message) is supposed to do. In some I see numbers moving, but what are they? Why are they? What am I manipulating? etc…

This kind of ML stuff is super opaque and even with verbose explanations, doesn’t make a lot of sense (unless you’re already comfortable with the concepts and, more importantly, the specific implementation of those concepts).

I’ll play with them some more, but really, I’m just moving random numbers around and trying to guess what I’m looking at, particularly since the individual objects don’t really have help files to speak of.

This makes more sense. So probably some kind of % of the total amount of entries would be a good place to start (say 144 points total, that’s ca. 4% of the total amount of points), or is that not a useful way of thinking about it?

ok I’ll try to document it better with a little paragraph for each number.

I would go for a few only personally, not a percentage, but this is where my experience is limited. @weefuzzy will be able to distil some knowledge for us here.

It would be handy for the next update, but for now I kind of understand what I need to understand in order to build some stuff. So unless it was on the horizon, it can wait.

1 Like

Aaaand for the sake of @weefuzzy and @groma here are all the pending questions from the thread consolidated.

The Sensory Percussion people suggest the following:

Center: 50-100
Edge: 50-100
Rimshot Center: 30-40
Rimshot Edge: 30-40
Rim Tip: 50-100
Rim Shoulder: 50-100
Cross Stick: (30-40)
Damped Edge: 50-100
Stickshot: 50-100
Shell: 30-40

This will be a selection of your least favourite genre of answer, i.e. variations on ‘it depends’. I’m afraid that this is always the answer with ML stuff, because everything ends up hinging on how the distribution of your data and the model you are using interact.

Bear in mind I’m still learning a lot of this stuff as we go, so @groma is (as always) the one with The Truth. Hopefully if I tell any lies below, he can step in and correct me.

It depends on the type and complexity of the model you are trying to train, and the dimensionality and condition of your data. Too little data and the model won’t learn useful things; too much and you can stand the risk of ‘over fitting’ to your training examples, and the thing won’t generalise.

For KNNs, the number of training points ideally to be significantly bigger than the 2dimensionality of the data, IIRC (i.e. what I learned from wikipedia at some point). In practice this might be over-egging, but certainly you probably want at least 10x as many training points as dimensions.

No, because it depends :laughing:

  • A greater number of dimensions makes the job of models much harder, not just in terms of the raw amount of computation that needs to get done, but very real difficulties can occur with, e.g., distance measures ceasing to give very meaningful results in many dimensions (because everything appears to be very far away).
  • By and large, the more dimensions your data have, the more training data you need (often exponentially more as the dimensions go up).
  • It’s not just the number of dimensions per se, but how usefully distinct they are: if you have dimensions that are strongly correlated, this isn’t much use (extra work, but no new information); if you have dimensions that contribute nothing useful to the distinctions you are interested in making (i.e. noise from the point of view of the ‘question’ being asked), then the model is actively hindered.
  • So it’s good to be parsimonious and think about how few dimensions we can get away with. Easier said than done though: quite often it would be good to be able to just throw things in and have the computer work out what’s relevant. This is where dimensionality reduction steps can come in useful prior to trying to do classification.
  • Different models will start to suffer at different points. KNNs could be ok into the low hundreds of dimensions (providing the training data is ‘good’ as above). KMeans will definitely struggle beyond low-tens of dimensions.

Not a priori – I think these have to be found empirically, because it will hinge on the size of the training data set (when using a KDTree KNN as I think we are here), and the dimensionality of the data.

  • Building a tree (which is what happens when we call fit) is much slower than querying: this is the point of the structure
  • The complexity of finding a single nearest neighbour to a point is dependent logarithmically on the size of the tree, which is good (i.e the query time rises but flattens off, rather than exploding)
  • The complexity of querying a range (i.e. asking for the K nearest points) depends also on the dimensionality: the larger it is, the more the complexity approaches being linear with the size of tree (so it doesn’t flatten like a logarithmic thing, but doesnt explose either).

So, the take home, especially if you’re interested in keeping things fast, is to see how little you can get away with. How few dimensions can adequetely be used to differentiate between classes, in this case?

1 Like

since I built the model on FluidCorpusMap, which takes 96 dimensions, low hanging fruit is to shrink that. It is quite simple:
I take MFCC coeffs 1 to 12 (dismissing 0 as it is mostly amplitude-driven)
I take min, max, mean, std of the direct and of the first derivative
12 * 8 = 96

so what I would try first is to shrink to an mfcc of 7 (taking 1 to 6) instead of the classic 13 (1 to 12)
then I would scrap min and max
that way, if that works you are now in 6 * 2 * 2 = 24 dimensions…

Another thing to try soon is to do dimension reduction from 96 so the algo finds redundancy itself, but that is right now in very progress (I’m trying to make examples with our new objects) so not there yet and not trivial either… so as @weefuzzy says… it depends :rofl:

1 Like