Making sense of fluid.ampslice~

this is exactly what will mess with phase. Here is an example patch that helps you see what you hear (energy smear) - now try with less radical filters this is a 15th order but that should show you that a click, the sharpest and shortest of attacks (your favourite :stuck_out_tongue: ) will have a time domain behaviour now…


----------begin_max5_patcher----------
602.3ocwVF0jZBCDG+Y7SQFdlqSHBnzmZ+bz4lNQM3kqPBSRP85M28YuIa.K
VQNpZm9Bwrrj+69K6l3qyBBWIOvzgnOi9FJH30YAAfImgf14AgUzCqKoZvsv
8zcrBop58vH+aEMUbQIy.uNs03plhBlRPqXvGoMLVcAuzvTceVM0r9ItX62U
r0Fe.DuH4S3HTRNwMrHOyMPH1AziseEeCrdxUO+Pdu.P1X5hfrVqZyKkdw67
y6j4kZlWtvhRI0DFM5OJ4ZXLD8naUda1L2inIBqJlVS2x5h.C6fwyClAM.SN
AkjKCJRZrGM.nVR7SFFSKGFSwSGS22TWwz0RglghwXL5gbLh39AFk5GblA6Q
n5mnV+rHIBUQ+AqOwrtQR9awV7bn9pcHYd7XbK6+D2Dr8V4OCabUiloFtoKd
rJkTHk8sTIKGKiSt4LdEUr8tl09iQd+jc9unoU05KW.LBMxvK6U.DuLYLbLe
XbPthyWtdtnqsAupoZiht+3lOzWTI2v5mtmvfjViERgoftFbDeYtjlAUIj7E
PUBFC3IC2CLtURy+oWRWwzY7hD1y0im7+UEmVNdgUs8HAlvPMboXnfB1yvsO
NFP2o1sAA7svx3z7amkwWKK+.p.gf8NMwedmOjHN6mhJsrQstaoZuMA86DYC
Sa3BXiqmO4m3iTswdAmKDGb2YpBmLAgaCtaRmojfjgSP7+bgiGVXxMIb1DDN
4Lx5qjn006XJcqyfD11qmkPXsHBlxE9oygoJ1Ndm+veVLjprsPFa+SixWleH
yevdn6HNkng2V8XU9sY+BrxM.hM
-----------end_max5_patcher-----------

I did suggest that a few times in the past, because it is what I do sometimes… it is very ircam-street team to do preprocessing of the signal, optimising for the task… at least this is in their old patches that I’ve learnt that long, long ago :slight_smile:

1 Like

I’ll check out the phase thing later. Just on a lunch break between Zoomeetings (ugh).

Here’s an audio example if you want to take a stab at it (would love to hear the results and see your thinking):

The left channel is the audio direct from the sensory percussion pickup and the right channel is the Earthworks DM20. Recorded at the same time and with no eq/compression/whatever.

It’s things like flams, press rolls, and faster rolls, with some ‘full kit’ playing at the end for good measure.

I think at the time I was still trying to use their onset detection algorithm anyways, so I was doing their “system” and sending MIDI over and then the onset descriptors was completely separate. So it wasn’t too worth while. The performance I got out of the last test was pretty promising though, hence being back on the audio/audio approach.

1 Like

ok, first I listen to both source:

  • the left is super noisy, super high-passed, but just very slightly ahead (I can hear it more than I can see it by the pull in the image)
  • I’m going to set a threshold that is too permissive, to find where the noise floor is. The idea is to get the noise floor to react (slow env vs fast env) when I start the play (that gives a good idea) - you will notice that it helps it become more nervous - around -50 works for me
  • then I set the minslice to something not ridiculous (like 2205 aka 20Hz) and I play with the fastrampdown to smooth the tail a bit, in conjunction with on thresh (I have the off thresh about 6dB below to start with) and I get quite good results…

My thinking: top heavy source is what I want. So nervous in, scrap the low end, and surf that peak.

Patch (dumb) and picture of settings (good) attached. Comments and questions welcome.


----------begin_max5_patcher----------
1227.3ocuWszaaiCD9r8uBAc1qiH0KqdpG189BrXOsnHfQh1lMRhpjT4AJZ+
suCeHYIW4D2J4FfXwGCG98MyPNC+55U9OvegJ889f2+4sZ0WWuZkYH8.qb8W
4WQdIujHMh4STJQKyeicJVgYP9Ce9OvciwaUkTk50FpUu99dexMUcaEqFlzn
JjaPsFsZoVcTPkG4kEc5RpdsznFe+SpvtAizQCQkejUe3dAMWY21nrnsAa7v
ow5On3.SO71.uOoWy2VuV+yl4R6rYSaYI+YAopof+b8Bv6vHrlogA2VdihVL
h21rfzNLbIncM8YfjcfPQewrK96KaYEaAHKKY4zu68w8DoxRAu3S8zdRXuC7
93IJp6GeZfNQfgFD16gft62epOnhirCGa.bsWP+hWZPvT9hK5JjrC0jR+Muq
S48r73Ka4QQAaiAK+Nj1juCcqB3PyNfan+YAB4PYA+VNogWLhuHmz5n8xbR6
x4Slu+d3QokKixs1eiSlu+tjyEKHiuwt54mJY3kjK.uShRt8ISJH4eeBiQh+
TLFekjJ3xjJcmlEQXK0RmEkZJIuVxjpoHP7UjMZpV5+KX4JFulHd8mNeUdIq
4HEhCLzEkn8YSYgheOKTloPBDFa+lfz1H2hJHJhyr3rK1MtuD5AS.SsmURqI
UVflejKoxOb2+JoB4cMj69Sp7QEu4t+4u8H0Ed+EQnN9LW7nb6yjmbzpSKOx
psVXRaAiqGYf.RZI0X2rnHXaZZVbP3Fn0trjNvqkDtWnYPXhA9P8GzZ08REQ
Q631PV.5ugRKbW9exXX8wB1AF3.UzpFtSDbvEDBLFGTGqjcvbrT5XJ2LiF+K
sjRlxMk+CDIK2ej.JVEExuQA+4TquhWPu7h2yKgRxNTxeXDIFqBYYqPuKSC7
wzqWFHbVwxeTNd+ZX.Ly4BwHO1YPRTQpUusPF8HOx1ql1w3TxzSZrCp1ZH72
cQej6dfUc2EXa3FzNxhUPS3ruuGlyTBtyjub23+141MnyujUe9alMZTO9X6g
j2Jx63l60hdCtMABag.mSt3tp4GHSEqngypUtMLLFYJ1NLX.NM8tv83WKxhl
KxRhiMHKdm9SGxz8lIxz0CMOnA2EZgV1Pilt2bgFZof1h6OwKExBvC8m5dyD
Ynnk5PP7tQ9ycy1nglsUCkkcaB0PnkBZgnQgZnYCs3eZjwEETyE4AyylbEar
9xCzbs8gK0kigACOLo68av1mLssG8CI1HMMOA0l5VsYOgT5elaDOcioKq11M
zzUPeh0IuovZeh.Rspf7psBap3WRrOuyTGlnFpHvt2.aW6RYeVxz9JlgxIRz
0XXPNPt8j1R0XCh90T47Rt3dVsF6zAkec5mgkv+vAi78EFsYvOF+QWsF44zZ
0.YghoMUTGlgQI5VoAY6BhbZ2ZL23bdBXomWMheEfdVWT+Pm8HBap54sn7HH
EgCiwYZzDlhiiLsvoQwnkFVPI1RxA5R6KfWxT1SnguppqnP+CBRACvc26cr7
G06SRf+R2LYqgk8ZWFt+ER61AVtMS15GWV2pvYAnLiuOz460sfgPmsJR8AqQ
Fm1+NTvAH3MbQ2oSXoY8x2p38Ds6dw9xtm18M9zw04EsECe0QWFeVDDVEfMs
.NCX9WMxBVy2V++P2DjPd
-----------end_max5_patcher-----------

1 Like

Interesting.

The sound is indeed noisy and highpassed, with a real high-pitched squeal, which is something I had made a thread about a while back in terms of trying to “correct” for that before doing anything else.

What I normally do is have the vanilla Max version open at the same time and massage those settings as I can see the envelope output of that and make decisions accordingly. I still haven’t gotten a solid understanding of how the fast/slow envelope times have an impact on the peaks.

So with you’re tweaking of the settings (verbose style), are you doing that blind? Just poking at the numbers and… imagining what it’s doing?

edit:
I’m now wondering what other kind of pre-processing I could do with that signal to better improv it for “just” onset detection. Obviously the bulk of it is in the high frequency range, so I may try something where I aggressively highpass and maybe even bandpass to see if that improves the results.

Would looking at something like an expander help out too? Or would that just add latency (and potentially complicate things).

Man, that’s crazy! I’m not up on phase stuff (other than knowing, much like impedance, and whether to use effect or affect, the rule of thumb is “it is always the wrong one”), but I imagine it shouldn’t be doing what it’s doing there, heh.

Ok, after a quick initial test. It seems that a hearty bump at 5k (with a shitty biquad~) improves the tracking. I’ll test it across a bunch of material to see if that holds up, but that could perhaps be useful.

It’s kind of tricky to check for this, so I moved the filtergraph~ around a bunch, cutting the frequency initially, to see where it worked the worst, and then boosted around there and roamed around to see if that helped.

Looking at spectrumdraw~ it looks like there’s a lot of energy in the 4-5k range anyways, so it could be that that’s the resonant peak of the hall sensor or whatever it is that’s going on inside the unit.

Bam!

Check this shit out:

So having a really aggressive highpassfreq, along with @tremblap’s settings, coupled with a 5k bump before hitting the onset detection is magic!

Here are the complete settings:
fastrampup 3, fastrampdown 383, offthreshold 5, onthreshold 11, floor -44, highpassfreq 2000, slowrampdown 2205, slowrampup 2205, minslicelength 1024

And here’s the audio from the DPA and the clicks:

2 Likes

I knew we’d get you there :slight_smile: This is fantastic! I hope it’ll behave with the kit around though- this is so nervous i’m afraid it’ll be trigger happy, but you might be able to adjust floor dynamically… watch this idea: if floor was taken from your bd or oh mic, which would tell you how loud the non-snare is!

1 Like

I have the floor set pretty high here, and in the middle of the video I slap the snare around a bit with my hands and no false triggers. For the time being my focus would be on just having a “super snare”, and then seeing how it behaves in a kick.

Although I will do some testing in a bit with a patch where I’m using 3 modular voices driven by the hi-hat contact mic thing I made a while back, this on the snare, and a kick trigger (with the hat and kick being corrected via convolution).

1 Like

Damn this is super toight. Amazing that this is massive effort over so many months (years?!?!). Just really cool to keep tabs on this thread even though onset detection isn’t something I do much.

1 Like
2 Likes

Definitely on the “years” end of the scale, hehe!

Even @Angela, after filming the video, was like “you got your onset detection stuff going finally!”

Oh, and looking through my dirty patch for the video, the click~ you hear in the video is post the onset descriptors stuff, so the latency from the video includes the 512sample delay and associated crunching/processing time of the fluid.bufobjects~(!!).

It’s funny, in going through and trying to put together a patch that triggers that big metal sample library from the performance, I now have a problem where I’m triggering toooo many samples to be intelligible. So I need to find ways to leverage more interesting (and shorter) contours and envelopes to harness this great onset-y power.

2 Likes

Not sure if this is helpful: I used to dynamically change the trigger threshold for piano notes as an offset over the averaged energy of the past 500ms of sound. Therefore, I’m tracking amplitude differences, rather then expecting an absolute level in order to trigger. It was all done in plain Max land. If you are interested, I could dig it out.
Just thought, you might want to adapt your ‘floor’ along those lines.
Hans

@tutschku this is in effect what the algo is doing under the hood. if you set the slow envelop to 22050 that will be your average of the last 500ms at CD sr, and the you can play with the other envelop to make it as fast/slow as you want… the advantage of floor is that it also provides an absolute floor above which you can ignore these difference of thresholds.

Another reason why we ported this in C was that we can do it on buffers, for batch processing, and in real-time in a quite efficient way too. @rodrigo.constanzo has played with my many max versions already, which wetted his appetite since there were a few prototypes that worked pretty well - I’m happy that he is at last happy :slight_smile:

Still trying to wrap my head around those parameters.
Here I have a series of piano notes. The slow envelope is very slow and still some of the attacks are getting subdivided.

Here is a link to the Reaper test session:

I’m using the latest ReaComa and binary versions.

I don’t have your sample to test, but 5-200 (in samples don’t forget) seem to be on the very nervous side of things. For piano I’d expect slower decay at least, in the ballpark of the minslicelength (which again is optimist - do we really want to have potentially 2 attacks 22ms apart? Maybe but for most application, 10 attacks per seconds is quite a lot… but this is why we give access to all parameters. @rodrigo.constanzo wants that level of nervousness, so now he has it :slight_smile:

Inspired by @rodrigo.constanzo 's questions and my own struggle to make sense of those parameters I was poking into the available documentation in search for a ‘verbose’ description of the different slicing processes. You, @tremblap and your team are deeply in that world and take some concepts for granted. They might not be as ‘visible’ to others at this point. As you mentioned many times in past conversations: you are also interested in the gaps of information and the hurdles a user encounters while using the tools. Well, this is one of mine: understanding what those different slicing algorithms are REALLY doing. The documentation mentions slow and fast envelopes, without going any further. If I have missed the location of those explanations, please point me to them.

And how does floor influence all of this? Any sound dropping below it is ignored all together? Is is a type of gate? Where would that gate be in the processing chain?

I’m using these parameters.

Which one should I tweak to prevent the slicing to happen after the beginning, rather than at the moment of onset?

image

@tremblap obviously helped a ton in getting my settings fine-tuned, but to get it part of the way there I played with the Max-version of the algorithm to see the impact that the different parts had:


----------begin_max5_patcher----------
5019.3oc68z0bipikOm9WgJ+vTIUk1q9Vhc1dq6reT67vrUMOLuM8ToH13Dl
qC3Evo6bu0s+suGIAXvFrALX2YlNU2NNR.Rmiz46iN7qe3lYOF+0fzYn+Uze
EcyM+5Gt4FaSlFtI+uuY1K9ecwZ+T6kMKZ6KOFj7sY265Kda15frr21D3dHy
RCeJxe8r6QyVsN1OaF5ukekqhixh7ewdcy9CIglKJ+4Guz1JM+u23ms34vnm
dHIXQl6wRvb7b78HFFOWxDdZIipITw8HkvzNkNGWajV4uv9Lw4sASK6eNunA
.NBifodZ0QNboc1E+3e+iJ4rJOtzvew93HzpO.Gv6dBlF+sO7AyG2+cMpTK0
VLI4hgIE+iJlzBCHAWMWP8nLgl4o4L0ThK4+CJtzyiLGvaBl2ECWJ8lbb4h3
WdIHJqXbxB9pEbm8QFd1IwZMxFjnMnIFkuGwK0RTSwUPR0feRCvOsWvOdLge
9YB+BwH.+rqG7KNS3WqFA3me8fe44A+bJdDfew0C9UCF9sLC4BxH.+xIG9SW
DuInTTRhezS4RQ.DfY9B7AqLgOldeL5d.LgY6fvZEjahkud1zu1NPd6ZtzwZ
Wd9Ks0Yu9tf0dA3KFANaBx6NN6Efu1aD.+2eL1yAeNkNBfu5cGe8BvWvFA15
3u+YqWXCJiOJb0IiGWcm0OsZ7iwrmGA3c1wfNAWzrLKA9.KYN0pIktaaSBrc
JKH4gfH+GWWy1mwxpuyCt4RulWUGBbye+.2TvZLC7ooyUBEXaFknUCCrYuiV
tIbGyIM+rAaJ6x.1sw2NJNLM.sZcbbx.0KWXcegBCZunnXgFZgKsnCor2rvU
dWMIXuFud6KAnkgqVEj.WPE3teRzXVZhlPHDb+EpothxzGn97dNYgBI6.OZM
DkZd+4rlBDfGeTP.h2c5zmi.jfEciABP9tSq9BDfvaTP.52c50Wf.7viBB35
IVXfr.TdhV4Ax6M7e87WKanfOuUNf8G7IWOm5PGJ7yLZE0HCvA.+WOu5PNO3
uI9eC.9ud6+GnWMvXK32.2OhW+Aew0yuFVt37S4Ti7vAqHGBtCwsFD0rue7X
SQ7YGMfaD8DeTvWfG4AaZ2fhWsJMHqcqbOp0sJ6VTolMWokBIFrgQ3YA3b6d
a0.W7gfqWyPKo53C1i6fwbfD1nGtN30fjzv3nJW8My72roRy2T4VLXl+dr8A
ouurovHWSjxlRBdMr39Yks5m.XgL.ErMwQg+0xXDlGE+jnsg1mjqQXMJeJYW
MLbFR2jGWd6hVQ2UbNlEsRvV9e7bTYURKX09o0wK94fkUvkvp2lfnvnMIAo.
CJ+r74dY2KCV4ucc1CMyand+6k4.06rQta2L6ojvkwQlIQsUBSyECGrmwpsi
4yc.i8Jh72zvMCaL.zRKclB.41zG8SLKT4NBgVzYVb755cUdeqCVkk28lvnn
8vhYwaZuyjvmd9H26iwPmubrmssmzG1F458AXOQ1Co9uVGam4udcNIa8G+W8
iBewOKHKzsDPwkc5bFzyoKRhWutF75540F5YIrGeQvWBWl8bsDCwzCb4gaJ1
DMqbUdY3SAoY0aKy+oz5sjl8lCoWoosOlSC+PVvKaVCPQ8KnVd1UkfsJysZs
eTQy04z8eGkBTronrm8yPl8SoOGm8MTl+OaaL.YVHPo9vDK.XJZa5UXqWbBJ
KF4+Zb3RDfzAFfnvzzsAoyqNLqCiBVDuMJqFyhVbEJI2w9VBAskVmqpPOzlj
9C7H3r52v9hHtoPLQNanAhUqI5XOwGIA.M4x5BQNgfj18OnCg.xLTDtjv0RM
QxwR58H8Ao2TmQRk9IrIQKWFrzGQjihZBix5J1QolqEJFVwYbrlhYD.s3Yz5
33HGZyHGM9pib7W53hiRCe50ziuE59tgqXhczWZ0o24zFxgzNxgNhHG2icV2
nNjp4f9kd.AhhpEDgg5fkm1uCf5fcDVHU5ofwZU101mTzxfu11lkcx2MbGag
wtETM82LhJMdaxhh0+hEEDoFbBRpxBiJU24utaqMBPHcZgp2yh7G9ImEFtOS
1rn3gexYAq0IQdiE5nNynHxxGbJc8feVVR3iaybqcUU5tWJG.Zp9n+5bQ+kp
N1ftCeX2jabrt4imLCc6Ph41jDbOqUr.O34LOFErgGZwKOxMD9ws7oAC8D8y
qUjwCCktNbYv2PBX9hESJxho4yEF45JOhmWdXP0mHLnrFRaK0UFWw4Dr8ioA
cwbRrZDcQvz9iuzWK7keV7xG6NEX6acNH54bYuidNWNapgW3ZBeY6KeCUIRH
mATeXJhn08lyBmM4f8FzygaLWy4CxDmd9BV+gSxObdTgWH4NAPRGtTXoULGF
fe38ne38ne38ng48HfQQVPRvRj+1kgwHfCSqd+gdbC47bQ0wCOmovdJvftbE
GkzBqV6sUbdWFGAcLDjCuDFMTzBM27VaJ9RFLlPc8wDNognEayhWsZnni7Hq
jiOTCFeHt93Cd1yn3DPxFBLkDHh9RbBzxy.mvJZMzaDDSa2jPI1nGSn5Aiht
9dQMC8HZ0Q87kMOSO3zj1dRmZk4CFWIzZlVJXBImKL9JzssZPNRkwuLtCqCt
adURv+21fnEucddblhktfxxlywdXdYDa0FSsNCLE8p6UUm7JPJLn6M5mbjeb
zOA51AZBkFTR9g9IPek30wO8VUpyihVWFtvHV2O4sttQjnkyoTOoRryMILIa
v3Wh5pieW3mtveYY1BzICeZCK4TTmxfMbBLix3UNpGX7fceMQbYvR1IxHhGJ
cl8oboMtEpuiA2s3S6lzd4n91d5PVckn57wS59imZU2lRj0EOvH46Z7Hy000
m9LhJBG2+vhbbKDt7AJwr71sfCvO3BW.RDRJxpKOsjxkXtGGyIb98Fy7vJBE
qzZ.gyzTaSTSHIIZsVQEJIv5Z9TE1CCAdmfLh3DPl4GIQKXvrmYgLSKLOrli
gFcvJmfYLFVPoJkPMo.Fuiw1xnfw6qkLdWWxTGGxv2W4iIb9RGo462cqDMLg
OBwC48Dj0U1Bb7+jFNze4E+MnOJwyQt+QlOrz9zY5sRCldC1Jo4.iQVdZtdp
.TIZ3DKnl7PT7jeVv2Pzxzv4XErotDsBgEJUfciRIHWftSoCgWuCcAskr7kN
dvevxmBZOPbENW3zGlUmS5ZLceo8NhbJ1jC2ko4Wqv9dkmq12r2vZMgn58hs
hN4a1W7rIy0Oq3tVrPC.sGvO2S4wKBAsPz+EZxjCyizF7BB6F3rMfM35omvN
0+4yZg1s4Vn4yw6WP45eLXkSOibXB.W125Na7ReldeWn0EZfHG9Q4ApuXR2.
p4fLvmSUDONkvzRUddqH6eDpagxmOdXmkAq8e6a.eIr4+mEC.Vdf34yIBrPw
Tf0PNtd5AHga5Y.T3Y3kaSbp6MHEaL4dinY9ddd8ufMfmd5gzrXSJqmNfRQY
SvuKUhajefp2vOwax4+8TPz2P+TwhNhn1Uu9NizPoIEbHTd+y4n+ILmTVltY
NrpzPdonx0jxRH44xRRwONTS+HsT9QZobhXquLnRld0gfFTa27+aPz53Sc3B
Tt3z4Nwwx7PywD6457lHg5pK0ky16A0.s5ohCgq.IO6OFBR8RdC4HTtEVdu6
2+4jOG8mMkEoRM.t0jhtV2DBStOQbWh4+gQKRBLtsG8Iq2n9WJukcWxJzs4m
Jk+sOgvne2uC4rp51vHxcnOA23c+p8hyxuLnE2cm8aleErNM.U4o7uiv2g1+
Nx+xGQ2VNktq5C4yYlOArAAt3hmjcr+8ytLQ4LL5DmboSGrp7cVzcAq53Ayr
kfUQt5Q7EFw5Hi1gVd9A7SM3Hby6WNoLIAPR1U2oNgmvERGmCxi3Q2R4EKCy
LKWO9Tc+XeekO14c5A4201JMDoqi+BJH50f0fz9hdaJamZrhAZpLJlcS.y48
OP.Bq95US6oSqTpX5KuuqLGk1gBufg2iJ7xmd38VirIj+R+MYAlrSJ9Eze9O
f9K.O8GAKxu6XU+Dkkyn1jy166K87itHtkZ5OsqlgcAP.oK7WGXNmzfMGu3u
FDsuD4JfF8bw2w.UyHGhNvd6mhemtXPwt.fdvZX1iBByd1jhi.PihSPls9KB
ydCsz5WByoFGrO09NdnILB6H1jCBSrFfa71rVRnX4tpDHkr+gG+zzCdSONw5
HJ.WjBaC.vtF6.zJPc83u.3pkAK7equnChP0VAjwUGs5ExfImdjgwjVixCkU
QfUq8gqbIxOKyewOm1a4ADKSPohOmP0LgziwxcRgmr2jHrKAIxhmeILCv.fc
lOsqhp1Y.FDHXqPtTN7aAgJ8DrJ0L2dAuT0jWScxPzVcBU0iudi7+3Ng8Tu4
dTNVQoRgjtqVX0K+uM8wZJ6HgT8TfpzykV6iAnN8QdHAdrAHStylUxb+nkFX
6+6.7SA8b7.StwkdZ7TGf3FNjmsnSGa.vesjt6HAISaplu6Ii9vTt6zUh8VH
GyasVRZZ4WhtsPFqoTsDlsEz75V7bC6Ux76J00pdB2MRLx50LnQ1a86jS6h0
h1vlaesgHhdy565UZ.yOYrUvWeATWJLBsXaho.JeTICGUY.WExBTFPseH57z
8WafKfpQ9OlFu1vJogxocWEHZNa3VNmr4bJmfoJMyTJXnkUR69IR7BXQ3dIX
cy18IK7ZB1iJoXM2Sh8LGFi7CDbuJF13oGnxyFZftGrzK90.z+0+YuWJAZam
wdXS1+qxeKCx5+hn2jqWy1nMFteqJOqRskNM840d2QvIMF4ckx1W+BD6E30T
YK5G8bRP5yeCYhH+zVdMZJT8DlbtnmZR.lYO40KhpGBhypBIPOjUwoTAog5N
ICe73zdjCJxznlw+SPTPhOHiH2oB9ktUvemiEd0e8VPuCqo1fwjO9FhNW7R5
c6L6NLBF.imGrS54eN5yQ+jaCI5S42tCbdYqw97utHvXTZzRSouKBXoksMIB
8Xfw2kOFrJNI.9k4wkKr1bwO4GFcKLF2i..6N34WXr6mL0Jufh6KG.V3add6
e+lveffINb2F+iXBLRPzxz8.9aspdeWMeqb6tu8XP1WBfYMnFlABL5gAOOqz
U3A1jP2bH6KOGt3Yn8BqwAMSVut9rzL+V9eXdd4L7+DfZ2..Y9eVdZDyOWLn
MwfsO1a6O9KMqNnZHT54F92ztdgKecrA7p65CN8EK+iZLU9dwhsLtUkbbZUO
k0t4U22joV8BmJbm0bp4MwAXAFuLeenmxJLYCI7WuvmxQL6mbQf1O4IyA5zg
VshblixoA.8gPkDmb3643YSth4H6rzWGGk2ATbkPqPZ3vZbxEh55AAF8z+2N
Pjq1ar1FduvfFOqA4Dmav3T8b89UcL0.7D10h5G3FOs0kMC0rVokRJnMiywD
8O607FtdP1wndnXcnq8C+YNR6fvd5Uqv90VbWqDzyCVX57H0gAxjy56NIPc4
7XM3oiV2g4Ss.SOsSGXj3mX1HZa1PlhYC8TaJXsuVcNmXqhWR4gKsJ2juuVR
cuokAAMZZo+aYJ7AsNBfN6TfN4hB5RapBSMLdqq3fhezNHJmya.M1J9qQ.4b
JZFprOaSaFjEBrqZzXqqHZrvy8iRYJmCXmvoC6bDfNxIfNhW6rDF+kdg1kkz
vN..rkl6nLMgYLO2KymC56LQCJVW4T2FqQo.zVviA5TQ4LaBuHvDkGfEzBEW
ZVEMnFolQoXB2yj66iAaq8lTsbhlUeONyIcAmyFAwvptPBqOeRXE15QHEQNW
ojDMKmJ0PWPkjV56LANop+acsUrl18qx3NzjlGZ7YMzBbWFZ9T.0cZnqePvu
nPs0GiMM1zyar6BB+hoslnKxsnWroCuKZInjSw1wNMzxV1Rvt.CsdJnD5zPa
IWHGNz7oenI5ofFj2IFthIYaVWFZ4jvquSC8drFujHbdc9L6oT.CaE7yo3C8
qjTOmbvIh8vKbzoakcApFCMu3cQu58HnZF+YL6EqL0RHBkioLaYDj4IaouQe
OXm.D0jP4Q6frtBUwNuQpKZj64MFiTW0HmblCDSclt75LrNp48ydVy70lCC1
dYcTtIBG104hCnccuK8bGIRG1pNBFZ4IcuTlHJSZJWM89x8hxA8bt.VWT7dO
xmwrXnM3INsKJqT3W3yejHcQTI4Dr5UfXQwd4hOSOmY9QnURtjqMlT20qC5Z
txSwXTkjUjoKlZvvgxdO7JGat4cBMQIcPhXSfu6rk1dOBi6GHTM0SnKe4o5R
J5C6ZrkgRkc150yksucnHcZnNWddTdWUw4rApNqCxYORztBSmM1qKpbHGEXp
SrvmFOceVSbhWW3Xf+dblSuTNd0koxWVGutue1N442sV7q2qdiXFj8pyH6Ui
QNr9hzdsEY+5Jhslh3puB6Ey7xf++h+Wkk0AghJ2QcLf+hEAQY01ZoMqM.Jk
RjluovdZipLUWppcffI4Kj2Wr3tSHiIAFrW4CgQFLSvoh5784qVlbAY+RGwr
WfYeXgHqpqt0.3JoJYyfbMf0TA6oVS.X.IB29MfnQPF6o0KAoo9EmtylmX8.
aUtNrJb85R.pZMwoHAQl8Th+xvJuoIbvOob01puz8M9MR0hyh81nE2FvlAvb
2232N71JtKpGl3Y2Uwx2UY9FzDYu6xO5o7x3hpRsHYSR7l3jx5Yybv1shqea
VbIfVdj+KNQ5Mu7Um5naqhUOpOcX2kcMiCaqvV1wb.lYdi4NqL+MGaxTMUf.
dW+I+rXzexT4ZlMjw2wjqk2pVe329v+uxJ1EG
-----------end_max5_patcher-----------

Even with that, that only helps for getting a ballpark of the thresholds and a bit of the envelope speeds, but it was a lost of poking and testing, in the blind.

I’m sure the others (@tremblap, @weefuzzy, @groma) may have a more technical or meaningful response here, but my understanding is that since we’re in dB-land, silence is infinitely quiet, which means the envelope followers get sucked into infinity, and it takes them time to come back up. So @floor caps the bottom of this, in a way that’s immediately useful for detecting repeated attacks coming from silence. More functionally, it is a floor below which onsets won’t get detected at all.

So at the moment, I mainly massage that variable when I’m tuning the onset detection for my snare. The rest, including thresholds, kind of hold put.

Look at these two results. The above track takes these parameters.

the lower track the following:

Thus, the only difference is rising the floor by 20 db. And suddenly, the second attack is not detected anymore.