Hybrid/Layered resynthesis (3-way)

So I’ve been playing with the transient stuff again and wanted to come up with a slicing that works for me, with the intention of doing crazy fast stitching.

With the idea of replacing stuff in real-time, having front-loaded short bits makes sense since I can stitch as I go, rather than having to wait 50ms for the first chunk of audio to play. I’m also going with the names of ADSR for now, which lines up well since I’ve got four main slices I’m testing with:

  • attack: 88 samps (1.995465ms)
  • decay: 88-512 (11.61ms)
  • sustain: 512-2205 (50ms)
  • release: 2205-6615 (150ms)

For the numbers I based things on the size I’ve been getting from fluid.buftransients~ (ca. 88 samples) and what a reasonable amount of latency is for real-time use (512 samples). But it’s fairly arbitrary as it’s numerically/computationally based, rather than on what would perceptually stitch together well.

So I built a patch that would stitch random samples together at those breakpoints. Cool, this kind of works. There’s a lot of variations you can do with the first three chunks where it still sounds believable (more on this below). The final bit… not so much. Granted, I’m literally making random assemblies, and in context, these should hopefully follow each other in some kind of markov-y way.

I then made it so you can tweak the breakpoints easily and hear the results. Here’s the commented patch:


----------begin_max5_patcher----------
6027.3oc6c81jiZil+0y7ofy6cUs2c83Q+EIk6M2lM2kT0MS181Iak5pjTcg
so6lLXvEfmY5cqc9reBILFrAagsfloCcpxgALnmme54eR5Gx+8W9hYKh+je5
Lmux4mbdwK96u7EuPcp7S7hh+8Kls16SKC8RUesYQ9eLdwuN6F8kx7+Tl5zg
wdqV6ml535Bo6tZz10wayB8yT2Jr3rAqT2g7o7J3tuo9qk83FesrLalyuTbo
GBVsxOp5CXiW1xGBht+1D+kY5uu.PlSuwAAXyA2H+W4ehPyAkOEonDDUJI4m
6e7xWl+wMFp2KiWu1OJ6HEmN2IdSVPbjWX3iNKevK5dem3O3mH+2Ng9Q2m8v
t6ILHxeY71H0MhZDi.Em8t3nr67V52FtIPyp7MSC9apuIJWuaGibEJLhSTnC
Pj++HtU.o7mUj2Z0yZ124G9A+rfkdy5aHjLeGtsHw268ahCjpTe.ZvtCZXHN
GzXHEZAQ7wBngm6rIz6Qm6R7hduejSp25Mg98ApA5Np4BnUbGgT5XA0Pycj3
0p30R0vI0+97uTeXpw4cGznt4XFT4cBwiFuSvbm7f6KjNnytNLg0cLAB.JaG
JWgMHnJz0.hJ44z7t2uw7csCIMp9tFjrqov1DzdDfxOclMzEnhsjQO6gfTk3
3mzrRhZRIIsqj2XlhJTYobYmIEdwIS89vtF32884MQMw1Y1+Q9G+t+27O8iV
oOiyuXQ2C3h4N26mIiaj4j8fWlS5CAY8QDEb28dX5zUbVEmmwPHEnNjhimyc
wgq7SbhuqH+UuDK9BpUhBTkPVDLlN3AiaKrir9nUZLqCAd.WVfGBtLZqzeDO
XAdRjhouity23.OL9kG3oPQkQnUZpv9ZZacm5.GsomM0YxHWVmoqKYevUc8X
CiJl6uEDk6cmJUHmp+y+YXGzafsFpHzUklAC0UzyHCmgsypsId4iUzb81kaY
8FwTYVomwJGXwv8+ohQCuS6cBhthv80PmxRJab7t.0fPHJadHP2sis4jBbhI
CoaEG5RasaV8f5XWMW06xHvhJGs9rgzl2NXNV8WGzbh0Lv0U6vD5JkGvv3xZ
EX6CLafNissNqKWlzCw0kOfEcYD.tn8tjIxBjx7St0OxaQneUm3FSRW2R+Dy
xmN+E83Y4SpqAq2ttZK0W93omIXdSgqn7YmW4D5pPf12osEMYiShenuWpu4F
vzKrJDjP0yAEf4tfJ+gvFDlp5iUZQp0yBEUVPdPnuLOSZdGx9u8Kl4sYSkS+
hJ2RN57qwpGD+lxSEDoOEr7TI9eHX28iKOqWhT4xjZ11D8f.9TYjr7GSrrD8
nsAkcUp9oBQR0ijO3A4.U0CaQ0ws6x6gqWg0NztJKcWh5+Q3f8PjrK+9v3ku
2eUEaNYuxF+nfnMI9ox7wZizpWdk+cdaCyts53gfn4Md8cirpwKVNBn+PRfW
XoFbeRvp3nbgnVWQ9o20bxPWZSAZUkQ8Mh71zvMKs6j3RKWLUpjaSW3kj2SU
DpAs6hYwwg0uT48E5eWVwk2DDEc.JlEuo8KlDb+Cm3dWDKu35S8rUWI81sQ5
qdqznH61cSmw9umrvoB+15O9O4IC04kIG145hwyVdQc31GRWlDGFVSe0W4CM
bkURi7k9eLXU1CpFppwf7qGrYmQzrxd4UA26mlU+bYd2mV+LoYOpA8JmZ6hB
m3ay7kkAJ0h5egZKJUUO1pQ3pc9Sln9fUaf.kZG.g.zpWuoJPaOZ3QQDwUeV
sGTr04a.qRfi0KyfNyFtpqQy4xewtj.EAXtP3pVhg5n0+zqTqn27YcFQPmDQ
tSVib1YgEhtBVDQurKGURW+BKmxJRZ9PlKDLlvlVQvq0JRODOW5SgUzofKYP
jLYP5jr6xqIz4PmOiPG10ANHjZbfjhY1CQGOFSxFUgKo4F7fNCL7qCXvb03j
wL2mDf4DAexbV3DzNbfZFNnmDNziK2YVPz4C+fgJjAB0klpW97SBLvgAXNZl
jL2Xw8JMVzPBG17jH0xDIMVMUHVyTgpoSADBd9XpftxrQZHggGYlJINYODjr
5BpnQbc.BAo3Rhdl3wiG.4e6RKwCCrRMd501moIIBazj84e2A1cHAd5rOlDJ
AwzjmgYbnjABP13s78N6qUI3BPGjUx9fQp5bg.7nwXQgMGTkK3B.nqbbjPVM
.BQFW.zUBNjqMgjdL1EFOvQUct5+6D9TzVJgwrZXZ6+aR.IHUCU.kskqA31.
UaS5lDo7emSZ71jk9Nq8y7BSm+uz8T6jqLyNRmCCg0iWf.FVHR8Tufz27qNW
UgogVgwkedhRZpbgcqWb049SIiQq7+jswHs50NHAZCjpYZz3hsJUXgPvnB8e
rb7fXJf.uV.Y+rmmO4SsLsoJ4N+5MiTZGnh98hQI5TWnyysEDUtVB+T4Xsy+
dF0O0UYfZnLjWTQuJDPSEBXOID4gmLCJvhdDKxS03PLPLH8tTLR.CirLfj9V
LPFIF39VLvFIF8o2p4lFfdVJfFKE8UPCjgXQeZcpJwvLoneECPGykTstnjUZ
1F.epkMHscgC8jKbGYzWJaf9Q1PhQg2NDYrXL7Pjw8dn1ksdxtGZb8cPxXV3
F9dU33nBnxJJNqbvFdHB2UHZHMtL0sjO73FpuvsBivcrfS8has5VMqtt0KKK
IXw1L8vWqRquNw9n6CiW3EVvsnRto0.4jd4dgyRT.Vf.cf9jzKi9jXjd9knf
4npzmDxZjMrWM2ek8HYc4kUf5dQb+8r79sf1ntr4jppMvMmZPZBBM.7jU+hC
6fAhNP0aJq0t5pyu1oHKKPLmWq2FlSx8A6sVYiS51zLufNXGPfWH8fA71oGL
ahdvGPOX8ZpC0y0HWymVJYhcvSrCdhcvVhnhz5KH6fvSQNTwSQclsQJOEgtB
T2Wksqj9LP06wNlKddvSQn83oHQgLB9D2ypiHtOOnon8XzJ0kpYzJXhQq0gj
mOzTDCsBYFfZhxiGSHRp+x3nmBlapoHuPkRlRmXto1yQhA4FJB7Hi4l4QYuq
64iQlkQ1PZspqVAgcGYQZekr78Kf6cbaP02hsENNpX+zgNQ02Ip9NQ02Ip99
aFp9dwYrAtVH.LF4NGUrBBzQWJ6IJPOQA5IJPOQA5IJP2YJP2qLbhNJ3y3DI
nmHA8DInsHweg+Vf3uPSACf6Hg.xv14UEXLy.Y3ybV9ZrkDj26xAzX4.1aj+
j2UtEOQi3IZDOQi3m.t5RdFQiXKHb.2wQj7wQkIllMQIEMGE+YN0tg386auF
v8U7Ex8ULdTysaBsm31slyueIxsaxUvs6BlN+jys6U9K8drCp7E9aIBr3WRk
FY1MbhY2mhY2S66ySL6dhY21lY2b9fSra81xKApWTZLbXY6gga.sHxPyq6c6
+r5eCKFbbYLyqaphQPb8JqNwq6RDgBa9m3ke6xqa.64lkx0RqaMhL5rTtbRL
e075VS1P8uyJiHRLm3bWPRZ1S.qtoUbZvSr5t.UX5etPcgiPJhMwp6IVcOwp
6IVcOwp6IVcOwp6RVcC0r5F6Nwp6IVcOwpa7U9KhzDktmnz8Dktmnz8Dktmn
z8Dktmnz8Dktmnz8Dktmnz8Dktmnz8Dktmnz8Dkt+BgR2sR6UoJ3s78ly6UL
4BY0Mch1qcl1qtnIZuNQ60IZuZEpcx4ceYonWIuZDEq.kxAlBFOafwW856ds
T.VSJMLdLu2NyYcFVtx0aAi45kTf97XmclXOF.yoyYZNpMs0NWGRnvQ2F16k
xiwq08ApV2ethLMOG3wH.XEVQPzqYMejs6zd0rvhKrBIrPXwySRXw4VgCV6v
mmUbvhyrAErJMcfOOnZDt2oZDsnhO8K67yPlFItRCKnl3vPWMP8kBSitxhYz
lEOmIZD9bDMRp7X..P3EDMhPtQwnwunYZTt2fgyVdeReAtXr9KMIWzU.Z3VN
ANert5UFKYOEn13vjOOWtQj4ZmKZ+IElvaHtnukBSHQEm22RgIKHEu26QFAl
mFuDgfdVJfFKEvmXVs0uzIyXo.2qb.hOJLLJe5lE3ZXodiwxFsa4keduX2o0
9cDq4x1qOcjkaqUODrZUskdr40zHuHclP8hhPN2hZaS8p1KRuIJl6knX5skj
y9yOrMUrpyirI5E8RzKrRiv8fdsaXXGpX+wDeuL+UNjWkE3m33E4E9XZP5OG
8yQZ9X7UNbtSp25MoN+d3bgfRboqS+W+4H0tTV9UeEEhjWCN2EptPwOM0eki
77uBg.TmeOEntRhenuWp+WkuLjzWkOQzx6ScscxUdnmkwa0iWz0XzFxlch84
Lbwt6CjMmc313Gjo.aNylfca6ZgxNYYkL.rwbbQXxOZ2FYfUrYuUXgQ6gsyt
0aCyBRCCxCpW7L+f29vpUt7Og9klQ.ztf89YRgQ9z0xtx2.VQVqN2om7m2dX
qn2MUQPYHqrUdYd0tkjfFHtRi9tp3qrhEJ0UujOUIURybHRmQqLU1IRp8Auv
s9w2cL2g1qxqK.KXIoIpd0fnfrbxwTfl37+PBN0EKnrJiEoxsj9PbR1o67p8
82gsM07gwQ22gGUgzVsa7kUKO3x1HQM25DZQqS5Hw5zk69kh0IfwvBAmH3Bn
qKtiVmP6YcBGiVm1yzjLVLMK1i49RvzTk8FHDHYwCczxzVlkCmMYKEwvJ+Ul
+70uvgW3VSKVLna7xstMSCE.yU1Kbe3kLNz0kxZySBi+nw5KieM7uFoK7lhe
x2FsYj9YWztnj6gZWztqZMtm16voegt0gSgW7NG9tcR6gZmC+ixLf2Emr9yM
qbtGqbjRkaw16tqxrc8viKRBV0plqo00Mm7fvfzr5kEzZtdLWTMWOhglSaFV
n8uGP4d2Xu3AT7431lub2Z7B1s7oCpIeaYsTDux72YH2KKkE0UqRPgdytx95
m+eak2xOa97KRlcVoECTi4iP28Y++SWPn2ie1odHklGnRsoJs09jz.YIvgkz
5xjdHpZJuYjAalg0wS2o04kwYrlyOeXWCC1fgEb+iNX58cgaCVMWp8KiWuIN
0+yN+mUV3mSZDfaH+zrSFtsZ5FSh8hkYap8t8wycdcsO3zVXoDeuU2EGJGul
yOO6sdKkQSiSev469lu50+0T+jzWmDuJI393W+tGiV9524sdSne5qeiWx89N
uIXQhmbPzou9s4L+y4u3mFG4Esz+0+7rFmmbrwg6uvveDrdJNQ5W0A8dJpXH
BnDG93NGLMMHMOrR6o1LxwpPmgDMi0ALydyPMbcJ8Wun3sw63AnqZf5DeSCg
Gt3rE.4oekmaaIqcqsF6UWDgF69LssElz3bRuz1bWSTbDqeZbpQMta+z3DiZ
bZ+z3FYuQpPQhKuo.lzTXhEZJF2DCYazPlz2Qg1nkvFzRHgEZIpQQApsoHb.
cP52ltzZ7v1957Dvlz1GzeuNX0lXY4AEw5wpzMtn5qTM.m+dJfa9RGqEnAPK
vMCf39uogT2KCAw.hoHHX.TCB8xTCjd+t2D035Lmqumf0lWLnO7hMpoKCzaY
01nxHrQXRnQZIyFYYflUbDmXk1BLXHnQooo0yzbLgYrTjSyjFjvToAO.RCjx
LUb.Cg3PLVbfWo3PFNiTf40RZ4hygtFg5GHg1q0MYTQGLlw9y8zHoA5RLUb.
Ch3fMUbt19JSbH3t8jghIiMgS6oFGYTfRqjG1r4nvFsDkYjVQ6i52Lsw6kB3
Nb.BmJw20ixztnnWYaYhGpUZIhQce0eKxrlsigMNrWrcHTiqR45QYbWTzqrs
fClsCXnZI7f4OXTBh9IXlwM8YbD0KqvAaEk4s5AaAkGr8Sd7VOY6a6jGtkSp
d6sza+dGrTF620F2tJH9cp8NwaeqezV8h1raGdrN1r396BBCWFGFezNu4tU2
Yl9pk6xk69t4r2DIHPH+lbBvCwLjq5H4ATZ02LM88.2cSDJQ.P4eUhKhQnpi
3HLEmeD3faCsus.PgtE.BNfnORdJXMB4Jwxn6K1qHYU1vC2jDuINojBsywhx
u+1r36S7VETrmJTe8itovzJQd0C20C0jHc28T0Trry3MaW5cpN.ukKkO3ZfJ
FIAHk1QnRMUcDSetpDO1Oze8g2Ji65xT.JG.4b8QxmBBU+dqcSDFEhUeUj.y
E5inPf6AMXprEWlCf0aRj7KpDRnKCo6B4..jT+lyW+Q08caPTt2heY2JVfft
51bmcAhwI35cqFYoV1K1hwpgFP0MW4kFobFfx45iNR.Ozb0cWema9eL8Q5mT
uXsV.SU2+VkQx9Sa7ibdmWTpy67WGrHNb0rJHZM3Q.HPlxtSZCPXLssCRnsm
nt6h2ekNDu0KK6TNDU2cZ+oJAfqtq1JOuJPgUDn+7eH6V0sA5nepY8v0sAEz
7PlZ.kv.JqwbiQ7A9ZGnsUWibEohq7PUqot7IK6xnZwQZmxvF59ot2ce7kr+
lw2V+5vo2xja2GSq9McDzZVz+3O7e2QSYJf4p5e.tTLTYJCgHHxfTNDWHDny
gKPtDU+MU.kP+IbCf4UKniqja6qB5y1U2P6tA7JWprXu51b40gnRBIEepqNM
Zt4fpIDO8V2lkb+Iu1mlMt+tGWkDeuezOnfnVrwgtXYnMUW.i3JDEGAD1zDW
QyofkczLmTDosoiZu7HCuo51phqJ3ayF2WUr5FpheeHWrfoCXhEEomxOEEaG
ixZJAurduiO5hLkOoE625G4+AuVsUOmhaSa0utBU5a1h83j57RHFTbj0Equo
bK9eDITeqWPzmMTpj1.k4PN9H6KZoeLP5b1oHOvBG18ezKxDZTIT+OUe4JaV
lZrdhtGitIM4jiY0z13fnEGG+0l30a7W0UrxssDBG6z1ahsb7bIAeZYVRGih
zeBT9aczm6KytCLIFzPOee7J+zAvex3jzMUyiUU3yGBY.cP+9sqWbZgoonMG
mzrGDs+bvxrdJbqUEy7e5hxFcUa7tkwa7Mubi8yZsPssuzXA4Ocf7O3snqFA
l5t+DpTxgPs3rEP2vP9.llhrGqD5GhuOenLcrSAyjCiFpSnPvP0vqH0Vgjmv
pf+qqOyBKMfv6OV+U21FCX3hqdDj+xWaEkakWx6eUT9OGYuRMa.czt2zIZtb
tI537n1xTTPJievJWLmxk0gqZeKLGbvy3iX8Isv5y+lMWhwesX61D.Jd66sw
iBct0noZYezVWbhSNgmfyZNseIVN5.6M6WlIgiaCoVVLhEg9xTl5E.7qiie+
LKEb5W2DD89ttbYRsDvKSGicAxnJmIXjA2SiiK972Vm+9GYXueMLTecb0iNe
RDCZx1bIto1mVXdfMWlFv3uVdkLNbheOWVNq3l7d8Xx9wbp87TWrTXdoDmuD
5FcmJyfSKiKtqm+TyMBPPJXShPf4rhiXbqN.g0dexs7mYWiCFwqOXGVgs30t
j4s2QZuBCyU3J+L9Xx.VQXJRTOuVt4Oz18C015FZVvFRhHTgRA6HnwwGchXU
LdNqztowiFvT7WCO0p6cXVuX0eCjLcR2pvoOqOE.5MxhuNbq+qfckJcPVwZQ
uOFlnZjKaJfIweLpyR3YisZQI7O9nW2EP.Je+IWY5yvXj12AAkU+XeA7aS78
u.ITgdkSEGzMO4t8Et2JirEk40YwiS.tt5IIzEHENET5JfBp8kw+h+pNKerx
J2fki+ATjwv1x2+meXX7G6NDhnZRIw3PtpbS.UZUROGm4nB.f2GJ.5KQEPs7
Eeab3EXhTNERTYESTM4drNs01rMYS3kU7.qjMcDHU5+qBRkGFfdlJTI.cgQH
JvUnbBPbpKhaS8JweoevGN8J20jMS4.S1qSfp7K0NBmdHJ4lEFmw2kHCnIJR
DvJXJrzZVfOIZOLVQo9QqRGaYP1Cx122qQZFCXP.SuDUDWfnfK2LnUscx71b
tYIrxjQ8FurXm2jOJzYVq8Sy7uaaXX1YWfk5nCAJqKTUUXYs54S8wgTV8PhM
xoTndJscwLr9cVvU5R5ZWPUqTYWzhFY5P0sAdf3LttvFboqCFIvBqF8LyOcb
89B7w7Yy4Qymdbr6YmLPPN9qFdIt.1k98EKfiQSIgguJBMOihPg.nKKUZKSJ
VqcW..CqyY5C7m+lfjrGc9utO9hbm0u5bpUvK+YltonKTsoF9x+wK++w1xp.
F
-----------end_max5_patcher-----------

One thing that strikes me immediately in doing this is that fades are super needed. Yes, these fades.

I know there’s been some talk of this several times, but for use cases like this it’s pretty impossible without some kind of fading/smoothing, particularly as the segments get longer and further into the sample. Surprisingly the first few bits can be smash cut, but sustains are too jarring.

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

So I wanted to share this franken-sample patch as it’s quite handy for testing. My game plan is to play with this with a full tank of gas tomorrow and find some breakpoints that work musically, then doing some batch analysis with these breakpoints in mind, and try to do some brutalist smashing of these together.

Doing that in a sample accurate manner is going to be important, so I will likely have to end up in the land of the fl.lib~ for now. I don’t know if there are any playback objects in the pipeline for TB2 as I would think being able to playback bits/layers/chunks/slices/pieces would be central to the querying/matching side of things. It would definitely be useful to be able to do it “all” inside the FluCoMa-verse.