Group Project: Reverse Delay
-
Hello Awesome people!!!
OK so here is the idea... I have seen it in the forum but there did not seem to be much movement. I would like to incorporate a Reverse Delay into a plugin. Like the kind of guitar effect where you play a few notes and the playback of the delay is reversed. So here is how far I have gotten and I would love to share... and would be grateful for any advice or help in getting this thing to work properly.
I have managed to get it working 2 different ways.
HISE MASTER with Faust
The first way through scriptnode Faust using a DSP of a reverse Delay from GITHUB under a MIT license.
Download of the DSP
https://gist.github.com/tomoyanonymous/d527fca58e929de6a021565505589406HiseSnippet 1317.3oc2X0rbaTDDdVIM1QNFSBUJJNtG3fSUFWRPHPUbvxV1JnhHaUdUL4lqw6NxZPyNyxrijsfheNlC7NvC.uCT4cfaTbH23H4NGB8ryJuqrULxJFe.6pboo6dl9a5o+5tkaqj9z3XoB4TtynHJxYYr2HgtW8dDl.0bajyJ3VjXMU4ZEs0nHRbLM.43T7QFANkKgR94karEgSD9zLQHzARlO8wrPlNSZ6ZeAiyaPBncXg4r9A0Z5KE0kb4..OEwUPQD+9jio6RLlU.ibVXm.lVp7zDMMFrYKYvHudxSDV6OfEyNhSMKph7fCxJFUuGiGzd7cMFgbvsyt4Es276gawBXmIOKBbmDEtY6HeLvovkAopWAH4jCRkrP5tXOeEKRmowfmaiaJfGjtDHTmGJVaQNOGWWBFHzqGR5SanfEmsgUeXkJq4B+49eV2ABeMSJbkhckZ5dhUu+Re6RkW56Vx87p51cp5LtQI4bpZppMutpKaiqJFDdDUsl6PBe.8LCgq+jwzElsXpu8VmyPonofo2KhlttgjGXhUlOewW.TZXC9zSZtMQSLOJox.6hnJMy.GmsoCgrZ6STY71z39ZYDjWeg2OHyQFLfSzSlNY3MoJf3wDuglGJQLSOJOu574Xkd8wiJ4hG+K21YDt2E2lo86Mc7VXJ3EhZyNmnxkxIPWjk9V3c51k5qy.XIbimNuTxJWYJ4RoTRvmFmub5R2FOs5TIiOCmk3GonQDEsirMmLZ0XRXDmtOfw0bOhK866w9F5EYKQVHrkwhU86QDBJOddHUKbMUnBsubflINtEQqXmBkR2cPnGTx1mVOEcfLmBF9jccEyZSdgGUDjr3UvOoJqZV6jpr5Xk4nh6R0mHU8SdNR+LxYQarONIHeX2Sqh1jykmTWFFwRyRg2fDYsk7QQ8jBluQj0hwHcyP4.vIov8yIwcHLtIs1aPLTzHXOgGXbRKMmhGPUwIG7h3JqC+Bo46JC.U3FDeHvNpMQ2yvWL0gfjSpZc+yRRm.q4ySLGw3Vd1nD.wPyUOogWwbEdr4ilU.aqf8TaFefQqOgiNv7da.Oxbl13kEeFSWD2kLHVil.qKCXUQW2pYtQUgygpx35b3jZFLFRqfUzgPziFPgD+DVcd6eaSFTahB5xCcohGuKqeQ4T.jvyVA4ysXhTSyJ8zhb5Dxdg7Oq4ooQFtU9Rpd8omXCE4kZ6tlfRsYzjIO9m8a0PWQ+Wa8W8WabN++hVG09R7eIb2ix63e7N+vW8GabUcr8RdkbLFGBz47GxO8q+7ueS34agigRij.zENaj2IllOcHpio53ykMf1RJ6GRRpM7F2wdEqxai8.laxHvI712MYs6WRFRceDE3zlliUecSA+7+96+kYcJ3nYdJ3870f66nHh3HY7DGrGMj0QJL2wLgOIFF5i906apClWdcIQMUUubiFvkbp6winGnRJnNtVYt17Em4wRx2QYxoexY+TZ.W5+pwzuQGg5MehuqmQXJOFidLynG6HFR4.IIAiuCvJf9.b8XoSlj2RJji6hlkArOEFA33ioSxnm1EZSsF9tbYRtWs8obJIe176W6wPVHQ0Joo0bEKt5eCqo9d8dXKbcMLS2+eLodwYZR8qc7N+Sse8.kahYUuI7QHwWIOz2NhuIW9VIRf6sH4eNRYbKyZ2pngoSOYFREEBUDOz22Dt+.H9L887gywd9n4XOOXN1yGOG64gywd9j4XOe5ktGSynMGnkgVpHHn8NIin33rif.YxIY8n+AfyMMyU
This works but I was only able to export using the Autogeneratedproject file through projucier and then compile to make a hard coded effect. 9 i will post the forum link if I can find again)
I was able to load the plugin in Ableton and Reaper, but there are clicky artifacts. Any ideas on how to reduce them and make it smoother. The artifacts are in HISE as wellThe Second way I got this kinda working was through Script FX
HiseSnippet 1422.3oc2X80aaaCDWJIpawsqXcnXXOxG1.jaZRs6Z6FPVPShSbQvZZLhR6JPPPAiDsMQjI0nnRa1P1Wn8knej566gsihxVTVxdNdY8g5GBJu+P969w6NcrcDbeRbLWXYu7QWDQrruki2ELY+V8wTl0d6XYeam8wwRh.oEs8EQ33XRfks8hOSIvd4krR+8gmtMNDy7I4hrrdEm5SdNc.UlKsyl+LMLrMNfbDcfg0OZy874rV7PdBfmEcZXEg8OC2i7BrxrEbrruwtATIW3IwRRLXy17fK75yeKSa+qnwzSCIpEMs7fMRK1pUeZXPmgwZrkksSm7HeQcjeWm8oAzQxyYfuLUAJ2CSNvdgoAolWAHYa.okzP5NNd9BZjLWiBO2zYOFbgzECTsITz1ZY+dmVbv.lbsA3yHsEvhQN39jFMtOB9S806lv7kTNCwYufKIGvbqW62qsbsKqgFWU2tUpScLBdXHQToZ0sqXZN5xRFbJQbez43vDxHCgvuHmdiYiS80Qsggb1dLp7fHR1517v.EWo92kuArxnM3e8x81AKwpKkLYfcQDgjpfi8NjygrZ8UzxN6PhOSxif75R2ePlCOHIDKKlNopaxT.7Qg6P0EEKlJuvrtZ7brklLezvfO9Wh1YDt2woCU52uZ7tPE3EXsYulnwTqIrJWk9EN61sKwWlCvkbZ+54sjrwUtjrVVIIblpC+VYKQsecypJFW3telCjWFKgbbAJFOHJjbH.KzFncY8nLxZ8HRuQhcqudsbyCHg3KTUQdDevgGtNxP4oI.OH7n+lZuhvhXBbW3ZbB2qf+0AmGsmam5K32wmjI9sBpD1f.x6.oMxDJH3fgxVsYlPZr161Iggf7t3vXRlJeAONtKzW+4DVOY+IhqFq03w.ddvCzto73fDoIbTh1iMTRMiVGpB5zdJH3WWtvMESZPSQ+jAs.qWYk5HskpeFg9ZQIw8cAb.7sR0ko+cR64XwUoMdHhekpMF3FE8fR9LxXcnoAvHmpWTOvFZCZhVEMtQWB8HyYjHAAHYxQ7NPvYPy2GcZH2+LEQTtCbjNsdakEt98wLFILdXDohFnwrNoLFBmgFbbiSVKLKZlDUk6XIVh1E4Zl7XpaH4axnoLX6T1RmB5ZjxuhQx4pEzr53Te85nuyLsnzAQiakcTTVOU7V7fKe+WqvVTZ+RyyHAZd.1Oi7tiGg5SJhCM4XfiwXmxmznL5Qmz81HK453hQvXGUYGWoHFcyo1UJQlE3xSfh4r70oelWNEJyH85X5IC4qgfaZjsY+IWy7gl.vyQ4zt+U7tw1rgQivptAlPyuwMqTiyhbQErRUMoNNGKmTrLD3o0qv2BMwcMVsBp4jHAEAX5GTIOdfOVPKEIlw7kiZJcUlvy4ZZpYqC4IRnbYerTPeGruu.Z.AuevmzJit.Y1KnFtSutgZsZHEOBKHcweC+xT1Ts1NSYygJuFmK71Zk2zwC9ze5CsRmh3qSWi9E74DzyHLhPMBVyI8Vq2+W+weNqu0JZleq0A9R33ORfYwQ73BarGY.8HNSEi4BeYL7zBxudnZlPS4s3pu4WgpO7z1PPVoOdXYhHc3xsFvSXxBCSt3LO7qYpRwYrMruhw7V5+qGC9QcP8+6uq35YP4kGhQOppA9tryIgPQRJF+JnpnKNITNTZwj784LdTeNi5alAbHAps60iHLwdkAzVRI1+rbI2cyCIgDrY172t4ygrPr.3IxbxEW82wW48023ngKRUYh9z38fKNSuG7ZGuy+aCudfxGiOB8w3LFfgo3diu9a2pb4OOUBD2rz+K3V1Ye0ZTSqzumC94.ugxZ.zQ7M99J5dUfep1mGNG978ygOOZN74wygOOYN74GlCe9wo5i5iQakH4CzkhffN6lNhhs8tLLjIml0a8O.vGEf2
Its rough and it works (Really badly). (Play three notes quick and you will hear them in reverse) but it is like the sample rate has changed and its just fuzz. I am still in the 101 and experimenting.
Well that is where I am. This has been my obsession the past few days. Open to anything.
Best Regards,
A Fool.
-
@WaterSpoon I have been working on a reverse delay in RNBO/Gen that I am pretty happy with. Haven't finished working out the Scriptnode network yet (for tempo syncing, etc.) but once its done I would be happy to share.
-
@HISEnberg That is awesome!!! I have not yet messed with RNBO yet, going to check that next.. Glad to hear you are happy with what you are getting and thank you for sharing notes. I know this effect is possible. HISE is one of those door beyond a door, beyond a door things. There is a way!!!! Do you get artifacts with the delay playback?
-
@HISEnberg So wow!!! RNBO was the way to go!!! I have export some of the guitar pedal effects and was able to bring into HISE. This is an EPIC addition. Thank you for steering that way!!! i am going to focus on learning RNBO and building the reverse delay in there. Awesome tip. It still would be cool to get working in script fx.
Well, if anyone else has anything, thank you for it!!! i will continue to post any progress. Cheers.
-
@HISEnberg Thank you for steering to RNBO. i found this video and was able to recreate this as a RNBO c++ export and load into HISE!!!
https://www.youtube.com/watch?v=hOX5eg7QCqM
This was great and Kudos!!!
Some things do not copy 1 to 1 from Max/Gen to RNBO.
This is not the MAX forum so I will spare everything RNBO talk. But here is the few things I had to trial and error... and would recommend...
- Build all buffers in the RNBO patch, not the max patch.
- Gen stuff in the Gen~ Object is all the same as in the video.
- When the video references.. "Gen @expr..." Just use "expr..." in RNBO
4.Buffer~ "@samps" in MAX is "@samples" in RNBO.
Here is a screen shot of the RNBO Patch of how I got it working and with no clicking. As you adjust the delay time the Windowed buffer adjusts. In the video he goes go further into adjustments.
Here are two great videos that helped me finish it up, export it and get to HISE.
https://www.youtube.com/watch?v=-0tkr5ypLT4
https://www.youtube.com/watch?v=64dTcwnP40o
Kudos to these folks and @Christoph-Hart
Hope this helps someone. I would still love to see this concept work in straight script FX with scriptnode or coding, but I am not there yet, LOL.
Anyway on to the next thing to learn. Happy building!!!
Will
-
@WaterSpoon Congrats on finding a solution! Very similar approach to the one I took. You can embed the RNBO patch in scriptnode as well for any further adjustments.
I know there are some new features like time stretch and core.record in scriptnode as well, which means storing buffers. I.e. once these are fully functioning things like a reverse delay should be possible.
Just fyi, buffers can communicate in RNBO and Gen~, so you just need to store a copy in both and your good to go.
-
@HISEnberg Thanks again. yep, i referenced the buffers in both gen and RNBO and it worked. I was able to export and it worked the same in HISE as Ableton.
Agreed on the script node for further processing and I look forward to exploring the nodes you mentioned.
-
@WaterSpoon Hi there I tried to rebuild this as well but I failed. Would you share your RNBO patch with me? I also found out that if you put an envelope (to the scriptfx snippet you've posted) that controls the filter, the cracking goes away.
-
@meto396 What errors did you receive when building? Did you receive them trying to compile it to .dll?
-
@HISEnberg no I don't have any sound the effect isn't there I don't understand why. I know how to compile it to use it in Hise
-
@meto396 Probably something to do with the buffer, it sounds like your issue is in how the RNBO patch is built, not with HISE: https://docs.hise.audio/glossary/rnbo.html
Also, I find it can resolve issues to move any dependency files/folders created by the RNBO into the HISE project.
-
@meto396 Hey there, I am away from my set up but will be back to it after the weekend I will see what I can export and share. Still new to RNBO. The one thing i can see from my screenshot above that is different then in the video is that inside the Gen folder he has a switch activated through in2. I replaced the switch button with an operator with a value of 1 which would keep the effect always on. The other thing is I settled on one mask for the window in the screenshot above there is one bang that loads on startup. In the video he is manually hitting the three he made. The only control i kept in the RNBO was the delay time. onceyou have it in scriptnode you can make a bypass and other controls. one trick to do that is to use the feedback delay in scriptnode and replace the delay with the RNBO patch. Now you have a feedback knob. Reverse Delay is hard to control - you can tempo sync in scriptnode but it is in what is being played. hope this helps some. but i will see how to share RNBO snippets once i get back in front of it. -Best Success!!!
-
This post is deleted! -
This post is deleted! -
@meto396 said in Group Project: Reverse Delay:
@WaterSpoon Hi there I tried to rebuild this as well but I failed. Would you share your RNBO patch with me? I also found out that if you put an envelope (to the scriptfx snippet you've posted) that controls the filter, the cracking goes away.
Awesome, i am going to try that, i would love to see the variation. Thank you!!!
-
This is the Max Patch level. just a sound for testing and i referenced the buffer to see what was going on.
this is the Rainbow patch (same as above) - Note the "Loadbang" as this will build the window to the buffer automatically when the plugin is Init.
This is the Gen~ folder. i highlighted the changes mentioned above.
i believe the no sound issue you are describing is that the effect is technically not on when exported. i did it this way to be able to add all that in HISE. Best Success hope this helps.