Wavemorph was created from the combination of several ideas I was
testing.
The first
was user definable
wave-shaping. I've seen many waveshapers based on polynomials and math
functions for generating specific distortions, but this is a solution
for those who want to draw in the way a waveform will actually be
mangled. The x axis represents the incoming signal, and the y axis
shows what values will come out.
The second
concept was the emulation
of old, nonlinear digital conversion. There are many bit-crushers and
sample-reducers people use to add a nice layer of digital trash to a
signal, but this takes bit-crushing a step further by adding in a
controllable amount of nonlinearity. Additionally, bit depth can be
altered for differing sample values. The lowest values of a signal can
have 12 bit accuracy, while the highest values might only have a bit
depth of 4.
The final idea, and my personal
favorite, is dynamic
morphing between wavetables. Not only can you make two separate
wavetables and morph between them with the drag of a slider, you can
assign the morphing to the signal's amplitude with attack and release
characteristics! By dynamic morphing between tables, you can create
distortion that actually changes based on the input level. You can even
use it as a compressor that changes characteristics dynamically!