Hybrid ("vertical") layered resynthesis

After some of the discussion last week, here’s a different approach to the Hybrid/Layered resynthesis thread.

What this does it takes a corpus and splits it up into 4 layers. Two via HPSS and two via NMF. I then play back random combinations of them.

The results are surprisingly good, and believable!


For this corpus I’ve used a mix of percussive sounds (metal samples, waterphone, gamelan), so they all have quite similar spectromorphological contours, and generally speaking, odd harmonic structures, so the fusion of these just sound like imaginary combinations of the underlying materials.
I started off with a roughly 700mb corpus, which turned into 6.75GB after the batch processing (patch below), and then Max pleasantly informs me that my memory usage is actually double that:

Screenshot 2020-05-30 at 5.32.56 pm

(I guess this is that old thing where Max loads all buffers as 32bit regardless of their native format? @a.harker has a good work around for vanilla buffers, but I guess for polybuffer~ there’s not a suitable solution? (I’ll post a thread querying on the Max forum))

With only 1700ish samples I’m already starting to knock on the door of RAM limits, which is pretty crazy. I guess if latency weren’t an issue, I could do the HPSS in “real-time” on the source samples rather than pre-rendering them, but that wouldn’t really be possible with the NMF (or at least, not easily). BUT you know me, I have no time for latency…

I plan on doing another version of this where I analyze each layer/channel and then query based on some criteria. Initially I’m thinking purely pragmatic ones, like time centroid, and derivative of loudness, so the sounds have roughly a similar fade out (I used only short/medium-lengthed samples for this as things get real big real quick this way…).

What would be great is to then be able to query for a sample that could be made up of these individual layers and components (i.e. the closet match to my incoming audio would be an arbitrary combination of the available layers). For something like loudness, I could see doing some maths and choosing the n amount of samples that most closely sum up to the desired amount, but for other descriptors that gets really complicated.

I’ve not really used AudioGuide, so I have no idea how it does the layered stuff it can do, but does it just run permutations of the available options and choses the best match? Is something like that possible (in the future) with the TB2 stuff?


----------begin_max5_patcher----------
13731.3oc6ct0jaajkm+Y4OEHpXeX2skYm2uzurVtsFaGqZaGRtmNln6Ip.E
IppXaVjL3EKI2w3O6ahLIYABhDDHOGPUZ1RcaUk3g++gLO3j2Ax7e8Eu3paV
7gh0Wk8mx96Yu3E+qu3Euv+QkevK18uewUOj+gwyxW6+ZWsYwc2Mq3pWFLMe
6CSmOqXi2Fc2GtLey36mN+tqWULdSfMypFQdYlfoK+ASr+uy9OeDzhsapSJ7
Qa93xh.lqlN2AbuloS7onE27O+Rt3pCW7U4OTroX00EyyuYlWHozz+0W7Ek+
0K6X97gh0qyu6PFcSwG1DtZKKlm897esYW.KtKfyHdWfhV9CUvQv5uKn47O6
pDxiyKduS7IYw025R0KVM42S8tr0LR9xLoM0r35o2MOeVyYTBhYzkY2TlI9o
UKF6ta+usX1jhUe2O8t2027sUxGYzbM0vTT2eqc4dJwLhR3VCkPMDkRPTtOT
ZP81NydU0TUwpc9fcNgWb0sSmU7qEqVOcw7JzewU4KWV4ieQEIkdt+4BOHyK
O7QSmG9H5gOZUwuNcudwgOMeky2rw4X1txmvu5Cp8kLKwrv4fmucpmT3Cc2C
2kj72sl6J6tdY93f3xap6MWIJS4KHo8gWTmWu7mFs5QepKb3tYKF+KEdOEY+
GVVzc57kqJVWLeS9lcI9ClmTba91Yat91Ey2rd5u4SBT2cplre6tjXiFKyD9
z+qVM0EFu+qb2poSVLuLQbzshxOd+k6u6hP74JY0Li+aLOeYChcAAN+RDiqc
YxsquIeU4cpcUEx1abyhEyN1zAcyJtcyNyKmNedMu3lEKiab0z6tuEs2rvY7
g1X6sr95syCVu1ETr450kU2dz2Ke1rckoOF+GxmO8g7MEalFtEvHGLFZN390
iWsX1rixuAK+ZCVl3BxGW79oS1bu+BUMXv80mtbePzUGtKOY5cEq2b7msI+t
0G+Iq27wfSuxGs8lcEhudSwCKm4xEG+EbEOltdy56W79069h6Czp5.dr07pE
pqVA4QedsJJK9sI4i+8CkXiz7Vr5AUF1Hd85AcMyyoZkfwnTK0UMHy0BgOJW
TMJ+zpBIUrToNOUnotWruUfc0hjXF93l4q0N3l7UaR1Wn74wPGd3r5U6Gup+
yT8+ItCJltiiZnrVikyx+3umc+x0qud7hGtYpqzYlHp2gdFui12SAkHTGtrC
tGYatmc8X3km62tIe9cQckRKltxa15pqadxNHWKOxx.GVycXtuwOslwE5qNJ
0DoGzH4XbQOO3Z.twfrcQVYt52yb+tqUM22bsqaZi+kLWe+Wjkms14nlUjcy
1au00emJPl4DNdw14apW5rO9cKyGXJc8jkKMtNuIXBCQnLlxVk8c7fySoZKN
+pKjO78qb8.KqrmeqyxWm4JRmsqudqyd+zM2mU1E2LWO.KlOwUF14T8siDyS
xSMBN3szk8C1U8u0HnbhQZ4kdRpuevBcJdRl4R4IuYUQ9uj45u3zIaymEB.u
Oe0CKlOcbV97IYKKVMdqqY4esnRzJ5wjTRXzhBtcjkYETlyWpspP6qJd5AkL
9EpwiPo0cMeL+gaSsZQpazTk0K5a+vEVw3VBkqb80nLphP6P6Hr1pl71YKx2
b1FJnWp1buc11oSF4bdNW1um8UqWrc03BuSL6qbgkebtqz7dWZ1WUoBSV1W4
pDXkePNqyDDnMCYYiXZhzZ4JIiK3kQdBAoCta9YaU5kUb6wc4jKU2bVUTVwX
luVzJyySuccZWHJy4lb08MRJb880n4kMjDlb.6f0gPykpL891pKa8H65xFUF
47Wo1e4CtKFYj5j1KjRnkraM5xbohtVUbWwGVl8+bze3+0+v8mQi9C+O5T7U
7oUHl6TpCSyXC0SFlkNHc216Lq9ewbr5i5YY8YV4x3yWuwMPcmK59g0Syom1
iQoFiv1pS58INX6mdG7uMy0Go6RtfevIIMtFucUSZ3BMUU16FS4r5MnE6kWp
1wmT358yrEuO41R14iDrS8QRwf0ThPdg7Oaxtw++FOqHeEv9pHbUu4JGxjJC
205gumJRuky3iDcomJ0+YHEG0ARuXyU0icM75xgn7xrIEq23mAqw2mO2M.fr
xj7Kyp9EKG9R8uHsounq6k0+drv2q+Ca7LUGXCcvWxMmFp6ZEKr9RCQrN4Sw
Pg1OSZP6jow0gRFgPnLFQS3zxOix4WlgCYuziFxOPm0EtQDUFSNcteXN0lZR
uo6xm5hnS04tKTrwV14bykavOlOAglI6zT7nCPWKuLAj5OEEkKqLEnSq4gJd
gbZhOENsxlpf5zZb.icZ.1XLUPW559Jca0mJnCyI4AeZ1WUYpIODdF9l2Nc1
lx4C92Jb0hE9hU9HIM6qt81Mqc9Bm6dsySxDtwRX7+B9SR7t9r4pM8jY1TPL
cn0djphkcgtO9GZo4nyzyHAkLpzuno1Qt92xMRlzU6pprsdlsCcvs0NF05fL
IelLNocgSW5wIozWrUjvEPWthMSmON682WLOaxh4EnufCJk8j0wuwNjGd1aR
asGnWrEDab9rwaKedJbdtM4yxlrMLw33uPMVeqN5xm7sZMia.rzgR4kxSsbk
qZfrwaWsx8M7KgXpkDEBQX5b4mVYkMrLMjj7EhKkuHr9ItXl6WsX6c2GVP0T
cG7PjgznFYItwRv0lcNCJEh2fbo7FtFPm3cAgUAcfV8ciuutbytYTEvpsewb
L2u38YOjO+ig3i+O3WmBy00H+rXwjrQ5Z8QJrvv8vGUlt+macCZ91oiO7HPx
hzmnKW8N4aWWV6b13Ytw0mMYZ9rE2M.txvBVV9DIvkLqyGFZeqrkrgzQRuXO
wBqKl4xtY4Y25eXlw2EJT99fV9.bXp+T8I4CoO7hUweScOnW00S800an9NbJ
Y.pd+R2sxcgOmF7zm7Oiy7M8GdnGoTc5N.9kb8GR99MIzUGkVNhw3RJQKXgN
Mq.+.obz5MDa7Gb0EyOMMaZx9IWq6Q7StNKJg4mJG95YVpTN6yjQwtOfpgUx
Z.GDKS+Yh6Y2nrXT9HU8lwGP+ilewdBjJGD1+3putLqm8yqxmN24.9GWk7Pw
1OuQMM6xrt7LbEo1Y8kp.0xrx2miUoNwYLCK1rq6rnkC0rBYN4IG4wWPqi8D
QeQsh8xZUSdSuzVQdwsh+xac9WfqXuDWG8hb0gWlqZuPWgWTPJwW1kGJByU0
5FYyuSWc385pKuaWm886piuiWs7dd0s20qy79dc124qy9decl28qy+9ec12A
rN7df0k2Er979f0x6D1YeuvZ+cCq82Or1eGwZ88DK16JVyuuXQdmw5z6MVGe
2wZ98Gqd8L0qL+D6mqR8leXaWWro92IVKbQ6UfgNh69CkYccYx3eBHXb5Hol
JXJtkpHTY4nT0M9tX0ds9cnl+SF61icW3nFHOtQxA1+t+Qz8A2+Xc1nrGVm8
UKymLw45xXYD++wqqN1DEb5sEYMisWwXOtwU9Yk22zVp9wW+lP8kb4YuywN6
ctWdl6dhS7JwdzJ+zcyc67+4hoyyDfK4nIiL0uAHbelqnCmZkFBQ69zXils8
mc3Dd9gOYfIhm.kj7c.M6qtcwJWyHY2e+e5gG9SG8PxzZuRi45CuhTTR3GM+
9TjR7cyq2cKSo1.5X8NjVcTjt5nBNH9g+FZE3mLoJmzEdR8D99YQqdKrdgym
T7gZcK9osakFV.2KuekljekcA7qgLyfzaDsx2aDJkx28Qc1kSZwWxPOF83gi
T1efyzoPuGn760tiN7PKsKHYWMPt58NIuW4o5rxWt7wOx0ek+yjBBRME5un7
NlBK60Pl3SQJj0mTH6SQJj1mT3k9t79KZmRgxOEoPYeRgkUIbwSgksU14TH8
SQY4xVc5WJj1ZJrhwpy90UkSOwjqCSSy04a1rZ5Ma2DpBsoo9KooH3tYKtIe
VswxGaVD9hSy.O8ePxoR1nvKZbiu8wWpmkbo5B+hG69wrxYeDtaSnGonTsTx
0TRX8irxAa8QjWxEqk.8kEa+ipmcjpbI1nTW3kr7Mmobcq6xacXmdaw1spjc
6kESxtvQZted6zO.zCRUlQVsRnIVgloj9GpsN8dalVXF+R81FUN05gGDI+yC
AT2TSaCVVBFudqsV8EicwJU5myvrYPWVWoYT82D.I3Gihv7Y15K..8yhmghc
OZ.RAcDyUl6v65GAbnTWdBJtTOh.qKlkQRd4d0hQln8aPXFw0RbdnbhuzuWN
+TpdoCO0RbxHoRnrGp7FgXoy5fnpK1lThqfeKO5.xNVdyHq+faqIP6kvtRb6
+uVK4copcZkKUVjsq5Rnk+ZnCnZ5ftiNvP8oDc6CEy21oppKSeAM+sW8u+5p
Rx2tYwxEK2tecYOaE7gYDjMxJKaFzXExPU7LEO3V6w6b7zMEOrap6t5+a97M
SmkO+K+totF69xWQ3lv90S1Uur7uNwthzpcpqaxQsyb5Eh31EcvtR1tcCuc6
Vcq1ozVzKK8Oh1sK0sa2PZ0d4xYF0tpz+bF6pyXuM+SocW+sZydqoOcY9mzt
cMqc6VQq1a89it83OdY7Gy1tcgoc6JU61MhVsWtaz0p8V7ud6wxeuYwtxumw
tTE2NuL+aiaur7Cmzt813WZWeF6VYq1id+eu817Okw2LU61EmQul1t81R+9x
Oh1s2V5ur7A01tcgnc6JZ61Mj1saMsZu07mt87mu7Cm0tcIuc65yXuk6Ogxe
h1sWO8OqX9lEyuqLkaiYQwiYwDiV4K.XDK0RA+kW+yu5MYu80u6G+gW8C+4W
m8ce+O+tr2s31MY4a1TtC49pe3aeyqy9929i+PFgl8kYTASBlfBLA34BCXBV
nDpUaXJDnfIv.SfClfHcBr.AIXBJvDzfIX.SvBkff.l.ELAFXBbvD.GSJ.GS
J.GSJ.DSxCDLfIXgRPR.SfBl.CLANXBBvDjfIn.S.PLoHPv.lfEJAEALAJXB
LvD3fIH.SPBlfBLAvwjJvwjJvwjZvwjZvwjZvwjZvwjZ.wjx.AIXBJvDzfIX
.SvBkfg.l.ELAFXBbvD.GSZ5YL4W+527lr+soyuqXU1e9iObS9r8i2xnPijF
MRFzHYwhjkfFIJZjXnQhiFIAZjPKxzhPjYXLTVCZjrHQRRHnQhhFIFZj3nQR
fFIIZjTnQpmw3e62+1u40ucWIDIw.RsEhZJAjZJH0LPp4fTK.oVBRsBj5Di0
BQpTCH0VHpYDPpofTy.olCRs.jZIH0JPpAEqwRLViGTagnlS.olBRMCjZNH0
BPpkfTq.oNwXMQPsAjZKD0BBH0TPpYfTyAoV.RsDjZEH0fh0DIFqICpsPTKI
fTSAolARMGjZAH0RPpUfTqAoFTrlDTrVeWYkvW3c+7a+9eZemU66RqzDBFbD
b3HDvQHgiPAGgFNBCbDVvHzviN0PhNC8wUyfifCGg.NBIbDJ3HzvQXfivBFg
g.GA7nSCjnyP2xMb3HDvQHgiPAGgFNBCbDVvHrD3HnvQ.O5zBO5zBI5LLf.q
DNBEbDZ3HLvQXghPQHvQPgifAGAGNBAbDR3HTvQngiv.GAjnSY13oqJOroVk
sN+8Y2LKeRgmJkLHToCBU1fPkOHTECBU4fPUMHT0CBUyfPcPJawFjxVrAorE
aPJawFjxVrAorEaPJawFjxVrAorECRYKUTp1gfJmLHToCBU1fPkOHTECBU4f
PUMHT0CB0AorEePJaIFjxVhAorkXPJaIFjxVhAorkXPJaIFjxV8cwK+ou+md
8tY7V02kt7Hs1z012ks7HsT.ZY.zxAnU.PqDfVE.s.hqj.hqjIEW4mfakh.P
KEfVF.sb.ZE.zJAnUAPaRwU7fVC.s1z0pI.zRAnkAPKGfVA.sR.ZSJtJLWdZ
M.sF.Zsoq0P.nkBPKCfVN.sB.Zk.zBHtxjTbkLn0.PqMcsVB.sT.ZY.zxAnU
.PqDfVE.s.hqrIEWoBZsIqUSH.zRAnkAPKGfVA.sR.ZU.zpAnMo3JcPqMcsT
B.sT.ZY.zxAnU.PqDfVE.sIEWYBZM.zZSWKi.PKEfVF.sb.ZE.zJAnUAPKf3
JFf3JVRwUVuVNAfVJ.sL.Z4.zJ.nUBPqBfVM.sF.ZSIthR7ZED.Zo.zx.nkC
Pq.fVI.sJ.Z0.zZ.nMo3J+bppSZ912qkBPKCfVN.sB.Zk.zp.nUCPqAfV.wU
J.wUJ.wUJ.wUJ.wUJ.wUJ.wUJ.wUJ.wUJ.wUJ.wUIMe6TVPKEfVF.sb.ZE.z
JAnUAPqFfVC.sIEW4WeAcRy29dsT.ZY.zxAnU.PqDfVE.sZ.ZM.zBHtxBHtJ
o4amJBZY.zxAnU.PqDfVE.sZ.ZM.zZSVqIo4aeuVJ.s8Lt5s+32j80u5sYe2
qe0+9+Q4Cxw6WUL9WlN+traxWEHxQmn.chRzIpPmnFchFzIZwlXeWefNPjhN
QzKyPgUlgEfHv.hDCHJLfnw.hACHVDfvfEXyCPnX.ggADNFPDX.QhADEFPzX
.wfADXQrhrwqV79C0NwInRihJMFpz3nRSfJMIpzTnRSiJMCpzPsrf.0xBBTK
KHPsrf.VYAY1jsObSwrYAXBLgIwDlBSXZLgYvDlEQXRBlvnXBigILLKAHgUB
PEfHw.hBCHZLfXv.hEAHJBFPnX.ggADNFPfEroCPfEr4e.dLZTfnw.hACHVD
fXHX.ghADFFP3X.AVcr1.DIFPTX.QiADCFPrH.wRv.BECHLLfvw.BnH1vyKj
wJw.hBCHZLfXv.hENDKgfADJFPXX.giADAFPjX.QgAjDiXey2+se2OWNW9Sm
OtX95hr6WLaRwp.Sy.vzhOyTWqkVYRG.lrAfIe.XJF.lxAfoZ.XN.kinCP4H
5.TNhAqbDKaS1xoKKBrnHxhgHKNhrDHxRhHKEhrzHxxfHKKdr3HF2yQLtmCK
tmm8a6mDbKmiGJAdnj3gRgGJMdnL3gxhFJAAOTT7PAKZWjcyhYaBj3nQRfFI
IZjTnQRiFICZjrXQRRPiDEMRnEiKgEiKCPDX.QhADEFPzX.wfADKBPTDLfPw
.BCCHXDwpfEwpBPjX.QgADMFPLX.wh.DMACHTLfvv.BrHVc.h.CHRLfnv.hF
CHFLfXQ.hgfADJFPXX.AiHVCFQrFXQrl.DEFPzX.wfADKBPrDLfPw.BCCHbL
fHv.ROiXe2O8pe3GNbpla665NVWtFlbCL4V.xYj9t9h0kSgImASNGlbQhxYA
4RXxUvjqgI2.StEjbJAlbJL4LXx4vjmZTGOHWBStBlbML4FXxsfjyHvjSgIm
ASNGlbXQcrTi5DA4JXx0vjafI2BRNm.SNElbFL4oF0ICxEvjKgIWAStFlbCL
4VPxEDXxovjyfIO0nNUPt.lbIL4JXx0vjafI2BRtj.SNElbFL4vh5jvh5joF
0oCxUvjqgI2.StEjbEAlbJL4LXx4vjmZTmIHWBStBlbML4FXxsfjqIvjSgIm
ASNGl7Ti5rA4RXxUvjqgI2.StEjbCAlbJL4LXx4vjCKpyjXTm+wz2IWAStFl
bCL4VPxsDXxovjyfImCSdhQczvjLm5ZSrWtBlbML4FXxsPjSScsI1KO0nNVP
NClbNL4BXxkvjqfIWCStAlbKH4ot1D6kmZTGOHmASNGlbAL4RXxUvjqgIO0n
NQPtEj7TWah8xovjyfImCSt.lbIL4JXx0vjmZTmLH2BRdpqMwd4TXxYvjygI
W.StDlbEL4ZXxgE0020l3m+we7MYu6Gey2+MkO5Eiue55hYdP8cUJhChhEHF
Vf3XARfEHIVfTXARiEHCVfvJxVBHxlksb67w2G3PQhCCINbj3HPhiDINJj3n
QhiAIN.Bn4UCnUDr.QwBDCKPbr.IvBjDKPJr.owBjAKP.hrC88VS.SfBl.CL
ANXBBvDjfI.HPUVo9NsFINFj3XwgigfDGJRbXHwgiDGARbjHwAo3YCf3YUff
ALAKTBVBXBTvDXfIvAS.PTpNa8loqVscYfjDMRJzHoQijAMRVjHwHDzHQQiD
CMRbzHIPijDMRJzHoQiDfXbSffEJAJALAJXBLvD3fIH.SPBlfBLAMXBfiIo.
hI8OlNLFALAJXBLvD3fIH.SPBlfBLAMXBFvDROljRpLkCLNAKPTr.wvBDGKP
Br.IwBjBKPZr.YvBDVQ1Brhr66Bw8W+4W+Cu66ei6C+Ku5MuobQTVuLey1Y4
AZLTowQkl.UZRTooPklFUZFToYwjVeW0tyPC0xBRTKKHQsrfD0xBRTKKHQsr
fDXYAli1hEyCrLHxxhGKEAQVTDYwPjEGQVBDYIQjkBQVHF2qPLtWgXbuFXbO
uJKJhrXHxhiHKAhrjHxRgHKMhrLHxxhGKChw8Ffw8hraWr5WBn33gRfGJIdn
T3gRiGJCdn.FjJytewh.JKAOTT7PwvCEGOTB7PIwCkBOTZ7PYvCEZQ6bBAOT
T7PALZWUAEGOTB7PIwCkBOTZ7PYvCkEMTTBdnn3gBuncJdQ6T7h1o3EsSwKZ
mhWzNEXztNa88gyNaGKKdrXDDYQQjECQVbDYIPjkDQVJDYoQjEhw8LDi64.i
6MY2s3lYEaBvnXBigILNlvDXBShILElvzXByfILKhvDXVBPfYI.Alk.DXVB.
55rZy9khOFHIQijBMRZzHYPijEKRPWO0JjnnQhgFINZjPKFWhVLtDsXbfqYJ
kjMOeZnKD.WxziPYQCEvEL8HTT7PwvCEGOTB7PIwCkBOT3EsqvKZWgWztFun
cMdQ6Z7h1AtFoTZ1lUSyme2rh.NAt3j3hSgKNMt3L3hyhJNfKb5I3n3higKN
fkJXYalN+ikOLUym6O05cHE3iThORE9H03izfORK5HAtLtMhjhORF9HwuziE
+RO.WtWJuAjJ7QpwGoAejVrQJ.trvMhjhORF9H43iTfORI9HU3iTiORfkdDY
2kuZRw7CO4PBfKIbSDonSjgNQN5DEnSThNQE5D0nSD+HbfMOHylrZ5rYY2L0
OM4BfKp7o7nHyigLONx7DHyShLOEx7zHyCXIDUcdVb4AbwmOkGEYdLj4wQlm
.YdRj4oPlGvxG557r3xC3RIeJOFx73HyCX7moNOIx7THySiLOCx7r3xC3REe
JOJx75Y4i+1285W+lru9suxYLbdiK565E2DBAbDR3HTvQngiv.GgELh9t1uM
gfB.AKffAGAGNBAbDR3HTvQngiv.GAjnS+gZhPSfifBGACNBNbDB3HjvQnfi
PCFgARbgHffBGACNBNbDB3HjvQnfiPCGgANBKXDV3QmVHQmx.BFbDb3HDvQH
giPAGgFNBCbDVnHjDHQmp.BJbDL3H3vQHfiPBGgBNBMbDF3HrfQPgGcRgGcR
gGcRgDcpCHDvQHgiPAGgFNBCbDVvHXD3HnvQzknysqWVLeRwjrW8Ce6adc12
+1e7G1MfcYmV6j1zaRUuefgxNsVFMp224HoHY8gV.EZf5MvzK6U5+qe8adS1
+1z42UrJ6O+wGtIe196CRFRb3HwQ.kSH9PZPhiEGNJBRbnHwggDGNRbP59dm
l7rCb91u+seyqe69XuNMuDwzpAn0.PqMcsFRJZC9YCEfVF.sb.ZE.zJAnMo3
pP6TVJ.sL.Z4.zJ.nMI+bnMQqBfVM.slj0pHD.Z6UrQv7694298+TFMnmCTu
.ndIP8Jf5Mop2WtVQI.0m78OdPuBndMP8Ff5svzyH.0Cz+2uwP0f9jK+IyFO
c03syxWksN+8Y2LKeRQ.Yubo+z2+S6WAVkfkrRdxJEIqTlrRUxJ0Iqzjrxju
e1uAHdjRZ+UFpPSxRVIOYkhjUlPLjed4TJSxJsopTSRVIMYkrjUlv8ScPoHY
kxjUpRVoNYkljUlPLj+joRYHIqjlrRVxJ4IqTjrx9GCQIdk1DTFpu0pRVoNQ
kZR+iDnrfRZxJSvCwCJUIqTmrRSxJsopjlvcEQPIMYkrjUxSVoHYkxjUpRVY
uhgd6O9MYe8qda1a99u8694xtTMc93h4qKxtewrIgWVPc+5wbMhrrMYKmtrH
PRgFIMVj5W+GqQRjcyhYaBbzHwwfDGKNb52RAzBGj7y8ao.pwQFPvgiP.GgD
NBEbDPBaUADVvHzD3HXvQvgiP.GgDNBHwE5.BMbDF3HrfQXfDZYBHnvQvfif
CGg.NBIbD8J57c+zq9ge3vp.pMV.hsDHhoIINLZh9s.U0EKfHVBQbZ2p7MsX
nbHhEPDKgHFTdVmjXUPrAhXK.wLBDwLHhSKHwWShgmVQRaPrDhXEDwZHhMPD
mTPRXVXLBHhkDHhoPDmT3YXVfLREDwZHhS59bXpYLRK.wJBDwo4sEAwIUoOM
T0ql.Qbuhvpdh0SqbXZa5Wulqhgksb67w26ozu9XUkBuZhoe8yJNFMNXL3fw
hBl90Sv3Xn3fggCFdpXBE+rRf5U.0qAp2.TuEjdKI4fJUPuAndKL8TfoeJEn
dFP8IG+qyVuY5pUaWF3nQhiEGNLBRbR99iInmCTu.ndIP8Jf5SNtvFzagomS
.pmBTOCndNP8od+mRpzLokaPAinWdy5G1Fzx8iyMamkGXwPjk.QVRDYoPjkF
QVFDYYwiU+Fw7YXAJVk83wEtseO5asRRfFIIZj.EixqRRiFICZjrXQRAJ17w
CbbqRfEHPw.OdlIaUZr.YvBjEIPZBVfnXABT6dpJf3XARfEHIVfTXABTjcky
ETq1fFIKVjLDzHQQiDCMRbzHAJ.u5A8n0HwCkBOTZ7PYvCkEMTVBdnn3gBTr
9gydPqkiDGARbjHwQgDGMRbLHwwhAGNg.Ip9wCCNGHJVfXXAhiEHAVfjXARg
EHHg0Gexm4fYvDlEQXTBlvnXBigILPQ7mbNW4.JvFnDafJrApwFnAafVjAx.
U5f2.PJ1.YXCjiMPA1.kXCTgMPPkTpeR+33YPlmEWdbBx7nHyigLONx7.UD4
3yQGGMIpzTnRSiJMCpzrXRSPPkFnRDp5zXnRiiJMPwa55zrXRCzJfcJMJpzX
nRiiJMApz5U8amrydyI8at4OY+a1AvBDP+la3l.vRFfJ.fCEf.J.IT.Jn.zP
AXfBH8.IsGPsod8mJdHeRwW9cS+RB6KeU89QUypHlUpzYs1Xo1Y8MKBV4sZs
1ZMWyZsUzpl0lyQ6rRYQIqKSUl1rV6IAulUS8T07OlON+9R+QYxp1vhNX1I2
6OzsZVxZ0rtc0FSqls11LSqMoLus3iKle2WR7YJSTS05hPUS0t6V0jNtJSzq
Es1rHV0DM50pdnvdSpx7kJpIAMpIoHpoZq3cUSlnWKJgE0DsQUTZYnTbS05+
QUS0dbCpZxPiZxZiYhRiBLhmmVVmBSF0DmE0jfD2jIpIY7qUsWn9plzz3lhe
sZ9tr2jUDyTj.auIZzTHkQiapYOOur9ZSTSbdTSh3pThnlhDQUZx17MEQYxf
D0TykJ8ljrnlhbWVbZaLUME4VYoIqIlIJMZhmxZwTy2ujQqiJz3pLpIQbSMW
8k2TDGkuF63lLrnlrQMQIznlnwMEwGFuddpuddaTSQpRwWOOOpIkJpIc7jgI
toHQT9VGhl3oz3lh3Mzm1auplh3MzwqAPGsg9PeojQMEonWC8wppIaTfTBOp
IJKpIFItoFyWLZz1u7lZtNJuIoIpIcbfVRLSQZ3vahFMwGKeEuwWuIgJpIEI
poluK6MYrwLQIxnlnQS7wxW7nw7dSh3phju3wyW7nEy8lZtXdooHEy8lnwME
IKKiVom2TyEy8lTznlzwM0b87LYzRkdSz3pXj3lNNK+yqV7vxC8xt1LjerwZ
QvGaT1FVUaFq0cviMZZSosEiTRKXqGRbvXXjAzVLFyIDFc.qEiZcKFq8zOcj
QJoEkTpoEiwtYGFofrEiJZKF0sorV8sGYjRTsXL5cEVaYE9oyKvwFkjVLp3s
XT2FVaKXq2xxwFidKqgpj9q2kO6KIML7h8F955M57ngZwpOZnV2Jde9lhU2m
uZ40OjOaVwlqe+hEStd8lUS+khqmeMgccsgX2AA79JPzWA8NOn5k.deyz79l
o48MSy6all22Ls35ZiqnCBX8U.uuBD8UfruB5mWR1WujrudIYeyCx9lGT8MO
n5adP02abp9lGz8MOn6adP22nUcuxzKbYfdkGBBX8U.uuB5cdP1WApdIf0Wu
DqudIVe8Rr95kX80Kw5qWh2WuDuudIde8R795k380Kw6qWRzWujnudIQe8Rh
95kD80KI5qWR1WujrudIYe8Rx95kj80K0uVQW12ZuW12ZuW12ZuW12ZuW12Z
uW12ZuW12ZuW12ZuW12ZuW12ZuWVo16r+yW9EuX2etZw1Mtu6lOtr3pr+T1e
O6poy2TRy+eG8MWtp31oen7ac0eIer6qsX88Ye227m9i+00EqV+GWsXxpo2s
3O9MEq+kMKV9G+4h0axdyzaVku5i+wqpvY5DOiE27O+Rpspgk4qxenvkIttX
d9My7IHxdy+WewWr+WdYV329W6sc0MK7oqWT6yewUOj+gwyxWu1eEmW7d2Es
5UbSwG13MsL6lhhkUMMe6CSm67LdoziRkaFe+z42c8phwaB9Lt6NAS9xLsa3
+FCiajLI2RTkelPNh7xLFaD4HmoCevy64SZ18nkWU+BWrpRFsRN8EWc6zYE+
p6FwzEyqkjewU4KWVwzKZPdoq5etvC27xi93oyCeL8nOdUwuNcOOwQVxW4bO
ab9lsq72Au5CJwUGibwjhUy2N0S8QCtarURx9aaycwCqWlON.p7tb0uxi2.X
bVoWlyz9en8+fIq4zcwI2Maw3eoXRMetqTvxh4Sm6hvWWLeS9lcYri9JSJtM
e6rMWe6h4aVO827IIZ4kMx241cI6negxLmOe8pUSymcTN6tUSmrXdYh5jakk
l1e4+6YTezU4eebF0+slmuLBDWvky20xWXsyIrc8M4qJuKuqnHq5WXyhEyN1
7Q5mUb6lcekkSmOuAOtqJh1+BtJSt+LLtYg6K7v4tNdqqud67v23ZWf0lqWm
+qmd2YiqdycURb5k5C4ym9fqJ1MSC21Xji9Bgprte83UKlM6D+Qv5uFw5DWg
owEue5jM26uv0CpbxltbeP4UGEoLY5ct5YO8y2je25S+z0a9X3lUsOd6M6pb
45MEOrblKWd5WxUbb55Mquew6Wu6KuO.ttipXcH37EMVQS8ZqOwdsZsc0.rN
+thipBoZU2eyO9Cuttwip7lUyXCUfSslxxQFd4eK3MUicC0ZSqY8jlRu5D.U
pbWbUUSGZd63l3f57NoIuZM6sx0Ld1+3putzkj8yqxm5pE7t+wUs5Ooc1eRU
7QJ2ejJgUPEgFDKWYmt4eIwcdzm.NuI4i+8LZFCZvGW38GD+OjR3NGM+If24
+8uiieowXHqbjDmhnqmd2bWiusUPU+THXa7GGOq32yLFBNt0PUcJEVU00E+H
4R3GOWyEt7KYjLSlQxjf8kkOrWx8NSs7hztgx9DHbb1z4E+NRdOJiOh69ifK
IRizx0tObWkhm2Yx5Xjoa3r2jO+t1cs5Kgq06iZ02Q5rui4i73j8+MzHuy5h
zh5o7wKd3A2flNoCidgymT7gZCy6D+5wiboLx5L8ez6NJ+ds6zWuX6pw6yXg
db4J6eRly085MSmeXLe+88cvv+cSJbH0zmK7q6IPcYJjdoSg1djB2mctnoPW
iL8zGdwSgz9jB4g6x0K2tZRXhfHOwS5j3Ic5kMo2mB+h1S4jmto7HEP6jSuR
4fpSE2UkSUxjqCSYz04a1rZ5Ma2Dpito4gLooq3tYKtIeVs4UH1LZ7EmlAPX
1gq2rbzljad.uVe+UzwaNNdSwcnY3il3.d0TY0leKkksYQ15hYtTV1s9CB0i
l58SZOFAGWH0m5bmyLLeWnI1QLBgPYLhlvokixqS9wHSctvDyIMY6pPolt5W
NbwOsuIO5pZpzcEG1IkpomzNUjRzrS9diWLKLi7+c+LEV4unipzXVq2Y6cxU
UucnHIWN63lTwOUzEmFW8zvqUVaLqK2jEsmdsFozMrnxy4CpxZ8IbhsbuiUS
rThRHK+HqyplnMDpgZLxAOm0k3AI8juXsblhITDgUPDTgHjyzTWk.FWUBZtg
4+nxixYgKSYzLoVsKmUg4CSmrbwz4a1U5jpni1MNRdXhN7yG4Q+Cm2LLQHhx
5e7+qiWXzSZt+SjGjelXCKQHjDsVPsLC0O8FDFq7HijInt+uO1fvKOxeDDtw
vU1F7fm1EATytrNVxUPeRTxkQ63cGps8zKkS4Bgg5ZXyvnrcESUZMSPLBiTP
Cw2bU3CLV2++rw2tuqez+V5HJiK4RpzOunbaCe7P5hHH3hHRqzUTWYIFFQYC
AvtXYqkazVN0ryqYDRgVXkFWft47tHh4SuKpqQ87ALJZXxYhNlyTel0vFS20
aY5OyxY7NWd8oQmm3LjpeAxch30uvshQkcvP6pmg4pIgRzBF0nCqKke7KsXp
r9Gqr7j3wXExcC24PMSGaYH8ucoIt8So1vjJ55.KTl16H4kJprqCAo7Y25oP
oHcW6Hi5bcT+oV8YctlZ5ma0Ta6ZLF+yrtMH55rdXN2srzG03vjwncbj9M3A
9TTsfnqiuQHe5jd6T+M0OcRu7NjdOSeWDD+e3tvWl1neYG+nyM8Hk6HRxCSA
B00aiJyHx9+o15mMasQF5nS4+bnbW7Nd6U9zX5PanTQKS+0SfzaWaqjNj80S
10BwZ6mYU+6CK4HLVkgo7tjp7OnMT1HCQZLTIgvDNWGc+nNZvzP5p5zBe7zn
ntrqCSheZW.t.2Z4T5HppxeLt.cWWY80mu6w66n+kTYCSEt0+Jq3+mCoqi00
w10qa0wcHBJejgW4O5xfbd3MBY+x.T8eok92cDlkc3eMT9iN2JmZ3lx+gIm0
0QwSI3cmlQ06VjGASLhoIRqkqjLtv+gRqZjUY5hctgdpcEK7NEcpsgxI10g8
oNsJoAdwp5WR6htvRcMxi84170p5Zuk1eyYXREXMKK8oj8thdRsdjqcPg1U7
y4yCSRpq5ceo2SrMTN.SWW4Ryv00tAImo65jwnGxmoCcWaTjQ+LaxtzccpWM
jOyFtitySPo9yrbloySPI+ysbVWKmcYG68iObc92M0HOccO9pRucxzEuy+xI
e8eoX91GeH91+pU2r63l6tc5rYGxHM8bqt+wubW18n2E8pNfxkliZJyjtJbz
Lk+2b+hTV+I0NnidnA.ov0+bek7t51C8mPXJeHD7drFjxd7ZRn1vUhXMDQ32
beD8j1RewU9yxP+qFit1aR7xUKVtX0g2t8Qb6Q51tYwcqxmLc2SJIowmy1WV
IBbk6a1zqT7UO3tQLsJilhfObS8MaGm20ajG2jpVR4d+HyxM1vuIo9Ghj5cw
He7XWp8H4bl6Nh2U5FLkMbKUG9r5pq9956Jm7iKKlm8t74qydWwCSuYwrIG+
z5VLq3g5WMsQoz9jXYuGMgeSTNtsSubgGfW28oiIT93w3SlTklEhZLDBUbJf
at63BstxpZeV04kb8YJbsKOo28icTcj1xWxKu5qmNubWin3PTH2xnpfSdenr
qSJBNsoDP2KvcHnqkxb8H9+3RclCk0L5xI3J7aMlnqWpSsOpvOwJ5vuEn84e
gte5Uat1igjTQuvinPH5QnI96Mk2Z3cqnW2cs0K5E1rLNt8oYE4qpfmFFmg0
EnKCWD2sdMuCkRBQTM8a0kFsPRqiy4+NTpnWRGhhE0hMprYnTap6FfRM+x5Y
SmTr5uUtC2jP4F5tfhG+qAN89P9GTGss4zdRsgRpg6uGp4WuKRq0hR0xlkuu
0IV1YvcN0dqe5SmOb8biYq1ogxVCER5kJoexa5d6I9Ok0XUodm8U2e5ucl5c
zk6rV95cN82ZV5mU8d9zRp8Ohn9ahUOhl82+qLBkpMkOnQxgMZfud11hx245
jqlhSKmLPei8GxD1xOhdAyDqV794fxEOl1kGpSgegyE+4OlCKSPXtwXDZrPy
4rPYbFkR4WtLw2tpn.XtveWvuBhgQbU1umKWF3u3pYe9lbPYAifnTggIpHtL
f+VhxRsxKW93+nX1rEuGV1vMjdcn1dZXwNKeiQhMTgi6NnzRHlgNit8gaJV8
sKlMAT1TeXbTRWmsj9bLsZqTCZlXUnisk4hjZ+PIbgZ1cE006lgA2MI64G10
m1L9i46te2q1nF0ThOQa4BEwtatUzTYmFI7m1b+l7kcMSWab3uIeyhr2TtGM
dEFowcL1C3ba5.6RWQ2rAZZiF3Lax.02fABcay+2AWn+ZV4chOjFN9cge+KZ
9tbwg8Koldi78uN4iWrMzewc6iQM9ty2z6MuUacC6lqoFlhpCucIR0H+hGZn
BkUyTRWbkX2i7xiQhM+BzW8kmmqtBw7Ng+mHk8EPcUeyhR9IYQp6ynLpQI3T
iQn84QU3I3gzm7nfmRdbY97h8aUqtuZ4i1PmVk6Og44ad7AvX2mrxEyMIrUo
JZvwb39T49zaURMMznSlCMqh3mLnGGTbW9nptp5iyRlv8IWkEaNrEO.x4qJe
1ppUlhE1bxDQ886uFsuwdT0qK2uodDeWvtmtf0Kc4qUaeXxp72+6M5I1eyO5
lQbS9HgjTYOVVPBQ5JxY8EMrmH2xNeWUeCa+d4wU026kSvsbzFaW0sqxLZiN
IVbWwtsryctB9IaqocMnn1dm3QYc8U3kGWlsJe9jEOz2hEpv9aHi5+gzlZ9r
4bn5nfsG2ey22Dej807l1Sy22akF1KyaXeLu48v712+xaZuK+PmdNydVdk8q
7GaiPI7+PXptBvMtOkel8n7ys+j25dSdG1Wxirmje98i7V1KxaceHu08f7V1
+waeuGu08c7yrmiet8a7ttWiGYeFu08X736u3w2awiuuh2u9MexdIdC6i3mc
ODuC6e3mt2gi3I7fq2o235uc1r7O5p0XT1Mau81hUYekajE2cm6SxnQ2AqXs
uCVEZPjp80KRCOF4m47df01l+0om7FU23qebKJcXOQL9Co6Pbccx6J3gMDWa
S6Uy8Y2Pq7DIIp+Pcg7GglNKyaRn9kPelz1NDnjteQdg7Kt1ibUbOIac5aAb
gBPtA33cKLntk39D5UOY1u.CgBBxEX+BjQisU38DeqAb2HMHc2IEYy.jw.6A
FlMAPZOeW39DuQNIGx81uN+JpReJrCCR0Gu8KiapP1yspmFCX+uESnJxCkUt
6U+aXFJq74gx97PYednrOOT1mGJ6yCk84gx97PYednrOOT1++jgxhvPV9uMC
e6IwPYehLrdDlhimGJaimie65d1vLTVwyCk84gx97PYednrOOT1mGJ6yCk84
gx97PYednrOuprOuprOuprOuprXOTVlTNfCkk+7PYednrOOT1mGJ6yCk84gx
97PYednrOOT1mGJ6yqJ6yqJ6yqJ6yqJ6UE+1j7w+dhu5uBqtruGBe+PDx9r+
CvHWcwdu128B7Rs6es0Q9kWu7TMB2Wd8HSvPYHdp2qnrvAei3Lyt.6Lul1ur
MGQR2TOdi7qxFmQ44xD2MVWy9elXV23en2oTBpSrhEyWMc2nl98cCcJSz636
cSYjJDlKNW9Td9aws+aQC.zOY7IRh4IhOQ8jwmvUjmH9D4SFextpHdB3SDXV
24ph7IGuaK005LCaXRrvQPSvqfVUlbLusuX1GCywz9a988Vu3nZHH7TaXr8l
Dupe8Or3ga1Momm1mNO+iGeTvAVu+u6bim166iFCPrSxniNCPpczZcx8NTuz
LR0iLlZGcVWfKcC4ZFnKMWzCGNrqD6RckX1NbkN9DsE2SBpjS4Ge.DFKPvFO
k27FzcxoGc0SM0XIGyQeIjJMppdxT11Ulg8UVdTI7VtxTruxconHyLD08Q6R
IFayWYwvGgoa9JSG9HrA4J2oHrA4J2oHrA4JyTc3RqwnxeYGtPJLtPcwYJQ3
B0oBm07uWx5Ep4wQJfoaWZwPzmntco4Meo4vBp5RG.DXDTQ5d4QjioHcu.Jx
gTjtWhE4HJR2usha.UWBkonz89tbgN45DFvXsGjqxKQsGfqZO7Vm9faE+g1p
9Crke8PpcXFFxpm4PLr1tu8+Z+1q6Im+J6GobyGXgobXEl3AUXhGRgMeDqD+
3UIxQqx9YF3keQ7ca7i2owqF20vgOXy2.R4.GL8CavdbPCB4PFDzALXpGtff
OXA6Tgg5GBQocT.k3wkVZGffOsJPT+fArCEK53gAX5GDfseH.lzA.XhG9e8+
Xz5ytn1NKCqv1F1buqdX9ANh9zCsuyFSG6f5CbZ4ni4qlSFIcH700Cfu9d36
gRFtxSxVWZjsCGrdnjrNZsiZNgcIKs26CIuDOf7RrtkKQiTGW5na2Eq9H.1g
nqycP2ANx5zCztNWLuSGhcXk.qdX004TXmNf5PJEV8fnqyIvNc3ygTB7nCYt
tmBOyAKGRItZGfbcuoltbnwgTZ73CGttmD6xABW6GFbvy.mbnu04jemNwu.m
.O4.cqC0M1wCwsjN.2.mgN8fZqKiLoaGNae5tMc3.Xq4Ly4Nz0520OLcXQdI
B+h+qu3+WtcJ9e
-----------end_max5_patcher-----------

I have used Alex’s buffers in a poly~ and build a very similar loading structure as for polybuffer~. They playback is then also in a poly. Give me a wink and I’ll extract that portion of my large patch.

Would be curious to see if it’s not too much a pain.

These days I try to avoid externals for “normal” stuff as much as possible, but with the era of “big sample libraries” looming, this would cut the available memory in half.

That was my reason as well, often loading 20000 sounds.

Everything is mono, as I’m spatializing the sounds into ambisonics afterwards.

First store this bit of code as ht_ibufplayer_poly_for_rod.maxpat


----------begin_max5_patcher----------
3330.3oc6clzaiiiEG+bxmBCCL2RGvEQsL254ROWlSyoAEZTP1lIQEjkLjjq
JU2nqO6CWjj2jksbjXpYx+BnRjkEWdO96sPRal+796luH+UY47Y+8YeZ1c28
m2e2claouwc0u9t4qiecYZbo4wlmI+V9huL+A6aUIesxb6z73UKhydt4MRVY
ts5Q+ENs4lYaWmjkJqL0Ds9lahqV9RR1yetPtrx1SXArGIOLiw8eT7vLgm4E
zGIy98cUT91piqI6sp99FosZla5Py9c869W2eu9GO71jxMExMxrUy1jF+8Nj
zvfgJobpV1n9QO5ShB7HQ1+EpD6faVrGUQtbSQRV0SyJ+ttsmsX6S+xe6Q+U
cH8AjaT54hSkdJ6mCweYdZ5rDkT+jrX81zpjeIIak70NDe+aT5IbMjSoWRd8
Nq79vd+usvkweUt5ypNlp89bbUUgRHprl520pBtatb8BoQFHOTeGEiuLoLIO
SeWeyMMpxQRgp0kZyGYwO5PIRE2lVjQsdLnTsxrGsn+4zhkIOmEmp0gW6U2t
2k0xxx3mkmnaVqFgTx5LRGZFul68TdVUYxeX52T9ijtzWr8d1r30lmc9uVjn
63WzqaPn9WQAVWvtx9qWch1NoKZgN4JENSrmUpqUJmwFp5kjxM4oeuSKH1Pz
Iz2fNgyhLfB+B5D94zIp3JZ6n890XpjTM2O5lZtQWLBif5cI+zjQbbdV5rEc
kQU3sIB1TJ3T9EDAVegZF8jpRx5bXRbiiSdVuXgugzGFVHT8674k4qWKyrBz
7SCZZpy4oIYGmrsQLz2+P8VY91hkM8n5rKlsSTVIKqRxhqpiR+ocIfoenNGZ
t1FpoR5skzI59laIMEewVxeLZH5UzPdiPCoydYl35Zn5mYcxpM4JWe0XAias
MEBKDaSmQ+pwnqcIc.cDzAMnQ+MjXDZIw0Lr1.YuoVx6ZDIVuiq1QRtJKe8u
3dsuZLLhnWpuMFCrT5.zBm35KdyluJKZlVgoQTAG9Rdg9kgOXdYRl8kFWyyK
jescZHlTHlGWn73WobFusvlnxq91rhmuNekrHaahoz2qEOUSVV88zic2tKGm
sqRx+2UwUaK+7+Rls0FqQIUOEqlk2gphEO+TRZpZlf1t2999ahaL29tMygp8
Y+zLxirHOJMToVdTE4Mf4atRcgPr2HWcYnMExS3EQX5G0ymE3ILWEx3Bt9Jx
QEisqsHzHaKPhBId1qT2RMqB59ESEDO0zyYAjG2ate4axKZFSUEMp842Vk+b
Q7pj5fbjChw8PMIUndWiZ2FGzdayzlaJy9jW6fw+LNqjPpSbctpgp6a6FBjo
Rc30Czq9BkHpEPe8+BrWY0U6G1ewyGTpPBOhYTrgQ5q0WEUqq1uXGTHxC68C
5Nmw1NrJwhExhiLeT83kZE4d0Cstz6WO6kLj4I+bRl1NQd9V9LhU.0iZDqHg
fPMC79rHesndRGVkFSUsg3dP9aWMED5wsMM0qYvgnXVVTGchKQKzyQKub.sz
oEa7xkGSKAJiv.qkgvOz2ZF4EPDQGJP6OqI0P1nNH46644aGZ3JSRauILjFv
OtXW1gSqw3Y74bk9ANzqSXqulPklILzdkdTsqhwFlk334z4T1amoEsSSza10
TMr0LoQfa.2bBtAfC.miANWgbDfb.4ZPtIC5.Y8gmrfCMfcuKXGbpA5ZJoK3
XCnm6QOFfN.ctF53.5.z4VnC94.x4XjCd4.x4XjyCSQEb0DvUBruU.4bIxgO
HH.3bKvgk2Eb0zvU3S8Aft2AnCNz.aMIrECbE3pIfq3fq.WMAbEVTLvUiOWA
uUfpFepxC6YD.NWBbXk8Av4Rfi.dC7lC4MrHX.pFanBaNIvMWhaXCj.v4XfC
eYT.x4bjC6XIHqohrfCMfcuKXGbpA5ZRnK7wv.b0TvUXiMAWMEbE9XX.tZJ3
JrCl.4bJxgk+G.maANLGRvUSCWgsVBP26.zAGZfslD1BKJF3pofqvhhAtZJ3
JrnXfqFethij5Av4TfCIzCtZZ3JrBE.5dGfN3PCr0jvVXEJ.WMEbEVgBvUSA
WgUn.b03yUdHod.bNE3vW.DfbNG4vhW.n6c.5fuNfctF6vefk.x4XjC+AVBH
miQNb9LBjyoHm..G.NmBbXmOAWMMbElVJfNWCcXZo.4bLxgokBjywHGlVJPN
mhb9.3.v4RfK.ajJ.N2Ab3aPEvMWhaXoQ.v4XfCe1j.x4bjC94.z4VnCK.L.
NmBbX4eAv4TfCK9K.NGBb3qtEvMGha338F3lCwMrwV.2bHtgs0B3lCwsPfa.
2bGtEgfo.2bEt0rtaGWM0v3PqMrSE.dcH7t2ViMZ.L1tM.wtFhw1sAfyo.G1
tM.bND3XibP5wNqUuQt9DiZ80z6xxWIKOzTsK6s8G4RkqNr.xT45iMtuN.7D
yQOekcngwYzf.SwBEdhniLGOzOh1ZvXOQ8ZZUBiKXQcfcJ7sl36u+yYBOSGg
2Vm7fl64w6pmbIheY9500lM6Z6kox3hiqDkPSzRk9JlxnmYjNuvCquEaqprV
n6ptizmgbeg0EaDQoirCHdbByHF9cqOIJ0I2n549J2wlhShTNqCuAyX5Evv1
7hy1tdgrXXjXl7a4K9xvJyZYYY7yxgUnspAtsCqHcNZeoB810l6zmvvFF1uq
F16Civ3dDznLnMGQsIGZyQTa5As4noMaxzuK8xIyitNthYtzl4IRiXTQf6lB
cXHg5aB6DHDb6Tb8BnQ5o3Ru4gs2Pu6Vmod6bt4ApviT6RAzjAh4GL94luce
ytm7nv+nxM3EEXrlm9aFsGkzrn92LL0YdMmvBGziUHjbUxQxoaw9tmyt2.8K
3OPer0c7R03yRMjLrjqeW7Oz8f0H4WeR8oXe2yrHdWGUODmJmVrANUqobs+T
d7nAQB+dsKeNNI6GWgijy5L1ygNQrlb+Xj8gPCEBJyHL97.tu8JhOybkPbXe
nLMY0wl8SujK+iUwK+w32pWAgjjkJOdV0GfFTMaXlvqJvBwnHipwkSpr7sU8
WaJiFlcC.7ZmYNodM2uRG5hA5Pu4ybXQWCscriIWqh9nwmHtu5wMZmZbKf4K
zy++sL5no+tVoht52W2lXbCqWCabBOWHKkWdCq5oqbQo3bdwnmeEm5Q2uJIN
8s357HOKUwKtbscSV49pnUjv9csd5BU1Uy6o3QqQoJEk.hcct39QArCa9ty1
wq03NnwSAq1mwY66grHlM+8HhOWXCoFFHBB5PJJWluQ9VBm08ROpYslcIknM
hn8tHnqiqJRdcYUwUPGsLrfpoXqlkJ7i5q2bE9EToJUIKTIJr4kizGcOzXpH
AW+O6bCzdK5OixlddX8hWpFU80qqpc78LQ4zUq3vjoD6Y7dn40xpG+Zh7a8G
1Kf5YcmFIDD6PoOKxmw5bhuUmj+vQ0mJblpBendLmapYN2m05n9.WVoweeQb
QOwyHQBuPS0QIjZ6U0Ur17.2u5zo0oRtKe6ldpwqXvu63h9CLtXyGN5S1Pha
e6A5tiELvNVzGj.18FzMfcj0xU9483LcwGdiNGl9InNdqrzM9o435R738dsk
F9bKPdW++SdW29LyPpSCZij0DQSpLgMhUfRnr4NfrwFmrwtH2OgYiMh4833D
6tvm5rn1OQ.HCJDGDwAQbPDGDwA+e43fCN.HCA.Q.PD.DA.Q.PD.7iX.PNB.
h.fH.HB.h.fH.3Gw.fdH.HB.h.fH.HB.h.feDC.JP.PD.DA.Q.PD.DA.+HF.
zGA.Q.PD.DA.Q.PD.7iV.PJouyIzg+s43X2BzPiuFORD2hcdJyB6Qixweip6
9C05tsn7xBzW1DWs7EYAgbtyL5qtpRSd9kl.q8nf59LYqwupnM7JeeOrcarp
r1TfsIVTjRYETeUPXzXNladhc5mq8aKzUdNy8tdx1LRGODmIV13exP33CE1q
IqwKddybbVQ+zbXRcaGUIix4I0geYDurInUm7OR2JG7wP+fRd6l8QX6f+VgT
lM3dXeIoLhct+iLMM+aCt2ExTwSMtPBo1P9DgJ5e+dwX5GhPBGKAvb3k7a4o
qF9eEBZOnHE0GqX5LU1yQynzAyK9Rb1LaAmjnDcNUpH8XigmoBZc1h9p714i
72uznfHpsc74D+PqEDk8SwALdWGsocGx4p+pqNoecR4Ad1zaHbQn8XOkv887
FSZztPDCOiEaJl0+XD6NaK1zucwYIzf1SfNOp9H1+g8luXu4E5UePxxDD+H6
pUDplAT3XJWExkxjuJKGpC0V5amLQ12jeb5b1UlS6yru92QJtK5sryUm4RmW
Wih.UJyVU9yVj0p3xJ4SaSSqOUAudMcembVmUSG0tDP9s9J0KMVP3THTWVlF
woxwTths+Ezf2NdwYQ7nv2c8w2dIoZng0YsGWOrV8AqNXi13pmDmdCws0UVS
29Syl+qElE3sSM94iaZpkmhW1zb2hVzTWyWlFWVp6Okapqt4Kxec98+08+Wv
PkCP1
-----------end_max5_patcher-----------
1 Like

this is the loading and playback portion


----------begin_max5_patcher----------
1855.3oc6Zs0aihCE94zeEHj12Rn9Nv959x77tZeZznJGvIkYHlHvzosil82
95KPZRCoAHnrQiVTKALfO96yGetA+3tY9KKdVT4686de1a1reb2rY1lLMLq4
7Y9a3Omjyqr2lu30Tdx+3O2corTaiEK+5BBssQY8lLYtPYe.TSia4pjGyjqe
nTjnbBLJJJ.L2KhfM+Pns689xacTQspsm.lF+4c2Y1Mumi1MhpJ9ZQ6HSId1
Ja+6+6JQY08OxkU2u8OxKpSWT8hL49+RUKR9lXwFtRTlwyyDx6+Dur7kEKEb
kVVZDb+eJ3aEkG2tqgBYkd.mmkHVPh91mdcQkHWC4rB4w2..EFE7c9ScQmjg
RmLrkAo.h4mPGqhfmjOgMs5ZR8xVgqe7889xujTc3onZ7HoZBF8+TcmTM6TT
MZjTMlx9OgpkhuqG2Gwz4E7Tyrf2BVWnDzIJgmFkwQVbwXVKht8WOPlm8jHX
MOStyt9S7RIei3DWcOnhi82gpR8SnUvdPH4KyE6ONGnGAVnccEwdBDyNIOPa
ZUiDcewkRQdRQsz1afSwQUYqk7b+46ej4+U5IUk4f7rJcOzJwJ9ShzG3JUY1
xZk3sipZXzFJ0PZ40hhUsM2199TS0iEkpSyrGbusCYPGWqVlopTu3XYRG2vF
Mgat1hPPPWcPdgbcOGGaz5JlaSOM3tnU6p8moY8z1RwVgL0SVnDcokENzETM
ZRzXf0rwsgUisE4u7OdOpdPq+rZaN+EM6ZZ6gUEkOTVjFn6DMV7Pft3.vH4.
FJ1hdznIgl0IihJRJ1rQnWQ9dtP8XVkm9O0iBOyBNuhUduTTW5UoW.mV0AAf
1EQzpBopJ6UmIl3.DAiIgQggHZDLLbnldAVOKPVX.USOTnkkhlzvPOg9vq4A
Y5UXdvNPKbvw+QotoYWnIjyLYiNoF+7ewCKw6FKhTuazjQxyjhcdSwcnghGm
FJjZsGEgXmIguqiQ4TwJQYdw26xhCanlbcHjZW7QQWWmNmxR6p57b8P8w4dF
2NdYxTwyc.13ghUD14hMhYLbBcAspMGeELbVssLSpV4U8hQ.dZXs32BXocfJ
1v8ZZ0NwMvAQtIhbP6onTrtC7QoiaQHN1Nq4Rt51vMQRtfW10pPvfgXDHfQY
XHH1swLoQ.L.lBtMRUuqH7PCN4XhV8jDFCiBAtMDwD6hEo5n9n2.ZtJubukc
AV73rshXVbg0HmBATc.9MavwqGujKWOof151Tzoxb2qWomF1XF3XjhgPqQW.
I.ECo.R60veHKPNEKjIUsoAa92b5zpDrTqFj2UVMvwoFfATKADFel0y3SAY6
j97KwP1YxksRUT1YxrQC1SKjFDu+VHRmVGzFeAD.tMxskm7MOcFccA3AaWCA
swFRaBXDea.wjh7baLT5.F2TmqxVbpXov3gOEaQLyE5HDdtvNHene42TqOnH
V5glVfePErDaVJR2ulSFk4jrJc9B1J.M408Ye1ryxKRGaD31r4CgiUwYps.1
ZTvT33tpX7HMCRnVuggzaknT+ZQlrK7wFWXpDjML033qeXpefqrkcFQyHmBi
gNEVxQgrdId0N32QgesABUQWyknnOpj+fwEUmq1jj18CUM9XXZ6AaMLd2q21
NFLseH1qJpKSZ6tVUVu2FHohJUljqZLE942V2ZtoN429JISLPdvyIIl6ltHI
YxV77XhMEXJtORhd.vKJS0wLexJEL8hFbrngWjnMudyyJZyKy3h4Wy6r9JII
xUSRf9Ho3oP675Iov9HIvDHITeVayND3axR2pcXqZLQhMurviR0TagFY7AG4
JXj4rodcCqOyGT5DXADC6qjlDq5nyMyilhY9dYKXJ7TA6isf1gykgon9Hoov
SEpO94mDxqOxYJ3NXezGZmJuLc7d4uK5ZYcyNbfCx5Fwk5DFayyvd1TGORer
Cf.SjB14BiDg9PG.nv.LJBRoDWVHQlWABNHzvMXbP76q0r6hW5bau7Fi+nAt
467.9tzmXDX6KDm1b1TO01uQNcnibJF4Fx12Xg4jo1gKpOKbsq4vSgyIXejz
EaLJZ.pQWVfpvALseTNo7saeRT1VSMqPzYd+0B6zZzb6oYR2o1Dd8KEOsqFb
1L+84k57nU5jnqKceBWOybeuH9aJzJHx5rFcDM7zhz9oh8t7f280eY9tCzql
cI0adc375b0gL.OIQHUIE4tQ0m8.AgDHLTqqBBvTVDCaNBPBAzX8z8dqz1+a
04ydv8ujolJ197gLogQDs8MX9d61+IVt9fw.iQHLh49X3XFzMZhhfg32+Xqx
xy28n6Wwy1ZH3utjml81qOel+ARBECfwt9GDGAHtizMAOPRMOEr8whXnPB0b
yZqlznH2QQDbmOFZGtnfX68xLagtib8zAOEWt1UzEzdeke9aKK1VT1pMpGmw
6t+ZUwNb1Z7yoh7NDCaX9210pHOuYkRotO18EH52n7XqiaaO2puaKojQaqZK
2sLxV4o694c+KJe7hgC
-----------end_max5_patcher-----------
1 Like

Af few notes: I prefer working with sound file names instead of buffer indices. Therefore the coll.

I deferlow the loading process to make sure we get to the end of the list.

Let me know if you have questions.

Ah interesting, I didn’t realize there was an ibuffermulti~, which is kind of a pre-polybuffer~ polybuffer~. Shame that it only allows up to 4096 samples. I’m wondering if @a.harker did that because of 16/32-bit limits and such.

I’ll have a look through this.

I tend to use polybuffer~ indices since they generally refer to the same indices in an entrymatcher~ elsewhere, so I can just query and then playback by index without having to worry about names and such.

Alex lifted the 4096 limit upon my request last year.

Interesting. I’ll have a poke and see how to make it act more polybuffer~-esque for my use case(s).

edit:
Oh, that’s unfortunate. It’s not a “real” buffer~ that can be accessed elsewhere (i.e. via play~). I guess I can also use ibufplayer~ since it takes play~-like messages, but I may want to use other playback objects.

ibuffermulti~ makes multiple ibuffer~s and not buffer~s, so of course you can’t access these via play~ etc. I think it predates polybuffer~~ but I’m not 100% sure - I think I made it because I was using a poly~ to do the loading and there were some performance implications that I wanted to avoid.

1 Like

I was thinking about this again yesterday and I want to revisit this idea with my batch analysis stuff.

I’m thinking of keeping the end component count low due to memory limits and the sheer amount of combinations/permutations possible, but I wanted to bump this to get some thoughts on how to best do this.

Even though having an estimation of amount of nmf components via fluid.bufnnnsvd~ would be great, having a low amount of components that is consistent across all the files would make the plumbing and such more functional for the patch.

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

So to reiterate the initial idea. It would be to take each individual sample and split it into four layers. At the moment I’ve done two via HPSS and two via NMF. This could be more or less layers and/or different types, but I’ve had good results with these algorithms.

For now I’m combining all of those into a single 4-channel buffer with the same name and duration as the original as this makes other stuff easier as well (playback/etc…).

This much is working so far.

Before I got sidetracked about how quickly I’ll run out of ram (thanks for the example patches @tutschku!), I was wondering how to best go about analyzing how layers might combine to be query-able.

On thinking about it this morning, I thought I can just fluid.bufcompose~ every possibel combination of layers to create accurate analyses of how these would sound together.

So if I have three samples (sample1, sample2, sample3) and I run them through the decomposition process, I’d then have twelve samples (sample1A, sample1B, sample1C, sample1D, sample2A, sample2B, etc…).

The brute force thing to do would be to analyze every combination/permutation of that (sample1A + sample2B, sample1A + sample3D, etc…). I could do that for every permutation except the combinations which form original samples (so no sample1A + sample1B since that would be the sum of HPSS).

Off the top of my head I don’t know how to calculate the combinatorics here, but I know enough to know that that will become a really really really big analysis set. (ca. 1700 samples, 4 layers each, every possible combination up to 4 simultaneous sounds).

AND

That only takes into consideration starting all the files at the same time. So having stuff where sample1A starts at 0 and sample3C starts at 120ms, is out of the question.

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

So other than kind of spitballing verbose about the complexity of this, I wanted to see if there was some better way of pre-analyzing what or how possible combinations of sounds might work here.

Or if there is a way of figuring out how multiple layers of sounds might fuse together…without having to manually fuse them and (re)analyzing them (i.e. from loads of descriptors/statistics).