Back before I really learned how to code dsp in C/C++ I used to do a lot of Max/MSP/Jitter patching to create software tools for digital media performance and production. When I was learning to code in C I used the Max/MSP api as a framework to create objects implementing some distortion algorithms for my Ph.D. application portfolio. Those objects are listed below, as well as a collection of patch screenshots.

External Objects
Most of these objects are designed to create harmonic distorton, and the rest are utility objects for working with control signals. The objects' inputs all accept signals, making signal-rate modulation of any parameter a possibility. For OS X and MaxMSP 4.x, which is probably useless to you now unless you are looking for algorithms.

Ideal function generated sinewave oscillator
Simulates oversaturation above a variable threshold
Linearly maps sample values from one range to another
Scales control values to signal values
Scales signal values to control values
Creates zero-crossing overshoot error
Creates dropouts at peaks above a variable threshold
Creates spikes at peaks above a variable threshold
Mirrors signals above a variable threshold
Modulates signals above a variable threshold

Download Objects
cb.externals~.zip
cb.externals~.source.zip
cb.externals~.xcode.zip

Standalone Applications
These standalone applications and patches were created for live performance of audio and video, as well as audio production and editing. The screenshots below represent a few years worth of my work. Most of them were made with version 4.x of the software, using custom jsui interface elements.

Application Screenshots