Ok, rather than re-editing my post above a bunch, I’ll make a new response.
So I’ve made a patch that analyzes for the transients, calculates an nmf @rank 1
on each, and then sums the output into an aggregate dict.
I’m not sure if this is correct as the dicts it makes are huge now (as in, values > 1) and appear to be “clipped”.
On its own that doens’t seem so bad, as the output of fluid.buftransientslice~
spits out tons of really “big” (for a buffer) values.
But using the dicts that this new summing approach has made with fluid.nmfmatch~
gets me no activations at all. So I suspect something has gone awry.
Should I not be “summing” them this way?
Also, does the @filterupdate 1
flag want me to trim the length of the buffers produced by the previous fluid.bufnmf~
?
When trying to run @filterupdate 1
on a dict (summed or unsummed) I get the following error:
fluid.bufnmf~: Pre-prepared dictionary buffer must be [(FFTSize / 2) + 1] frames long, and have [rank] * [channels] channels
Do I need to trip the dicts down? (so with an fft size of 64, I’m getting dicts that are 64 samples long. do they instead need to be 33?)
I’ll post the whole patch once it’s working (and tidied), but this is the bit of the patch that’s taking the the output from getattr samps
(the amount of transients found) and iterating over each, `bufcompose~-ing them in-place in a buffer.
----------begin_max5_patcher----------
1610.3oc0ZszaaaDD9r7uhE5ZkE12O5I61C4RCZAxghhfBCJoUJLlhTfOhcR
Pxu8N6tjzhx5EsXLR8AgUK2Ym46adryR4ud0nwyxdzVLF8qn2iFM5qWMZjeJ
2Dip+9nwqidbdRTgeYiSsOjM6iimDdTo8wR+z+BR0LWVUYhsr7yarg8cbbJr
l+s9owK7qG1iqIBRiLoUqiSAo75fVO4lnx4eHNc0c414kg8hf0SwSPDtZpjp
oRASi0BCSIlfnlotOoSwsJC11f032Whaxuc0UtOlbYvsDMCEeP.OKJc03IGC
3z8BbxoAtVLUazZIWwk3.tUjSfa5vg6MQyuGsIOatsn.sHuZcABitlfhQjCx
FGfBX6kBjmjBnT0TiPIUTBwP3XIEPOw.7hZ3c+qAbFsx9bdnCEP0DkjgHLJC
ni9xDbZuyBTbOSnDSoDofRgOUFom.HZRfkdMRC5DNLOa8r3T6BToc8l1u0Wx
.uWxfexvBnPvTizvEDClSqICJE+CfL.ns1Bo16xFwqRyxsHXcknxGxPeJJoB
JtVurDfMlmUkVtsycaniI8snfIjP3wnBpHJATiIDEwCdF6fnFOfg.V68eGUj
DCw.kQ4kEGzguLIK5.0Cwh8Bc1oqGhMSwthAZHIPJB0Bv3WuLfqQzdetmV02
DdYHmVL8U9Xtpub5C4N4gcD7KCtRvCSvTAyDpwKkmvsxFNfuLoJdwzYUKgb8
MYE1uebZXe3ladgmwyo6oRV6geuFt8Vzmtd42Q27grMEwewhXTzMODm5GK4n
aVtrrcbboMOpLNKsvk+gQ2jGkdOh.KJNAdDrW9iE5OMJHuPZjAoKXkfwUFLt
IFRP38fF8KwW3dmVj8Z0MeWtsHqJedChZKrgdRUKfZjwoddZ6U4vnaU60Cd1
5xkmgnmRWMVzkoqFK9D3hNH5xsKjSpKV.8CftvmkttbbwNGcw6h9r7E17CeD
9vp7c7xs5lbQ597hcbMBdwbr6j1SqJxPnpVC9n5xcnvNpJTjIZylOYyKpWsW
KPo5Ol44a8D+WiSCeE6+Zt8SwMq2eV53nbnTXITGrJ2aYieTxGGDMC7boUw0
NO.efJKJ+bxtE1RiVGD81pEwYuqLprp3t2ZSqBEgATsLpJorKWLaETjOYdVR
v7F09D3Hk5J7iCOcR8zsq88H7TpgSHZfVlxHLEU5GACDhsB7qkgzHDWvMXpa
obIUwE9QZJSvbiv6HF8IcgIlfFvFMlGFASQ.cssXvwQIdKmpbcSVOKbUmMY4
M9TPTS65qJyVkGsH1FZv2mdFbwA51GJkCO0S6dNolSWCDZbiLaG505L9ip4Q
GyADMeNrwcHU3zOtwiNt.PpejJL2V3brMwtdWQUZoT4ITMln0gQvtPocks.D
dtiK5JMEKC5CtSJM3MzXLg2UXWuFd4tKN0E3aa8PLCbaVmXzVWLUo4rtdnwK
yRKaHHH45O2XSQuKBZ+3c10wyxRV7T2DyV0wBgtpHJO2nMBtREvG0DvrP1JW
Go3JAg4WA0v.ACVHA.aW65bRFZCTNP9vYFi1MiP2lG.WBTn0gQOi31MiP1Dd
Hc+oBiB6zOuID+0sk24EC2yzhyCs9fKWqs0MTtc2hySrPc1m1S+UUffJHPRD
1Yf9UryLZ2KayGGI79173njiDQGhN12ns2ztBIbEdCg7bE1Gv4h2X+OOf9rE
6mpH56KRhgyn+a2A3GKld2HuNezzWwEZKvUDkt6M1uTq.Q2V8VU6purzfNA5
6.XHvc.Ar+pkmIyCmF.cZPMaepp6TJ3J6CsenyKfd+F1KgUeoozakb1T+74i
NRxoR65QaxdG8bw9orqstYGmmWL79EN6nKuOaqNb2tp7fDYEduO+VRk8ZRea
rjnfiK7Gz0ZfF2Tje.FXd1Co81BextDs4lrePV3u+4n9afXJz2YnHohwngbG
JgPXCuA9lbq8EXgd1i49KzIu6P0g23dKTYKsLp2lmlikxvUKjXv37TozPLhg
2F+GaRR1C82Dg6FnBU2HZeWVXA30OYelBCFqGJ.TsdlM+Mvcg5s4qZaIT.Gn
K7HgrcE2Aw.yCM83rvi+9E5mssutckbHhwTmoopuzG3OLCZN2S3Y3Y781COV
Qv9kZXt+e.puJqh7xSDBuNJ+OQfCVEahBulK+ujvUe6p+C3Mm51B
-----------end_max5_patcher-----------