SIne() Based Wavefolder


Sine Fold

I was thinking about wave folders last night and realized you could use a sine() function as a folder. I may be re-inventing the wheel, as it seems I may have seen one on the forum before, but if so, I couldn’t find it. The sine function produces a smoother fold than a spline based approach and so introduces less high order harmonics. Not necessarily better but a bit different sound. A bit more CPU intensive.
Note that if the symmetry is set away from center you will produce some DC offset so a DC Blocker isn’t a bad idea.


Input Signal Range Notes
input typically -1 to 1 audio

Output Signal Range Notes
output -1 to 1 note that the output is effectively clamped to -1 to 1


Control Function Notes
order controls how many folds are produced also varies with input signal level
sym symmetry - offsets the input to the folder . DC offsets will be produced if the symmetry control is moved from center
mix dry-wet mix control

Version History

Revision File Date Notes
1.0 Sine Wavefolder V1.0.audulus (15.1 KB) 11/16/2019 initial upload to forum

I made something similar for the umodule series on the old forum.


uFold.audulus (13.1 KB)

Which is the same as yours but color mixes between two trigonometric wave-folding.

Also there is the @biminiroad “SineFold” module in the standard module library found in the effects folder.


Still, it’s good to have one you can find in a search on the forum.

1 Like

I was pretty sure I had seen one before but I couldn’t remember where. I implemented the “order” control by changing the period of the sine function. As you increase the frequency, you introduce more folds in the modulated signal. It actually ends up having the same effect as increasing the amplitude of the input. I see you’re mixing in an arcsine as well. I wish we had a curve-based spline as well as the linear one. Then you could use an arbitrary folding function without introducing discontinuities at the nodes.

1 Like

Yeah, when I first started patching with Audulus I was obsessed with making a “perfect” wave folder that was like folding a piece of paper. So I was using the arcsine to remove the distortion around 1 and -1.

Yeah, being able to use trigonometric functions as expressions is definitely a huge advantage Audulus has over other node patchers. It’s so nice to use the framework for all sorts of things without having to resort to special libraries or extensions.

1 Like

I can’t help but use sinefold after almost every drum module. When you start mixing a kick, bass drum, pads and leads, Sinefold is very useful for getting the drums to cut through. Very excited to check out these alternatives.


What an incredible idea! This had never, and I am not a cocky dude, so I am not afraid to declare that “it never would have occurred to me without you or someone else here mentioning it” because it is absolutely true. I would not have had this epiphany on my own. Thanks! :slightly_smiling_face:


Mixing wise, the fact that we might use a wavefolder – rather than gain or bosting eq – to get voicings to settle together in the right way means we here at Audulus are working differently than most conventional mixing. I would say, we are closer to analog mixing techniques because of the breadth of the simulation.

For example, working in a daw, often people will create a drum bus, compress it, then mix the levels on the other elements. At some point it will probably get glued and eq’d. It seems to me that we are actually achieveing some of these post-hoc add-ons immediately at the level of synthesis. I think if you work strictly with the patches and then run them through some analog lines, you can end up with something that sounds very interesting. Still, it is not easy to then translate that to a sonic middle-ground a mastering engineer might shoot for in terms of having it make sense on a laptop, in your car, at the club, in your $500 headphones…

I have some free Ableton plugins that will alter the character of the sound in, say, 5 different stagings. Maybe someone someday will make something similar for Audulus, so that when I make a patch, I can edge it closer to that sweet spot so it doesn’t just sound good in my setup.