@FatMitchell Yeah scriptnode can be daunting. I wish there was a single, comprehensive resource I could point to; the best I've found has been a combination of the docs and searching the forum internally + via google with the site:forum.hise.audio operator. The snippet browser's been great for learning structure.
We can actually replicate this in HISE's module browser faster than scriptnode, so let's start there.
Roar's waveform makes it look like some kind of modulated wavetable distortion. But running a sine wave through sounds like what Ableton describes: the signal + some white noise driven into a basic saturator. Notice the way the curve goes from smooth to almost a square shape?
That's the same waveshaping you get from ShapeFX's saturation mode. You can see the curve change in the SNEX version:
In this snippet, I've got a container with two noise generators panned in either direction (waveform generator should work too) and an instrument. The container has a ShapeFX on saturation mode, and the noise generators have filters linked to macro knobs. The single UI slider controls the distortion amount + the noise volume. The limiter at the end is just to wrangle the volume.
HiseSnippet 1978.3oc6a8zababEen1k0UTNFwtFAo.EEDB4vpBWGsQ1NtHHPzRqVKgHYuVqx+PQgyHtyt6DycFVxgxdcfA7gdn8RABPQuTTf9In.sW5w5BzO.snWCPa9BT3a8XyaFRtbH0p0RJRNYsoNHfYdyaleu+Nu4IwVAbWRXHO.YL6NC8IHiyZ1dHSze09XJCsQCjwELuEmFRraPCE7.AkyPqLzGGFR5fLLpbS45LlsJR8ySWdErGl4RxlBg9.N0krIc.UjMaKm2i540D2grCcf1puhyFtb1pbOdDfoJlKh7wt2C2ibKrbYyXhL9Nq0gBHos.KHgHipqv6Lrce98Ywq+Cngzc8HxA0QsgMJd5lbuNRDKmEsZepWmVoxdHBYX1JSSTIVSbQysncnilOSi7pJB1YbnqOLlIO7pjCd00g2hZvaLPxPCRUigz4Ma6FP8EYTj3YNyMXBRPWLn10gR7ZQybtJlqxgUvDWd.9djlAvfQbT6ZKt3krgesv6XYAp9Pg8d3.618w9jleTc620V4Ob4dDwZc6RbE0lWQyFHNeddT9IR+gPfKqep09XbSRWgsbAyuvk1O0so85mR15mA6rEk4QYD6tQLWoemMm8dL9t0kBS.2qlKefOmAh0kfi2Khrf0mYMq0a9lgDgsnOwd.9A1c10tKOPMLQjr6AmfceR.wxi6h8jKqQ.cOB.5qsHbrG3FDGGvCcAOWLXhCU6xrYaS7BdW60X8.bKkMozzD6BKtIOnAwktKwKr1O9sthTykpiuLbd2PHBn6FIH0FMqj2DI6GkhQIaR3TiYCBQlBGDcV9sgEyeFTROc.HYnp1nsWsWKrv67HKqGAGRpCCv3pop4Zyqvv7KHOoDivpXOucgHzZ4sM.N0rZ2hKH2lUK197HK6hj51crzR1KORvXIKSbDLIFqwhFrKIHm2ArPHZJeHp4AGhpmAwMVknsPNaCFUbaeB6fxqfRzixv4DTAKUnBlOWRvbaOZGR.hBwrmwTogQJ.mjT7+7vK9eWF89az.KvoaCrivo3SfzwRAvnAYOHEabNhYMaPBumf6qVahoCj4m4g9fQYgeL1Y3nANepCZ+Yhfbf7NQpv.8DiROqDBEunPlwgEREC0usnX1xpGtrkSNY9gEtm2rEU31e73clwfWP8eZi2j6ddEy3rhYfspYyOZhWzbhCku6ATPvYU2l.iHA0OIJEv+PWJfQkSiq9Oyo0U+OWclKi89FL163Wj2LZm+4SSfmTBPRwciJ2JGDVMJXu3BhWghCkUVoqqjyopmRex0gIZAafdH1l76mape4+xArIZQgutys2iDDhG3C0h0S2+QKb2Yok1zYaRmn7Q62HRv6UHofJ3eClejPe13afzXcK5CxkJQI4ModPUqg4bJpbnsD0mnk.sMOR.R3VXnBJ3rMuUzf1PlGWB3GvXPgSvbFyHuROd7hxwRHzlv5nF7+geRHVWN1HgX8Th5NaWH1XaY1XHCOf5FlXsSGVL0pfrFCCRRGcoWN8N8CHg8Am7hDfZAgByxawDjsIdDbnlt9icjUIDnf0XNhLhi8fxHusLLV+zxHUDIug1QNF7nbQH6GLINOjwgjZOIgVtyx4Ke3uIkohGzSBzPwVv6hh70ErDt1OgoVOtyE6wAITfqtU2oqb4dM0X6ODCu.5lD3RcYh5C7h8GO768ON4uX+1tB332I.yB84g4131jAzcfZXyE0+9gvqXI+7BtbRuQbvXI8zkaBB4X4oMVDEntB5FC3QLwjr0UOb15mQAGUKK33Dr0Hylhw1T3NJHK4dDO3oQI8tpAoKNxSjNad+5s3LteeNi5paz2l.wi85QBzw9XEnh40tny9xl8FP1LFAGj+R0ijtn9QtMQi0d85lwv0VFLZ+hQghUd47QZOmu3H4gfmItQvIuALtWWp5NORWU7z+5o4a.KSIO0kR9sJSI+hTJ4Whd6dk86xeAyVbugwNvwuVUAhYM2r0DyUp9QVdZDg4lp4d7Rewm6bGcydwmlemHrWll9S3e9+9usB0m6gCNTVgiuGd0CoqxqYNRnll7ukVloG798MSL51Rk8zCtOm4c91EXeVAwqeLBhc9e+t0lTP7OnPPLBc8+bYPbYPbYP7W6+rUphOuYJPmybz+9AGX.7u8Wc8mzf3gyEv8gzNh958mbLs+ZCnX1.QKo8qX3Zkm2gqSad9xWD.p7oI.qbIld.7qZ1B+sAGhmG8s3a9di7JI8FI9u+1Qq4HKW1bjxlin0bjkJaNRYyQdAu4HVxliLwjkmHcGAg9S+cmxGVU9vpxGVcZzcDKY2QN5QwG01i7Gt9uurGmkQwkQwmzsG4rlYe+Ek8Gor+Hk8Gor+HureFCvtA765F+c6HSwXolAreL0WiXU3kK49VcfWkrky.ZG5cccS2EiYbS+Nl5bWeb.vorlIi4je6MY+gg0nDCkQSb23CatrxLPCzKp5JNCvOP+efaO980o1GxqqSN7dDE8e3u9ubU7b+ykCED0+fqe1E+i27Ke3uXYpJWcrye.A2gy7FJe6JZBxg1a3lBDjhVw0KZEQW8HZEW+EDq35SsVwYM2RN1dohlRDpfo7.X7JGWFu5wkwqcbY7sOtLd8iKi+jiJiVILVewmMmxNFK+TQFDe4KBsUq0TesiFFi9F.Lpf9J.K3zuWB
Since this technique relies on adding frequencies to the signal (via noise) before driving all of it into a saturator, the range and amplitude of those frequencies makes all the difference. Mess with the filters, and try tweaking the max values in the slider callback to see how much the shape of the sound changes.
Faust can handle it, but I'm not aware of any demo or resource covering this kind of routing. It has noise generators, envelope followers and oscillators, but you'd need to script the signal chain and roll your own saturator (or just use a SNEX shaper after the Faust node). I'm still green when it comes to Faust and the topology, but I'd recommend checking out Faust projects on GitHub to see how similar effects are structured.