Fluid.bufampgate~: @lookahead/@lookback override @minslicelength, @minsilencelength

As per the subject.

I’m using fluid.bufampgate~ (then combining onsets and offsets with fluid.bufnoveltyslice~). I need to ensure minimum slice lengths for processing by fluid.bufstft~ down the line.

In fluid.bufampgate~ the @lookahead and @lookback operations seem to come later than and override the @minslicelength and @minsilencelength parameters. This results in slice durations that are too low.

Is this expected/preferred behaviour? If so I will code a filter of my own to remove or adjust the slices. However, my first thought was that a minimum should be a minimum.

MacOS 14.7.2, Max 9.0.3, FCM 1.08

Thanks,

Simon

Hello, thanks for this! Can you do a quick demo patch to show? that would help me confirm the behaviour and investigate. If not, no worries, it’ll just take a little more time :slight_smile:

For sure. I thought I would just posit the question first in case it was a known thing.

Here’s an example patch based on the fluid.bufampgate~ help file. Let me know if it’s not clear.

Thanks,

Simon


----------begin_max5_patcher----------
1821.3oc2ZssbhiCD8YxWgJp8gY1hvpK959xl+io1Jk.KGzDisKawjryTa91
WI01fMAegfII09BfaaK08oOcqVs3W2La9prmEkyQ+I5anYy90MylYEYDLq55
Yy2xedcBuz9XyWmscqHUMeAbOk3YkUd4lrcIQHoBsRf3JThfWpPDLFixEEn6
1JSKkIhz0B8GOn17W0iPhLUrNaWpcXnUBy4p0ajoObegXsBTu.GxR7BDk5Z9
h36X9hgWhQ+c0KIirZR1pueKkUO7o61lsSkHTV0GePpLsVHwH6eu4FyGKtPX
3IoZCRsQTJPkBkRaBklKQQxREWa7ZzQ8jPjZEFKEEZPJKNV+rHdZjUZoFNz+
LK0HTVh788OWrxm.fTH1BYAd8hUjqLVsUTVxeP7JrxPIRj0DBKWYA5XdRk3j
rrGWwW+n1JpujuQviptdEO8g4ciGTWKBPYVXwIvxcncfGjvSiGjJofH0+jKf
Ae978iRKnh9QCUNNjlHk8xg.JrkwP7Br.kOsWfJ3iCnREOoUgWgS7UkH7xdL
PHsgOErOKcf5zg44ellWbRFW0gMRlNaLuPdHwS2lnGDzG1qI5ckC86vDtcLN
IuPl0BX8ZArIzIMgDwDc99kkpBAeKhNro5ZYhA98ZpzSapzNC2V7dDxEmrSF
sb0tXpwlQ2UlsqPuN2FQR9R917G3JwRatqxkNCCDTva62qS+bSPaTrqOPngf
XQwKmsk6RgRYbgTuA8Z56Gn0YIYEv.fWRccBwjPOrefCi3rPKJD6FDnWviF5
PH9dFQNt3v.LKjRb8B7X54pwbLRNED9nIV1ERt5451SthS3JkH8EzcQhRcYU
bkLK8rgZpEhYd.fSo8gzdSX3F48gkw5kk4CEAFNBVFg7+TZVW0W8D+Gh3rhs
GAqEq6ESYDKl533.aIIr2pkvebUK88xcxACKbBsEE4C4gB5vLBNLNE7sBkn3
dQJeUhnYcCwlxR02sQLbMB+xzfBSoyGhdNcxjyiPTAjXH3JjzGev+SWwy4Hi
SZK+QQwHH8fQBasryUqblFiD2TcDEUlVksAzsen2JsdIgFi9r4777Fhm03UL
.x2gDagK1KRlBhv6EUH9gr98Y6kxKzfhRiH6J.J9yd0FpYXxhDEo5.tZZp00
ToRVmfIznLmuFdYiup91MpGBpe2AaCJ8b.lUynxYyiDw7cIp6iyRUkxeZGNh
wsTc+GJjQYoY4hzFIaAw0O92zaZzl7p0.aehTd9Id4VMLpIh1jz0Rdeju1DP
s8HJRxdp4MOECLXoqlyAJta.ry9Fp+w82n4vcRd3.bwNx9LqNvqxC+FwCXdG
mIColY3iamSWUI18V6NgM03F0c2xLdMGJYZj34oF.5gPjKDO9R2of6Bs77g0
iAl8vLDh67VFeiRdbNTaiiO1VeiKg42nRHa8MsJx4bIZs2R5q8Lr2GvVgjH4
nPVnshA.mrObsGdHsODw1fC3q2mfvdfEwy4EnRY5W9sXB52QrkDGhaHS+ScR
YzeXZqFF+U8k7UkeY+yU8XTOWlan9onTrN38qec.7kv7LfJABwc7XCRcYety
t0Cvt6mR.7P3gPEHSOF5q0fPBtaHg0Gj.8F8v28S+nuOnjN2PTil11ODAe5Q
GBhXtuQVSqsi8gwbN8dfMKLftqTecIvqF.xnPPV0xDzQTHA9ZuLAc3kIV7lb
BGJsybDRcT+lEiL2+zdGnwdUJScfFh1RQZzbllOndc.j1tGE63MoEjQnEzqo
RvfAeXnvEz1qiV3LRnnVcudZwnwhqkVPGoRbMolL2whD3N0hCQtYExGjoU4i
zpxsjPLa9MM2e47R8F3itWOj5rb2yUpB4pcJHdu0Fl6ZCiIYq3IU6xdeCbpm
iqPacqRd+RGGa.jRWuqiNaPi91EZQ6xQtvuhxdJUmLGcm1D2THJ2jkDgtkP0
BhiaI4bOT8plGCMP0IDZmpWGmo9Gb+Sm3dQOoGKM8nSvmNpSvmB08gwi3D7c
neb8VyDz0ayVccpIN66gQK6v.t2+jLRswpxV690MSdLcg0nJ6cSM8HebsfcP
zAJFyCOVzgcJzgc1nyAR7mXrQusa8dCCf+ZOt39h.bOKDXer3mXimf8fc3DN
By26rMeSloo25sOQ6RtAv33JIpfjWWKUXyJH5uv1pmYqLJOSu00pYj54ZXML
LcY.yMj4a5YS3QhfJOdkKazZYvEqkXqJQ0japCkDbPKaH5R0R+Qnkl+QL0Uh
81mI1XlI+IXlFC8fPmBShNlYhMAyj2Xlo11cVQDbnP3KalGOK9hlG22o4YTH
o+oQRxEMyiYh8lDZIdDyTPeYdXTaGWMUTRXz.BcelmFhtPszgdw4GY1r35cI
.mr79KtTMyYLg03IvS4eoNpJmB72XowEWJC5cJXj8llGn.hiNGayTbz4WezY
W+5yst6yr93yq11KgtNm5a92a9OvThc8D
-----------end_max5_patcher-----------
1 Like

ok sorry for the delay. To make 100% certain this was right, I modified the patch to be completely verbose. You are right, it seems the lookahead is overriding. Now, fixing this (if indeed it is an error as I need to think… but I think you are right) will be far from trivial - that code is messy.

Thank you for the report. Here is the bug report on github in case you are curious.

Ok a swift walk between buildings is always helpful for interface wisdom and rejigging the memory :slight_smile:

The lookahead and lookback are not decisive elements in the slice length - what I mean is that the thresholding is happening before, and once we have a valid slice, the algo is checking for the lowest points in the silence to propose a slice. I will change the documentation to make it clearer that they exist only to catch silence before and after the slices, if indeed there is a lower point in that space.

I hope it is clearer

Walking is essential.

Yes, it makes sense that lookahead/back operate after the slice determination and are thus altering the earlier on/offset choice. Clarifying in the documentation would be great.

Am I correct in understanding that only silences are reduced, since the algorithm looks ahead and back into the silence? (…and scream into the void? stare in to the abyss?)

Anyway, I can filter out segments that are too short for fluid.bufstft~.

Thanks for the help!

Simon

Indeed :slight_smile:

Will do. I will try to think of a wording that is not ambiguous.

Indeed you are.

:rofl: this is now my finalist for the FluCoMa metaphor of the year :smiley:

Ah, but the year is yet young…

Thanks again!

1 Like