Noise Injection Distortion in HISE
-
Hello! in Ableton 12's Roar there is a distortion mode (similar to the Erosion module sound) that allows you to "inject" noise into a signal with distortion however, when I try to recreate it in HISE by blending white noise sample, it doesn't sound quite right. does anyone know how I would achieve something like Erosion, or Roars Noise injection in HISE?
Thanks!
Mitchell -
@FatMitchell What's your path looking like so far? I got pretty close in Live with a white noise layer (eq'd/ bandpassed to taste) + a soft/hard clipper, with the noise volume & clipper shape mapped to one knob.
You can do it in scriptnode with a noise osc layer + soft/hard clipper (the saturation snippet from the new browser should work for this).
Ableton's manual mentions
Noise Injection applies stereo noise followed by smooth distortion to the input signal.
I think a container.multi with a noise osc for each channel, followed by the saturation should reproduce the stereo effect. If you stick with a noise sample just make sure to add a short delay to one of them.
Re: Erosion, based on Ableton's description it sounds like a whole different beast, but probably doable in scriptnode.
The Erosion effect degrades the input signal by modulating a short delay with filtered noise or a sine wave. This adds noisy artifacts or aliasing/downsampling-like distortions that sound very ”digital.”
Idk how dependent this technique is on the delay algorithm, but scriptnode and faust have plenty of options, and they can all be modulated by an oscillator set to sine or noise.
The Frequency control determines the color, or quality, of the distortion. If the Mode control is set to Noise, this works in conjunction with the Width control, which defines the noise bandwidth. Lower values lead to more selective distortion frequencies, while higher values affect the entire input signal. Width has no effect in Sine Mode.
Add a bandpass filter and when the sine osc is active, disable the user's width/resonance control and set a static value.
Noise and Sine use a single modulation generator. However, Wide Noise has independent noise generators for the left and right channels, which creates a subtle stereo enhancement.
So two noise oscillators in a container.multi = Wide Noise mode.
-
@Goodflow Thank you so much for this! I would love to dive into scriptnode and I have before, but there's some elements I don't know where to find more information about. if you could guide me towards a resource outside searching "Scriptnode" into the forum it would be greatly appreciated!!!
Mychain was a sine wave generator, a Waveform generator set to noise, going through a limiter.
I will look into the scriptnode option.
I wasn't sure if there was a "noise filter" or something of that nature, unless that's what we're building in scriptnode? A way to apply noise to any sound? it just sounds so nice how Ableton has it setup because it does sound smoothly distorted. not pure white noise.
Ive seen DnB dudes do the low sub with white noise thru a limiter to get that crunch sound but yeah.
I truly appreciate that deep dive.
-
@Goodflow I have incorporated Faust in the past using their demo scripts. The grey hole verb is awesome. Any ideas for good resources for Faust examples?
-
@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.