FAQ & Terms of UseFAQ & Terms Of Use   Wiggler RadioMW Radio   Muff Wiggler TwitterTwitter   Support the site @ PatreonPatreon 
 SearchSearch   RegisterSign up   Log inLog in 

Modeling "wave-folding"
MUFF WIGGLER Forum Index -> Modular Synth General Discussion  
Author Modeling "wave-folding"
Hey all,

This is my first post! I just ordered some Eurorack equipment (2x dixies, a ufold, and some mostly-doepfer adsrs, lfos, vcas, etc, but mostly waveform-related and not sequencing-related). I can't wait for it to arrive, so I've been exploring some of the synthesis techniques I want to model with a modular, with PureData instead.

One specific question I have, are there any general references of the kind of "wave-folding" that the Intellijel ufold does? I found two references, but I am unsure if they model the same thing.

The first is for the "Wavolver" waveshaper. But it does appear to differ from the ufold in that the ufold seems to create overlapping symmetry in the waveform, which it is unclear if that is the behavior of this sort of waveshaper.

The second is this general article on waveshaping, and although it mentions "folding", it is unclear whether this is the same sort of "folding" that the ufold does.

In general, the two characteristics of the ufold which interest me are the seemingly FM-like "squishing" of waves into little "bundles" like around :45 in this video and the "overlapping symmetries" which are demonstrated around 4:00 in that same video.

Thanks in advance, I hope this question isn't too misdirected :¬)
Hi! Nice to see a first post that is more substantial than "Hi. Can I browse BST now"! hihi

From a cursory glance the academic article doesn't seem to deal with the wavefolding that you're interested in. In a nutshell the Intellijel wavefolder gives similar results to a number of other approaches such as the Serge wavefolder and the CGS version ( What happens is that the wave is "reflected" by adding in an inverted version of itself past a certain threshold in either the positive or negative direction-this process is repeated at each stage to give the complex grouped waveforms seen in the Intellijel vid. The next stage would add in a positive version of the wave rectified above a higher absolute threshold, the one after that would add in a negative copy of the wave rectified above an even higher absolute threshold etc etc etc

The Wavolver is fairly unique-it involves gating the waveform on or off at a certain threshold a bit like a TRIAC lamp dimmer knob-so a triangle wave looks more like a pillar as the effect is applied.
I'm not sure this is exactly what you wanted but, I made an oscilloscope video with audio of Suit and Tie Guy's Wavefolder. There are a several others on youtube you can find with a quick search. Keep in mind, ultimately it's about the sound unless your goal is visual - to project videos of it or something.

Thanks for the replies! This certainly gives me some avenues to explore.

Although my analysis has been mostly visual, I am intrigued by the seemingly "grumbly" and "subterranean" sounds the ufold seems to provide and I need something to tide me over til I can really get my feet wet with a real modular (hopefully should ship this week).

I did some exploration with recording some output to a "table" object in Puredata and reversing the table, toggling between the two after a certain number of samples have elapsed. I'll post my example when I get home. But I have to do more research into how sample lengths get specified, because I am still getting clipping in between my regular and reflected waveforms.
Sending a sine through a cosine shaper gives you a wavefolding effect. The depth of the effect is determined by the amplitude of the incoming signal. I messed around with it for a bit in puredata. I had difficulty making something that faded from clean signal to multiple folds that had a consistent output amplitude through the range of modulation, but I ended up with some classic wavefolding timbres none the less. I think the object is just cos~
Here's a waveform mirroring patch I've come up with so far, but it's not perfect—

* I can't figure out the exact time when the mirroring is complete, to aid in seamlessly creating new waveforms. I have some ideas though.
* There is a bit of extra buzzing in the oscillator. I thought this was because the start and end points don't line up but I'm pretty sure they do. I need to cunningly use [line~] when first sampling to 0 out the signal.

If anyone is interested, here's the patch. This is more for anyone's curiosity than anything else :¬)
gwaiden: Thanks for the tip about inverting the second half of the waveform, I'll give that a try!

doctorvague: That's exactly the effect I'm looking for! It does look cool of course, but I like the sound too which sounds like it'd be good for bass among other things. I guess I'll see whether I like the effect soon enough :¬)


Here's my [cos~] based wavefolder so far, based on CursedYogurt's suggestion. Thanks! I'll try combining the two techniques tomorrow.
I don't know PD, but in Max there are objects called pong~ for normal folding or wrapping of waves, and lookup~ for wavetable lookup, which can get things sort of like this.

perhaps foldback~ does at least the folding? Wrapping is fun too but gets really nasty really fast.

table lookup:

Perhaps tabread4~ works for lookup, based on quick googling:

Running signals through %~ is sort of like wave wrapping, but not really. Still, it might get you into trying more crazy stuff?

(sort if I'm duplicating, didn't have energy to read the entire thread)
oljud: To the contrary, your suggestions are very helpful! I didn't know about [pong~] [lookup~] or [foldback~] so those give me some avenues of exploration. I didn't realize that the Max/MSP docs have some pertinent info for PureData, so it was interesting to dig around for a bit.

As a side-effect, I've learned a bit about algorithms to implement distortion too, so that's fun :¬)
Glad I could help :-)

Maxobjects is nice and has some PD stuff too.

Distortion: n&operateur=AND&id_plateforme=4&id_format=0

Chebyshev polynomials are good too: &operateur=AND&id_plateforme=4&id_format=0

Using maths to write into wavetables for lookup can be fun. peek~ is the object in max, I think tabwrite~ or something is the equivalent for PD?
I know this is an old thread, but here's an article I wrote recently on how the CGS wavefolder works in case anyone stumbles upon this (like I just did)...

I'd say the Lockhart is 95% identical to a single folding stage inside the Serge middle VCM, which has 6 folders.

MUFF WIGGLER Forum Index -> Modular Synth General Discussion  
Page 1 of 1
Powered by phpBB © phpBB Group