Compensation for loss of volume in ampslice~/ampfeature~ when using floor?

Hi all!

I’m back working with the flucoma package and was working with the ampslice~ and ampfeature~ objects. I noticed that when I higher the @floor above -60 there is gradually more loss of volume, which results in having to adjust the thresholds again as well. I guess it makes sense since less sound will be passed through the gate to the envelope followers, but I would like to not having to go back and forth to much between floor <=> threshold to find the best setting.

I was wondering if there is a “straightforward” formula/calculation that can be used to compensate for the gain loss so I can for example use ampfeature~ and multiply the output to compensate and use an external [thresh~]. I’m not sure if there is a clear correlation between the floor and the gain loss or if it is heavily dependent on the input signal also.

So far I’ve just emperically looked at some compensation gain values that made sense with a floor of -50, -40, -30, -20 giving me some function like: [expr 0.138 * pow(($f1+60)/10, 2.2) + 1.] (or many other varieties that kind of fit the curve). Using this so far works quite well so maybe i’ve already answered my post with this, haha.

In any case curious to hear your thoughts or if anyone else tackeled this in some other way :), below a little patcher to illustrate.

<pre><code>
----------begin_max5_patcher----------
1411.3oc6Ys0ahiCE9Y3WgUz7vbgxZmaMrZ0p9+XlpJCwARUvNqcBscGM7ae
8kjxsDvsXn6JsOPBw1ji+Nmi+NW3mCG3Mk8LQ3A9cv2ACF7ygCFnGRMvflmG
3sD+7rBrPuLukDg.Om3MxLWE44J83bRYAdFAjxqWVvXksKnjSDDZEtJmQenH
mRlwpo5ehe6JvUyVjSm+.mLqxrUBhgigi.gQpqHHRcy2eLDbeyugVuLmVPpD
a+hjCxpqZGE0LZdpd+wl93MA21tqLqq5kRhQfddf6Uy7qgCUWF4HkwiL57hW
7NIPQPMRSBbEPiux.cJuVrP5HcRjdqFnSBcEPibLPKxWQFKlwJIqOBXZrWwP
3FylBemKZB5EMSwz4WADE4G4VD4+ggHeCTBaLUAiijWSNeDgZkIWBfFvXXq1
Vc0GbaegzJBeEtPMob+8NTBTxSxsyAGHmUjWBtQZ4j6IK3cRz2hOwww.qUNP
GebLqfIEpE.IReybseff5DH9GBD+IajIGujHsVOPn3oEZ3.6Eji12Pmw3Kw5
8ZrCockpEFG7IzwTLvFcg4TvDGQ3565Pn83GSdtjKcgQAIfuBJYO84O+oLz2
hge42Pve7CITF6+Ev2.HKbxaX.7QQuGmiNooStNJg+bM.dZSbThFXAtJ4A+9
iBIxmSUjVNDiojhJ7ZKPYjwQ12QFQe+qIJqVHSCdwZvDISkEX0bn81XGQKil
bQv5L1xkxT6O.r+wM.AaIALGmSAxEURnBc9+fEDN4XvOPacCiM48mXBKAea1
ZXG3OwyclxutFXAuaCFBfN5PIJ9pZBWjOWZqjHCTsf.LgavEBFnfIHB8foxf
hyzVUVlzdWSSE.7T1JBcyuo88tSceA8q7BCh1JZdysvaOeGfHu2adlJm3Wom
Vg4TY1.6M62Q2erLqmXR.sIXThFYAwmxiPtKjuJLkRJdUyA6DuQcfWzwReAc
BOoQa+M0GosTlCyHElEUaxsQfWQRe.WUwymVWQ17MQiRsQqpzaE0DVV6vsiu
81KmlWkaRHVmOcqT5ZQGhkcVkLmw4G0LsypWJs457yFC6b1bpZ1atE147hEL
dUGBqKI0po658TKQln5ECnBMyqcWau8F8cI+cJd15S6Vlzje3qWeK7TccRy2
gTsYE04oiwKKEE4yHqA2kIOTH0Xk0kxvBadLk8DUULN3NQA6olEHYO1Z.8RL
CYXyj0HAtSQyUJ2DYbxeIeipYYTSrZVQpb8xmyx1Lvj2JgFZhIFt16QFeC1l
L9YVeRh2oOCeFEWaAo2QbsLLcMX95P3E+ea9NYFZiCiiSBljDBSlDiRhbO+2
+S9smGZXDzobeu+jLrsYVQvINsYVnj+c2MqWC.jQvU07qRHfNo38OYB+AMtQ
PcY3AQmMEe3EihuGk8z5rLBeMPc+kC+eb5M3lok9H+DG06s9a+vq7xu+dG2C
1kpziWVWS5RHj17FhbUWHtlMgXNmIKOq0.emx5ZElapF6T0xFXqAF4Yc.4cf
uVr5yk68OVp26pw2UmHKJkOq8U21GDvlceJQTkS0clXqEoZLjZQcp2sVRwVH
o81NLdJgqCsbVhNwFIitDRFYgjS5VvnyRvplR+wHYaT1A9WBIGXClCbfqbP7
0RPQWIA4GXifBtHVMnUhN4Rb7b+WaOTCJyM5b0v91Pzd0rkZ5Njq0mg1XJQW
BuH6htjf9v3ZCuH9u1b1Yusmq.sMINzt+NOS6ttp8XZ8cvYzPaICbedB1jn.
xEogYy4jnKA2fsB18TCVH3dLp9WbAeQnErITC5.eISsD3xxUDtnYwZQHqj5Q
ldakLR+XN07ntqidbxp710eqdDLWV2j5uBqla5C1ywlR28Vxj.jVm2XUkfSJ
RcUZpdlIJwFbnKla3uF9Oqr.y2C
-----------end_max5_patcher-----------
</code></pre>

I could be missing something, but I’m not entirely sure what volume has to do with anything here. The @floor parameter just sets the threshold under which no onset will be detected at all. It doesn’t Similarly for fluid.ampfeature~ it just ignores any changes in amplitude below a certain level.

This could help visualize exactly what’s happening:


----------begin_max5_patcher----------
1986.3oc6ZszaaiCD9ryuBAcnHEvIfTh501sEcusWVf8zdoYQfrDss5JSoUh
JOZQ6u8cHojMkijMSrxiCa.xCOC4Ly27hux2Oal8hh6n01V+h0WrlM66mMal
jjfvr1OOydS7cI4w0xgYS+VZbxOsmqXUFySVmwVccEMgqDSj6kn4VdDOwu18
Sq+tcJrlMYrbJWJNmVhYoRgWr3qWDFYuajEM7tghDD+wYmI9wbCM17ranWVm
TTROjEiCTVoaj3WNH4mvAHMiNNgChJOiQSJxKpTyCcINvwiDgvQ9nfPhKLKw
TgIRbwta4gEjvgaElBT76KoJ4XuHlsxdOcsXUeM44G56DP7PQgH2n4FSZGFx
XbZ0Mw4BQhAFsjmdEcrHrKoKXTuonfuVeXUfqf1YKReomtb0xGvOg7gMM47r
57rTZ0okOTS4.FAYqlwENxbd8Q7ffr8b36sr4qyR9GFUYW3gCENy68iQbv3A
bvd6PWU7FJD2ulxhWjKskt.uxOzSiQPPk3iHQDDASHRshBvNP1cHJJvMTYHP
f2kfCCCgT7.eYV+HAIm+OHMZPx+IFjvP.IvEG5GhbB8IZMcvQdQdPDIzwY5C
KO28RiBChBPdtPGE+fPeAhBch7ID2PbD7kupwiiC12O.g78wXQ5H9Pgy9MVG
oA3QaWEXT6pARulfFVPxWLngtDR5cR+rcEsLONgZkV0rIunn7.Qj.RjZMXhL
TfjYKNNGrJv3V4X6WLn90B1p76ONP8vRfF5Nk3z4kCmKpZpWC6I63QzPIPiH
SIPcmNfxn2BR7A3bQyxkzpeZI988lj.6E5oAWrS3ww6x7hXtnWd+F.GqkrCw
dxZWNB5qyV8SK7wafhUkqDCpVAQxDM0LEk9AO6w3UUEE2P6hweVDfMBzQR3h
cQFi54GA+tCf+voKJGy4UMYG.Y9tJjgcTQUzioXUHcoZVFWyg8HT1TZaXPNv
wjcWb5I.F6.bClBGPZwsLicAtuwbA9mTNPcdwsOtb.22ZNfP+ovA7nxAHuQb
AjPzD3BVmsZcInykUz+0XWf2aLWvoUF.KsWTYL18eagcGL9TvN.V37fIzbJa
EbNDScBAuwR.Ns0BKX70Uz50E4oF6ABei4ANsECKVt7Q6BHnWFWvXaHjxElu
0Pl9P9IW4l7cwJ+Dxfs7Ku4l4idTmgxJF4hlceFfMyDT2dPmsnN54.0gnW.T
y9o0m0vLrwd3yZgdqPqO2uYFTS33d7SH3pNDnKY5NgvPEKdibBAc6iV05YZc
MyrWlkSugVUmUvzDLT3VVpQdl1TD9yuptBrn4aIkwTjPaIUQuIqa96nFWAdI
N3hZpjX19N+ts6HDSQJshAsi5pjkQ1VSRFCYPef5x3D0jSqKuDhbcBvdmu2w
WdWJX00NDhkQBOesa5Rbqn4EI+CMU2BsKJorLVIDzoLnPXO.XmRWF2jyudIj
pTm8MoYHWaX.9KaMyAYJ.hDC+VUlHh2NjUUYoELgQzKbHH2oNHwp8315fQNB
Vb4.SFRO.+xHLqAP1TuHtRDsZas5zwjWTj2m014kSWxaYWlwX64E4EkiyrB1
Q3Al6hBf4lCIaIm5qaXJtWCIF7qqiuou2lGmm2Vs2W72Eyx1Dyo7LUHvAsko
Z4k00IUE448vqhyMCvIERzSn2lkptlUjdx.L7rxtjH6sQ4zrUzZdeZ73U08o
TyuW4z0H0rnsP9ZNcSYNfh9C.JQxp4PCqaqaGXWhltCX2ympWXq25rG8C0Bs
eaTnwikiNmgtJPr9UApNlkdWwQa28fKEwt+D1+gWm0s5PaejmHbSflRhQdXT
o5t6KW02ORsU.wyJ2CUG9saTMj06M7q+ATwJa2k9I68Fz9cWL0q4sufFnM1n
KinZDCNDo39cHUqn5dKQOD54n2+AqqXczD9rFVx9jgFq27Ww4Mczuh8mh81o
uaiywJVsLzVB9bOMF8WK9bBA2IwrkmKsHqO9QKj06dmUFy5S5ZPPaqgX8q6y
pyzky+8fH+9ULKKvYfs9nE9CVVVhOuaTf74m22bDVBWLpVCQLsqX+.9llWSU
h7JNXnakxmDpRSla+yKZmaebgU3BKrdMOz66DcmdQsycGbElqTh.fbfOIG4G
rrmvJlCzf.BEXipjTuHxCu37ibhiGVFfFtL.OdyC7KiqPzqzLeAIx6DaURdb
sJ2ssBwSdNxhERyUveX2PcQSURW7o0ia02xg0G4Yrsax5KaaPIFmQAgGqM3Y
nMPdlsArA1f+n1vtvSArWpLVafFLjKHQXGUorZ7SyoiVl2jkdY7lxkzXwN2g
iJoesdhcPgr9r7ZtrtHP7mau7eK2ceRbKnvwg.J6tXXHeF4sifbHBRc1f5M2
aXb8WFQe64WO7HF83XNsuOkmZWHQlcbrGwgUM3oZjBqeskJ5retTaL5A4Pjd
Ixij.I9uRaWlFjqjpN+2v2QhopV7TTloZzTqZw8.bTU6pU27j0TPjIZxaBzj
QQRWxvtSzo4NMIRJ9OIY5UsYIQgOKpNv.U2YemVRjyiGjqyRSaOg9oWpfOht
2K2apzs3QLesvs6qntChdE84jWQb68Jpa+WQcaRmjmq3c3qmtCeB5dh1A.A8
5AaS5r3Plf0MbdoTD9ooH0tW26EBD5XuWFXuWE3guHv3uFv9uDf7U.F5E.DG
m4reb1+wTICZK
-----------end_max5_patcher-----------

p.s. the gen~ code in this example is basically like thresh~ but with a temporal lockout. The left outlet gives you a trigger output and the right outlet gives you a gate output.

Thanks for the reply Rodrigo!

What I mean is that (taking your example), if I would set the thresholds for detecting some of the onsets with the @floor -60, but then decide to adjust the floor to get rid of some bleed on the signal and raise it to say -30, the signal has dropped in amplitude. Meaning the thresholds that worked for me before now don’t work and require me to adjust them to a lower range. So I was wondering if there is some way to adjust the floor and not have to adjust the thresholds (so compensate for the loss of amplitude there).

Hopefully the images below illustrate what I mean.



Ah right. I understand what you mean.

In this case, floor is not what you want to mess with at all, but rather just manipulate the thresholding directly.

floor is meant to be the point at which you want to absolutely ignore everything, not for (dynamically) adjusting the onset detection. I tend to set this such that “silence” in my context/environment is flat, so often something like @floor 60 or @floor 54 like in that example I pasted.

The reason you are seeing the yellow line drop is that the line is the differential rather than the signal itself, so that is impacted by clamping the bottom of the signal overall.

There’s a good article on the learn page which goes into a load more detail:
https://learn.flucoma.org/reference/ampslice/

Thanks for sharing the article, I had found that also via the help-files.

That makes sense and also confirms my thought on how it works. Thanks for some clarification on the matter.

In my experience though the floor does help a lot to reduce bleed (for example when using a trigger on the snare and trying to get rid of the kick/toms). I get different results if I leave the floor at -60 and try to remove bleed with the threshold, or when I first higher the floor significantly (like -40) and then choose the thresholds accordingly. In the first case it is more difficult to distinguish between ghostnotes and hard kick hits, while in the other case this seems to be a bit more easy, albeit that I have to lower the threshold significantly due to the drop of the signal.

I’ll try some other approaches in the future too, so far thanks for the help! Much appreciated.

Just to round off I like to share how I’ve “solved” it for now by implementing this gain compensating scaling function that adjusts the signal output gain from ampfeature before going in the threshold detection. This seems to work quite well for my goals so far.

<pre><code>
----------begin_max5_patcher----------
2139.3ocyZ08bihiD+Ym+JT4ZqsR1MwmDH.wM6LUt2tWtptm1W1rUJLHayrX
AGejO1ol4u8qkDfAGvlXisyT0.gtkT2+5tUK0R9aWMY573W3YSQ+SzeflL4a
WMYhhjjvjxumLcs2K9QdYplMUveNd9WmdqlUN+kbEY+nvDzc13YH7rJlhh0w
E4Q7bUOIkTS7x8WEJV9XJ2OWKYaCmY3aQDSK4Kap7ogwLL5OK6idXxeMgq6v
zo0rBCTxGzo6H3FRNTTIXSIsue0UxG2NPTtHJFFitAhw9Ahq5kEd..4Vzz4d
hkcBH2JEXQb5ZOkLrqEdp2ZdNO8QtvadjZ3vcgdxYG8tzQA7NWHv2S.9u7i2
cXMwPaCn1pWtyr1mAIKbovKpSygUmw1FiG.4ujjBSdIlLzufRhe95q+oEje0
Fey+ffe3APymYbC5WQjCe5si1bPrNv42zoikOl+2Ad983Pw8CDSlTyoNp.bp
U0ytzUl6n4uhBehOKyONgumPPO+bnoQgBtebTbpVmAOpigE0ESbswNLpI3Hj
JN3KnlDyZdDIIBaCVDv7qmjAif.jNt8ElaZqrNFXqZmc+921y5Sgu3UpqR2r
p4MeYavXYyf3IpE1kgMcucvj1nLZyz3OtM79lcGpVk6Lacbb9pCMdXcQTdXV
TX.O8cmh9P7Uxrza7UZA2x14B1DpMl5RwTBkprJXGPTNLF10wjYnHA1MSJgw
XPLmisJLbynxyA6D.S8XdmQ0RH8EGnFxMO51KTmyb3KXTkUbUn+eI3YGbFlO
bNIB3PbLILaF1fYSajEf3Z4ZAdDlgw4wsXe4bKGatTWliqC1xDl+a6vrkXjY
3ZSolLhK7OacZBCChssCFaaSHxn+l1zKTh0N7cM8INmxDVfCyCzis2wQJOIx
ymiBRKVGEGm792XgdqllLSkkASNzBGFs0p2GT+ZrXYzqGJPgvL4KMbO.bZb1
v47zhrUPgkGJPIlapj3..p4odyxyKVrfm9Cj78q6I.dGY5gDIMfKwfse7B0l
AECsqBmLFu8I2C5gxT9Ahbn0CoCeoCXx5NJGx14TCxkowwOwqbw2K8u8g48u
Vd0KS7fQ8s6F+rQ6rN7xySKB2yxgPazGMfWVNrncRQxz9AMUWomtBIxfNIfN
OA.iomiB9OH7GD+rX+V.8yivBX9wyBjEE+7Pi.bOxH.yOv3eXQ.Dh6QFBP+3
YBVEtbUBzyEo7+2NLAl5S54XCBbr9.lF.VNHc.deqiMAf8GOrCxBpuzmGwEK
ghB1q+uZsuC2H37wyHDKxWkxyVEGEreKvQuPH6CnAXwh2gE3XWHjhmdAO6+k
7bItQcg41lIycc3wlMtM.BlMr6Go8A6zLnvc54B1hCG0kU3TiZ2iD0L7oG0h
eftuAlQDW36FtdDCce6jfvF6MLO3y4SW8mIcrpMf18cE0pxLdZokozzLY5hv
H9S7zrvXQiVCy3SRZPdRitHsmeUe1XraqIEJzjrpIkxeJrp+N0T8RA6QNXLJ
RUna5K1Ua0QNLwA7TAjMpx4p7rkpjxGJfz.YId95NGjkLC7bUCvzMVYCacw0
TUnGSmOxxtwAgIOEynX++hGzHYBX7S3hPQB3z4BXhPI.pYGvW3UDk+3BHTIK
7uUpAwXVm7WTplcxTBDEF9WogReaYSVlFFDKjJQK2gjbk3fPnxUVZBFUKDdI
czYH5.rK8vLC.YQ1buTo2pLypQEy733n1rp6WDeQdI6jPgXKqXdbR+LSgMRt
i9NOFXtdWishS1iEBM2Gg.i7Gy7dps0N2KJpb1d6g+EOQ3Zubddn1EXfqYpW
cYUleZbTTK7p47TGbBf.ce9ygA5yJE2LX.ZdXRUPzzZubP3RdVdaZ4dKyZSI
K+UsQuAoh4kSjeLmuNIBPQ6F.SQByxgDVOmU1vp.slFfM+3OZNwtYpyVz2UJ
z1oQgTWHilb57VV6K0nitrIJSe.uu4Fieywgrkj1ZkgIUqNTlG4.gqOjTR1x
dQkwtQkNCu937scUuLcM2BUckuX+W4ScW6HUTO+RB5cEh5wpNyzu8ef7Epjs
AeoYukFDUC92PnVb5qHYND903a9D5AQEMoMqP3uMYHw5S+tWTQE8GD+W4V6Z
taiqIZVkLZrD70VMXzds3qoTR0HFt3ZkFg97mQXzO+ynPA5KMkfjVshf9ssY
Uo5p9eCLje6AABAdBB5yHxmPHj76MsBF+7qaqNRMIW1pREQ1sGDeG9OOJiqG
xGxAEsdT9hTTMFy5+7tx91FWDMtHRsugE5lpgtRt3x9tAtR0UMh.fLfuTs7S
noi3Llcjf.bEj9mIQFxLIh99AXclcn+BK565ed6DB74wTHyURN3bkZaAUeLK
6OUI8ckpby1Jj2EZOKVnTJI+tMCYwEo9UdgxLPPXaS8CVeLOTTuIq+nNqNLs
8OGjS3PzA7.zA5ITGHCTGr5UGJIpoLN0+rHpHLXl25jEbO4dyghgZddex8Hg
Q2qN.LzcNx+r9JAPla9Rd7nxZdQ2u4.ig3Rr0FBplHIUoC5qauPj2rnx28Us
T9yLyRuCB2gUNU2Eax1awlpt0dtg11ucrPoG3sw.3lAA8D.3X2pQwoA5525t
r2QUzztkL9njry.Dbk1cTBxc.BpLazQIG5.ji6HfGqAHGSmSgKaHRlZcJBSk
yBGjS7XMtjAHGC5HHHiykfLOWBhhe+gGqBCBJOBhiKYB6BJamKnrsGfr2Zxy
nIaqKnroWPY61bqqmW+so4ED2WPYKOx+KkM2w3xga6gjawlMBYusYueTNRaq
fNnczbZ1D5P1bn4XrwB1PVczz9r4IcOEaSaPdRV67mcJZcIUacsSRot00Ms0
UM81qYp+qXZ6qWRc0RccsRxJnu56W8+QmCUy1
-----------end_max5_patcher-----------
</code></pre>

I see.

Right, if that’s what you’re trying to do, you can do that a different/better way by “locking out” each onset detector separately.

By the nature of proximity, the audio will arrive to the closest mic first, so what you can do is that when an onset is detected at the close mic, you block all other onset detection outputs for a tiny window (5-10ms?). If you want to get precise with it you can calculate the physical distance and just have the “lockout” time be as short as is physically possible given the distances, but that’s probably overkill.

This is more-or-less what MIDI drum brains to do avoid cross talk.

This is what I would do for 2 channels, but you can extrapolate it out to as many channels as you need:


----------begin_max5_patcher----------
827.3oc0X00aaBCE8YxuBFOmM4u3qIsIseGSSUND2T2A1HvoKaUs+1mwlzjr
lPbolltWHBigy8bO2q8w49YAQKjaXsQgeN76gAA2OKHvLT2.A82GDUQ2TTRa
MSKpPVUwDpn41moXaTlwKkE+TtVERqjq283Zpp3FtX0UMrBkEFbV9m.yCgYY
c+jC5thzWC+Q+6HVWwEkLkAOX+f7kFTjKt8ij7ncyTC41oB5F7gYy5tL2Q1H
X+R+IeFYTMTQaIUwBqZCaoU0k5jz.TBgMrf.MLCgL2g1iS1vT86Zl8Mhhblt
3iyVn+XaQIu9wPPHb.JFCHcjBCS69IlbdF1xWInkmfm3myy32E7LMdhoYp+n
4oZEUM7UqXMCvxjTSOnsEjfewsfPj+ZAM.MTrRLRRlIJwfsWewsVfiPiSUy0
O51D7QRpbwR1lwR4wKbXaaXNdrBW1amvgRA6Jx7qvgf+uIbw1NtD6RJiP4PD
+ob1WennkXV+KgjeBs6rQ6I5r.uaEHD.rGkGg.ggugBDLIyFsjQJPXzkQftt
TpA77dofY1cfANXkZdXzBpX0KvR0SaBesrohZPN4oPpgVwTrlqXB5hR19IkC
SUH+4L4Ce4wgcegQV+HljBN4UZKAcDS0fI290W0duFjilZ4Xncid7DvQ3jyw
yIj88sw33ISHQWZgrmij7rISHm9yDsRe3uGcPHsmeEZOufmYIYxYodot51Jo
Tci4bQoINbBvDjkwin18ZoPIzqtZv9aMb8yb7TSj3n89Fs7+X9FvtP4BWHzu
lbbdxzUHj7tpPn+HxWl5fzQWGXPOpjK92+uKCE6F+vzVqbcSwVFrE6vcrbIq
UwETEWJ1eRP6jNpz3JRNATpG.J1Efh8.PXWYDZWUTyRsmySVl6UjiONxfWEx
cqeeVn67g+pytDmzQrOzQWJM8APDmzMuj7Rb.IjOZB1FtCyIhOPB3BRI9.In
KHA7.RHWP5vxSOsDhSHazMnuWCA5Rmc7TPZmP1TBcFRa22kVWeGqos+0MnpM
lbqzL874la4B6sl8xiZX2w2Ne6HzFsUDk1Gx5Fq0gMIVKxQURMvh07dZq4qF
RiomNaFs0TK0Ldil8vr+B7zTofM
-----------end_max5_patcher-----------

In my experience this is 1000% better, more accurate, faster, than trying to adjust all the thresholds/floors to get the drums not triggering each other.

1 Like

This is an interesting approach that I had not thought about! I will give it a shot to see how that works out. Sadly in the current situation i’m not using a trigger on the tom so for that one I still have to rely on the floor/threshold combination, but with the kick this could be a good alternative indeed.

Thanks again!

Are you using triggers (contact mic ones?) or close air mics?

There’s a lot of optimizations you can do with the highpassfreq (much much higher than you think) and the fast/slow envelope parameters. The settings I pasted there are pretty solid overall.

The tom can be tricky with the kick if it’s physically coupled, but the snare I don’t often have many issues with bleed with a snare.

I also find a bit of a 2k bandpass to be useful pre-amp feature.

I use that in SP-Tools as @input modes for all the onset detection/descriptor analysis objects. (@input 2 is optimized for contact mic-based triggers, or @input 4 if you’re using a trigger for onset detection but want to do descriptor analysis with a parallel air mic.

I’m currently using those red ddrum triggers, but also plan to explore other possibilities like using piezos or regular microphones like SM57.

Yeah i’ve been experimenting with the different settings and indeed setting the highpass like already up in the 1500+Hz range helps a lot to get a clearer reading on the transients of the signal. For snare I liked +/- 500 range because I noticed when I play with mallets and without the snare-mat I didn’t get quite enough information to go on.

Thanks for the tip, i’ll give that a shot too.

The SP-Tools are amazing, great project and inspiration! Thanks for all your efforts on that too. (:

1 Like