Oh nice!
@a.harker is the one that suggested this thesis to me a while back, which I did my best to try to implement some of the ideas from.
Oh nice!
@a.harker is the one that suggested this thesis to me a while back, which I did my best to try to implement some of the ideas from.
This sort of postprocessing is exactly what I am working on right now for our forthcoming onsets object …
Now that @groma hinted at it, I can say we have amplitude and spectral onset objects coming indeed. I like the amplitude only version and @groma and I have a meeting on this very soon indeed… stay tuned!
Awesome, can’t wait!
I imagine it’s already a design consideration, but one of the main places I find most algorithms lacking is when doing things like rolls and buzzes with drums.
don’t hold your breath on these - they are incredibly difficult. But by giving you access to a few different segmentation, with parameters like fft size and that jazz, you will be able to experiment and find a creative solution!
Totally.
There would be little I could do at a parametric level to account for algorithmic/design decisions, so just putting it out there as a use case you could test with.
I also have an idea of feedback (in the cybernetic sense) to kind-of-auto-adjust those in Max, I’ll tell more about it here when I post it. More very soon!
Just to throw my 2c in here. I don’t hear a roll as a series of onsets but as a sustained noisy sound. Perhaps an onset detector isn’t the right thing to be looking for, but some sort of zoomed out classifier
and all of a sudden we’re back to the other thread…
it depends on the quality of the drummer
(although @a.harker has agreed with me that the poor quality of Quest Love press roll in the intro of Booty (Badu, 2000) does not make him a lesser groove machine after in that amazing track) a press roll is definitely a single perceptual object, but there are other types of rolls that are iterative by nature, and would be ambiguous in Schaeffer’s taxonomy!
I agree with all of that, but I guess as roll I just meant many fast hits in succession.
So after spending some quality time with @weefuzzy on this, it seems that the thesis is doing spectral frame processing and offers some other exciting ideas… and that triggered a lot more ideas too
I’ll need to check bonk~ and aubio performance in pd… stay tuned!
Ok, based on a cool hang and chat with @tremblap this week, I’ve incorporated some of his sample-accurate funny business into the differential-based onset detection patch posted above.
The only thing that’s different now is the velocity side of things. It has a latency of 2.5ms now (vs 15ms in the previous one) thanks to the sample accurate-ness of the onset detection and envelope follower.
For some reason the first onset it reports is always wrong (it reports a dB of 0.0 (0.909091 after scaling)) no matter what the input is. I don’t know if it’s some weird signal-rate order of operations stuff, but I don’t see why/where this would be happening, and why it only happens for the first attack.
But other than that, it works pretty well.
Give it a spin and let me know what you think (and if anyone has thoughts on why the first onset is wrong, I’m all ears too):
----------begin_max5_patcher----------
3589.3oc0b08aqaaE+4b+qfvOTjL3qm32RqMEsaCX8kAzG1a8VbgrEsiZkk7
jjStoEM+suCIkjsjksksXRyBPbbHoD4uy2mCozu+galLO6KphIn+F5mP2byu
+gatwzjtgap9+alrN7KKRBKLCaRp5or4+xjo1tJUeozz7usNbC5iBuYHwLD7
IdV8P1DVt3g3zUeNWsnzNSRxLuoHoOdFmQ88YDojxnR9TD1yzEA9D8yU2fzs
qiSSTkl4muqwrsk0shqZMNxrXfE3Gox5EfcbkOuQYm8ISP+rtm+3CeP+wzwA
7UgkpWPDD9D3kvnF.Sjy39BLwS3wYBeMf4AmFujdwK4P7R7OJdKhWkFlLYZy
2bI9UQqTubBri8XZDJjxYBhOkKBnTdfgYyNCuFOTrKoGE6yCSWoQt4utD2Eo
gaJdHq7kyKmSwZnyvx.KOWvtFddOx3RxQw8xjrvRmB3EO.jvAwpAwbgzCXxD
AVhsh47qgU2GjwmSL+sT3tVwtGKYNS312+OAg6vGNubMGPMVRHLLA6Y0nkTG
IYKjukrYXEBC6THlELS.+HwRNIf.5w9.GFLoICjTJQJnhJAcew0PAXGRAXjg
aOeZs99zWCE+HUR3yufvXO8umR+mX.OGz+kbN7eAbJlnIJANRrf7lp8uIWsQ
kFgh1lGVFmkdBnSk9y38a5KHvQl9HduMQzrtnLqHb8lhSoPPIdZ.y05.XhOI
f6G3as7AM4FKe3fAnB3d48UpzWPeWMSGgkB1obA3SOV7MXByQrd14E62eEpx
qPcEruYxx3D0ip7BsT7to3lIga1rWy2r2knoU+Rl4F4Osoo3TaSdMMkqdLt9
5oMsFlCzoRfHsM2rRm7kFhn91jEoxS2FaVJ1FAtV0RxveRCWqJ1DtvdwQEal
Abk5avj87DA9fzNfM5XAXC8ly71QvAYfUIYK9UUz9K6IYfhcbJnfWnRKsJ26
2cjZY31jxOuLKsrH92LqBr1oWO8urZU1amZbXfv2mGqkWqFxp73nrT8hnE2P
2b8zAlSMwLo+bGXLi.h7rmKFjS.xxQ5r..41h4g4Zl07D0dZbfjeVVR6tZtt
D0xxpt2Dml1gJVls43clGu5gSbsyyfNWep6somhOuM016mA4hxOWD9XapcYX
RRkhb6a+WBSiWCImUFaYADulNUog.PenXQdVRRK7Z64wd5IBjyWndJNp7AyD
suv.L73M0BQSZ3xQwqTEksaqLbUQ6VJJe1Rz2qosyqzi+boZ8lD.EsGPqr12
WoceSdsZuiouEfFndjS20eKw0u4eCBQFEvnuc+A0mWeowqOFazAEBaHfz8Ea
qu8cUUNlAwiaT7f3D6hfdzVOlGy85VSNL2yeHFb9k+LxpubKvku6q+T9mR+w
v7v0MABbKig8zR.HXseO1ND8uwoKxUqASJn6QfgIzes4R1Mjknas2cz2bOxC
8UeExlY0swo36P2CW3c+tYvkUCCZwd0k+g9OpjBEZu6x2h7tC08Jp9xGQ21r
jta+axmJ0eBTELL356jYt+5I0jEi2zJayWoXVKOrs8xFm1TxjyIYYx1f500W
5ghOdWp3SqUvwhp50mV.y7PIFLrugZHOO033JSd8SMX8w5246IIN8XFcLqWc
+8SGJx1lunlpVo1hZuxAinkwoMdh+ol3dziaPbgKcMfG3ZPbz0vNRiJJtTyt
luZQVhMBoeBbQDLcuOz1Cr2E6s3BCVcQ1ZsV7gopmj8DRk9nJAb5W2qlLrHa
aZ49QV2WZs1n3If3DCrb64WE4JOP2LkdYAt50Sfq7INDqKgH.tZrR.sEMVkj
WKrxbIVuU6SBEFEtoTEgVlmsF8ieO5+.1xmCoie2opNi0ErutBTcKutu0twd
AH2xwLYTD.rSI.EKBSTnxLDjxw5vDvudDJW6n7RY7BClgTTOjb3YhYwA7dN0
oPWk.qdjJtDBADoqtGJKGoE6WDW9LJxTVhXcqoHctT8RQnmH4c.2lL00IWzY
CIvDSFUL430GBbIMwTEJfVT.hA.raYJ.sDhVO6IfVEoVD97kRNvbiBCmi6T2
p.tiHETgKIE57Y0gL.5FgOlECVGRBgQFgBKKCW7qEWrW.rwKf.rLh6TBi.gi
TPntUAYwCqiKAJ.jj4JU9k6JPNSyeY.hIcqfK2yQPlHm3thRUhHmxjOjtk1I
Ffq.BySRHBtPiPmUAJ7wKGcbpaq+V4I2KUguM.3WOnJeyPZNLCJvZVgprw59
4gN3+ZVv9QvfwmA5zdgNsG2XGuBySq98pvu81c9MRymEbvFoYS7i5MZ8w5ZE
zXUQ2g0jI51Zmrgq2jDWtEB8BR9WagEO6tlfshSiTFX54PaYWzJnWKbGsPi8
WuZOKk1+vvgrUbzAl9ZTf6VRFGR2fAEud658nWOAwKEmhVrMOWWBlS4bfdtv
E09D8oA7f.Q0daF36pfAbZbQgyKxRzlQRyhKfHgRxxtX+gbrmEa83NT3pH.H
NMUvvsQwYn3SsmbUULQWIRu.hf3AVWzLSevGO8fzftNPI8bIndHdCLDsNOjl
W1iJz+7eborx5P6w.ujy8j9l.Ys6KuKXhANLllsoazV9VhVN4ZrjQY3Y1SZg
znpJB7BZNiM58kj6jcgjHNlwrSe1adU1axhj3H0KPhq.x73StNG.zdih3baR
OcvgJ5coDrWg8tuhPoKTu4iqSBSdj.tN2oTb3zJ76.Z0h7rhhWPD90QkHTC0
.qIV6r334ny0XvURfdcNsi+kWFiNW0IiwSv2YnBG3pyLEg7NPV5aeAocJdMD
IF2F4UeGqJF2UDI16.hT4C4phGLlwwixHduzJLULi6HK4AukTKyJ77FZzoB1
Mftykjn2fO13m7PV0WBjcBD8UIGw+kJUkGBA4WUR3vlhBGtqrvOFlrERZzTn
TUDZ9yHHDv0E2sqnowovDnqarYQO6SoeJ86rxhn6qtbKbVuUWc0urPoKpXZD
BlzTHlzxs4on4J8NNMWsLKWA+Qe6pxzRO3Ugwo2BywTD.r6f6ecwJuGoOHF0
WWE.VDpuecud8lVifENb05paq2NaUZTQGveqotI20px32t6ayUkOofUMjCsF
A5jng6mI8H3F1WVSUH6oGhW7.zdc0TgzJSRZuJ0qun+t99UEw98.ocC.xp+c
Yt5+tUkt3YHWzxrkKQaxhgDR0W1O7a8mKu7prXZKbaeJDbp8zC4M9bbvBGlM
+IqDVkrXsHikqTQS2eeNtHhD2Z0vX7.hfiwBHV6jjyU1LQuTHQOGQ6K0JYS0
zlN1Jqcritp83CElup.Uqha71LCUoC.doQMJmL36UzYHJPjUsyneMFRd6HBY
zCSvXucK2rqSdMefGcdaT7UwUtJtvwra+HXjAL5EEuboRWSJfrgbXo77raiA
Ex0m5i883LbPszszYaiwqu1+GGUT0THHH+tv+r0DevQLFveGDwXXYVz7WFSR
rGtgILeGsgIAh++lBUKG8JRgjuGnPyKFE8gP763AkJcE8wI4YXVDsOlZVxU2
iFVEQ6fiDFo0YB6XmGLfWhvGgwL3Yx2dSN4L0Y4rNNxDGYE3HAlyyjTHN7gJ
0X6638vAiicepMv1sP9vtZl+r7H6CVf2nftlWeVhLdHPmHBlw7kLhzy9iwYn
u7H88mCP7ZMnloFOtoVNfoV63puo160ep0O7Zmk8QEPXKcqaOOXFt6CZWOCz
4DTwPIn3+TlZB6TDzJYdpfNyGD54r.6O9TvGlPbj9btjAeP5CA6NOsW+TM.q
mAtXhzO7sm2iPqwz5D.eXNMia4.yD8b3tEsYXYX0QdRv8s1P4yvATPqqxFJN
PuM3zy0Gl6MiaKHQ0Oxo0J88zmCnIryPS3GiCgeM3PmUYVbIKm9YQPtNZxIC
q8w6C49ToVKk5c7FaOdaG1oCPGYHlpFq.H1bnrY5ylMX8usAMqfTO84.vcNi
J3fiqqG3KHLgGKf4wvLlAkdPrTdRfEDHo9DSSDIixv.aQR3RwoYx91GxVPWi
J7D5qfWuGjTaIu6ouQRFzuLMNqHrjbBadBN34Nfx.DynlG+AtG32FnB9bISn
EQ0jFgOkP7v.+CXotP2qyhp+UNU9dbkOjDOpYLialFh8I+waeRDXBIQpSmPJ
v9zJsTsdAgSNReiDbB4kK55nn3F1TieMhHeHgcIeyb.xGhUTxa1xwjIBdHoz
O5YZnZVis1AT4HiIcDV45WY22DKhOVdvQJsRU+vtFKM.O.1pCLiEHLPif4yf
7Qa8Xiw5umwBLugjH5IAFdH.iXW9XtPGNtutx41eHSOQetnpWmCb0ob85Wes
N1FFd80HAyn5e39RASv70N0F53z4ie3Q1fHNrrG8LRW60hHFbJ6ithmhg3Xv
LUiVLaPlhIt.TCIhSlKjm8F9D45bSF0BGOjR0zAcuSV4j2nPkk1C21aanx3g
jwQfvAhtMU767piiepFBnNLXO6FG04cgjdR57NPpy6+nCe2Gc726QcemGYde
GYe2uzYypZ1Vt0geQz7NZo9sJTaJP3hEpzxV5K9ZANPNgfE5uIAG3dr1xesd
KErKjgJI1cNYz6bnYjeNNUSYTmqplSq3V5i5P2WqMSVCq935rc1m61Bv6cF.
6Gxs.KiPA+k5EBUpqDj9afk.N10Kq0phhv5G879WXyWsLNIoY4s+aeq58sbx
p7vn3cGTjJzfa3cl2wfS68a38eMPYtLR8kAVBA5vzd+1gWV8UQB7vAFYDZkL
h9aPS3NWUX5ppWXTx8dqGsIOaSVdyaNqYPhD0ieaYVCPqyts4E7kqjpZqcLL
t39OFhCP5xrVXfXkmwGCCnRzfqVxxZjom2tYZT7g+3C+OZKcmv.
-----------end_max5_patcher-----------
Sexy!
A few ideas for improvements:
Ugly patch attached - it is more nervous, and yet another variation. It seems that none are perfect, and all work differently. I use the brush drum to test.
----------begin_max5_patcher----------
2176.3ocwaszjaiaD9rleEnTkZqYpRZBdwWYiS4bKG1C495TSQQBog6RQpPB
YOSbY+aOM.H4PJQpgTBZjWuTz3Ui9qefF.M+9cyluJ+EQ4bzeC86nYy99cyl
oKRUvrp+8r4aCeIJMrT2r4qSyy1uc9BSUkxWSE5xqKIeuLUHkutSXFUnBz7U
gYali9OUMYWnL54jrMOUHhjlVQCBdDu.43qehUOozGwMcYcdw1PcacqJAlDI
Y.kzyJRUgIw54R9p+XIkMugbEgaERQwShrvUloK9sQwLg0CCUU3Ot6N0iEiD
O1JJKC2HpIlT7hzfSEh+6dQVzqn+BYARC.S.yNEVwvbE9DnQIBgcDX0AZn8.
Mj48x9jyf8yDeCFxi49jT.viEkIaxPeNGdq.wQetPTtKOqTfdNYyy6fw.8YY
9t7z7MuhVsWBc4a4Exmm.REmDISxyBKdcLXFg3o9g49NfVO5SDuqNnklGFqT
mfoI1xJKTsgkOexrMy8py1QgkQgwheNAVVoVEldRFm.1GTGPjy0xZWuIal3v
rGqWFku6TbXOL.GzU8.Ffwb0ptLbyOilEZDdEf+mJvaoudfVxOXfZwgX6Ibg
1jrc+1ehVR3NWGILkpYnfoKg41S.a59jDvTrQ.6V4TBW+b7Fm98y.0qtEkuc
qHS1YhjjEKdwxVvaDY+D8438EgJewJAhkE00Pkimi1Hf5NYGYACHqaSTQQEu
Ww7yTqiI9pnnDXqVsd17vc6ZU7rVcQgX+Qtdf7VzTTRloHVSQEhulT2emlRC
K.VWB789BCp8hasRpZXxg0Qy1mzH9zxt6pGvZzxymnsvIXpIRAh9Gm1V7ylK
hSjJTd0lHXA3BSWwOFrn0CR6NrZSZdzeJhaogARychrjrcvB6fhlV72o5Xw5
v8oxmVmmIKS9eZdh.hs9pecXjXvNmAgvoAj+YQBnrT2jMEIw4YpIQGwip3Zx
ANJLJMNsYFcKxB20SmAsE.JGnxRfI2WtJrPI8pBljVWoLOOsaUM8KUrVVU8t
jrrCPQHHngqr.hU5D8cUNT41SM15ZJeZelo1m.yY4SkgesKZKCSSqru6N7uD
lk.AeKjIFQ.E2ToIf5mKiJxSS6vulZ9ZO0DCJ9QhukDCw4oHTakAn4I6pUhl
2HkiS1HJkcKSFtoraIG4pAJZ+pJC6mjhs6RAtnaC5r8m1Vws8D1o7C7HFAlj
pVt3s5Oddb5v1p1fywF.CstmmIf.hdKStUwxxZqdWOh8XxMjuxgBcnYr52Bb
POpUK.Ea5y+JoTlW7JxX9bOHze3W+RwWx92p8lgpW43dNmf0KCByuOQLMQ8+
IYQEB0RYnOo8I8Wa5xaMYM5dyni96eBgQ+xufhdVE0y8IYjGPeB53CeW2XYU
yfRL8V9C0OhTXeIsFk+AB+.5vdT8xRz8MSoGZOHeQpdBnAAZb8Hoo8uNuFVz
q4V469L055rNb20hSxPjKVa7DZcz2hUo85uGqWg6WuhbBMmOFDBn3Xfngw.N
QuaJl26CBCXbwGFDv8.BusrUZR1P9qzyWU88iNk46Khpk1UF3ntybv+KDQPy
h3+dybU0tQIal5bfLx4f6fygpBMkXmnYg0ICi9SzZ0+MgvXWCaeWpNrqCd4j
6NmUsEFyQd4FL4vZo8GVK6ZbpDTv..szydmMQM2a1.DgL8n5s3IYUuYoC4+B
QJR9LDf6ynos8NfcTbGiGXB+z3yD24TM6aI52moaD5CttrE1P+P3Q3pxZ739
vUJmoKcvOLsi1nVva1nhEgFmaIxrzGOIXvgS06pk6z5L5rBJbSUPVxOOXfUs
qd6AC2VsAmyDFLWBhEgA2aJL3dlvf49MrHL3eSgAuyz2.kYYXH3VBCSz0.28
QsiAC2ysEFvuopBrIhANZLvIvxXf2sDCnSFCTa3JfXYL3l5YjbNX.uh6sGFb
SWjbhNE0G9.2wbdtAVCB3eDPvUJwIp2kgGoUpSvGBT3MfxzynBxHfoqatVbk
fPOtIhiO.Hz4VCgmwEQ6xd7BuF527125dn0iyGykPa1t5OQDL7W7U5pIY9l6
ZqmbW588Jw5QWAO4H0r3U5VllDK.D6JbYtM2au4lK7o1Bw7tk.1xqT9qvvZT
hwNKTpGiw2Njha.JEJyiWcsxzm.yoy6eVHUOdq8o2dCP0MhoeXWLCVxqkIHA
aMaPe1sT6ZU40R2xC2+U9bt5VL9GANccBXh4243aulALw7t0ALomdVVohEnw
Oei1jS8y9imB2SnAjSmLSiNuuzTr6kJZvjCuHuJj4nKvi04VDG316Tohc802
cD5OVJQFCgr.cTAQ7tDRsF5ESI9HHzAyFchTOryfwRY5X.SUBOe4RMuQPIUh
1BQZdYTpVI6zJHjOH4la+hM7kAl3wnaFXAVjMFwF2BRMmwH0XbanIRFql3kR
owHjTYt6ESHe1XcUcohIe5H0GtXVBOFqX70vo3nH8glfVxxdLtTNPZ2PY5kY
oOJRaiEVUiA88LK7rDgHumbzwRD5cUXrhuKmQqZRuTRwGMo55TwDJ4A4EuhJ
GjO7GjK7GmG7CmC7Gl+65be2DS9Agu1rQAHTd2lzysNgx6BApcOpy.9mRxTy
81GO4aOZkI7yCihfnq6j079pl4yBnDW0ad3.eLuau5jm8jpwr5A9QmZvbQk3
p.Hwga2X9VX1mT6tos3sCC2ZKK8yxcl5bJygpS3elG0gqei5wcHUSeqMs57k
RZKYwpMqSRSaXn1e6F0aJa9lhv3j2t8oJ9mzH6bg+3sn2257APn6Fstad99.
xsn22Nta08hFfIAZcDVkNh5MnHxA8B1Dd0WWfWqTjeWQ9t7hlOyhGYAMseuL
ugQaxiz57hrewWWqiwIEa+gNMBsKsLiCpUXp9MfmYA1TyRFt6TSl1Ga.3852
Bk4neS8AUL+bnOzmeb2+GAw02lA
-----------end_max5_patcher-----------
Ok, here’s those ideas incorporated, and tidied.
I have to say I find the slide~ 1 2205 waay too nervous. I get those almost ‘late’ onsets all the time (with brushes). 5samps seems like a good middle ground while still being fast.
I still get the same “first velocity value is wrong” problem, but the normal onset side of stuff is fast/updated.
edit:
It looks like I’m always one onset late, hence the first one being 0.0, so I’ll troubleshoot that and post the fixed version.
(I removed the code for now)
Ok, I’ve played with this more and I can’t seem to fix the problem. It seems like an order of operation thing, but nothing I’ve tried seems to fix it.
It’s this specific part of the patch that’s a problem:

It’s super inconsistent too as sometimes I get the correct value, sometimes I get the previous value, sometimes nothing at all.
I’ve tried delay 0 0 (and up to delay 20 20) before the change~ and before the snapshot~. I’ve tried deferlow and delay 0 after the edge. And nothing seems to make this particular section of the patch work consistently.
Here is the isolated section of the patch showing what I mean.
----------begin_max5_patcher----------
1578.3oc6YszaiaCD9r8uBCc1IP7sTu01C6ksm5ghhEEAxxLJZirngdrIoK1
82dGRJIS4HaK6HGrsnAHBzTjbl4advOR804y7VodVV5s3mV7oEyl804ylY5R
2wrleOyaSzywYQklg4sptpRk6sz9p75Mo4YxJy6PMctMpJ9gz7j6JjwU10lP
X2xVtfPI2JB3LtuOKfERDPeX5s91mK9qcqpptZ+k01U0Kak10zaUTdhW2jRW
azO0pOeivqSSJh1HqjE2IyiVkYlnu9Uea9b8ikiznAEZkr36CZ03lNuWkWkC
RyLgetHMJy6v3AFItkC+EH7QHAJPCDgAZffwMvA9fvQq7.UHcS8FcW2v8gI0
o2scuqSstceTr09ODbVlljqU5Ed2mohp1graTqktNBGjl54Hgxz+1NNbmfg0
znfLPWtDbW9DHkVYTIe1.edwYowO98yNFDa.3.s1sfDdBXFcBXZn3Nh2EXiW
XBk0XH31jmINEBO0oPPLEnSmqYh4LsoQstKcTznxMtWUrIxrD7CY4537CZ8H
+o172TmUkVlktVVb1X.02ACvlefH9mDDJkUf..svtL1hDKbm2ffxvQ1ASMfT
Fq1JOdE0AvBjua7fAENNXzVHp.b0xd.A2YNtt9.ueD1f.1nzItmO539onNOd
fxA3wUneRKyKWmHO6p73l56CvzfhGILNbYxiUvPbQk9OfcWlGss7AU0YmczT
ofDR.xELLFi3hPtgbAmdo62sWPhqQimPiN9AcF5k5twfIG5KBBEgzPrkOEic
E1hWflRGczCWpOFSAGJNDSXAjv.pI9F4KtBVLWLgVrcCoy2nGftLBP.r.ERw
HR.uoyfSUojd5ph6Web4wxAnSYNvZYVzKeeAB4q++bAoFJgnP1sHlOSPDDep
M6O3Zv1EeQoBZisOkWvLrleaGqhheLoPUmut2oNRxUfwpo9618fEJpKkqRT4
wpLUwIJfngqWcRLGlV3Cysfru+C4sS95NUeQV7JcvXXRiowG9DZHm00wH.c0
3ecebBpbv+FvscT8.kOA6VyXK68zcI0hu2fIzPe7xAZfN.UJL4nrFcMSWjRK
Kyx29vc86w+fzgeqR1Gm7g8+Cf5i5VTAvBHn+BkIShheomQh9OP7LgY1omvu
rPX7+GB2KDl+u2HXy37xRy2+B9LQM596GVWppKhaw9lqQawNosVVVklGUkBQ
5NiAaGzfYNiUP7wHI3fYtCRUnOJsdGwqunw3gEM4MIZAdLVs+vh1+5KZxA.b
zaRzzQHY5TDTQFiiEcMPWxXMQzTCtixsNAX6dZ+vBpM05sYQnQXRFIgdOJBI
vWibBwXLRA48pRq3pjUHHW11I1swh1tE1fsrYzFg.7v9rcWufkysePD6OM6n
5UH+RZ63Mzb7hJ.xRU.So5B6kv8L298KL27UQdcZiqDLOPjkUujs+Vm6t+t5
0opeuJppt7teSlWaoI.V08Q0YU8ghUI2mlk0sG8rt2.LGZX63Ye6xlt6SjHj
hPAFtJHh.yMsfFFxNs3YybPsShxZI3P4XA0xgPSlfz6JfalFdmr7QgVI3GF3
SssftP8nd.XYdhkCDVzw.DhEJTaUEs9TXpgciutRkTDsNUZIGahkrtXKbaoX
Au0.6N7msWcd6bbi75bFOZuX8+P6cOli3D7PmDcANb.WehginFcL1tKMWGTK
aQe60y27vkoWTbLnM8hJLADAjPLx3tDMtK2Y8ZFk6d.bkmPC1bhkQh7PbHDF
hCMgVPTL0zRGihlZ+vFYYYThbZ8EiIatKRe3jy.8ENHVNXKzgSN2cZfW250S
6GxT59YGiyKZOW3nitL9LmxefMC57DFYYu7teIqVdC5XZ0.IsDjfSMtadmBF
p6BcETvB0S4msFtSuXc4ljqjF9quDc9JnONjQsk7DDB1l6fQHDY5UvOTHkWf
FZPOh9OcKDOfiESux8mxrL0Sms1EfYHgsxAJ.Ypuw.Dkc36n3SluyGKz2OXp
L.yWK8Cpr0ms5qCE8MteFr0GyXIH2pYShBVXITn0vQW2gS4bRXS3nPXCLAfM
jbjckeuLnpnsGyPb+zz.S7OFUoV7wzjGz2614KeKicyUjpWzxsMWJn4lTm+s
4+CfB4zaz
-----------end_max5_patcher-----------
that’s the bit you changed from my original patch. My version was oversampling but consistent. This version might have the problem of Max lag as I was getting similar issues…
Yeah, I compared it to the version in your patch, but I think the delay~ is in the signal path in your version and avoids the “order of operations” problem as a result.
I couldn’t get that code to freak out at all, but you’re saying you ran into some issues with it?
I get that there would be Max slop since it’s going back to the Max domain, but if anything, the bang from edge~ would come late, and there would be +2/3ms delay on the reported onset, instead of sometimes not reporting at all.
Is there a better way to go from MSP to Max on command (that doesn’t use a snapshot~ 1)?
I ran into issue with similar code to yours (banging a snapshot~) so I kept it in audio.
technically banging like you did (and I did before) is the best. in practice, it is quite fragile I found, so I use snapshot~ 1 → change and it is the best I’ve had. It is in all my descriptor-based processes.
It’s just so expensive…
So is this change~ -> `edge~’ thing an issue of Max slop or is it a bug-y thing?
not really - every millisecond, one number is sent to one comparator then it stops there…
@a.harker explained to me one day why I was getting constant inconsistency but I cannot remember if it had to do with max slop, timings of message processing, bad coding from them, or wrong expectations from me. @weefuzzy might have a clever answer too.