Constructing Waves by Superposition
There are different ways of analyzing waveshapers: by analogy (“it sounds thin“, “it sounds vocal“), by time domain (“this sequence of input voltages produces this series of output voltages“), by spectrum (“this waveshape can be represented by this series of integer-related sine waves at particular amplitude and phase“), as a function on the phase of the input signal, and so on.
One useful approach can be to see a wave as the superposition of simpler waves of known shape and harmonic properties: an excellent example of this is Bernie Hutchen’s ElectroNotes article EN228 Waveshaping: Static and Dynamic. Dr Hutchens analyses several now-mainstream waveshapers: Ian Fritz’ Double Pulser, For many synthesizer waveshapers that operate on simple standard VCO waveshapes before any filtering is applied, the superposition technique can be useful.
There are many heuristics: if there are only curves in the waveshape and no lines, the wave will not have high harmonics; if there are steep lines the wave will have high harmonics; if there are vertical lines or abrupt jump, the high harmonics extend beyond the audible range. If you see a square wave at ratio 1/n of the cycle, then harmonics except at multiples of n will be added or substracted from the other waves (at the extreme, a wave with only a 50% square wave has only odd order harmonics.)
And this is the basic technique of waveshaper design: it is not randomly assembling some an interesting collection of parts and see what the result is, it is starting with a desired shape and devise a circuit out of standard components (comparators, soft limiter, inverters, etc) to approximate that waveshape. This is how the Blip!, Shell and Rasp waveshapers came about, for example. Of course, once the architecture is in place, the vagueries of analog components, the tickling of the ears and the possibilities for generalization kick in, so the finished waveshaper may move on from being the perfect expression of that shape.