At the moment I am busy creating a software based distortion for an electric guitar.
The most challenging part is getting effects to work, to explain this in more detail you need to know how a computer handles audio.
Sound itself is nothing more than a vibration in the air. It can be represented by the amount of force the air is pushing or pulling.
A tone of a specific frequency would look like:
A computer stores sound by sampling the amplitude of the air at regular interfals.
It would be easy to write a program to increase the frequency of the sound above, but a normal sound doesn’t look that regular:
Increasing the bass or treble of that wave would require some advanced algorithms, which take time to execute which creates a larger delay. One thing that a distortion shouldn’t do is lag.
More on this when some stuff is working.