Christoph Jung
2003-12-01 10:36:00 UTC
Hello everybody,
I'm working on a distortion algorithm for guitar with the aim of a future
DSP-implementation. My question is: What would be the right approach to
achieve aliasing-free and flexible guitar overdrive with efficient use
of the
processing power?
So far, I've experimented with several non-linear functions like tanh,
arctan, 1/x, etc.
but immediately encounter the problem of audible aliasing for higher gain
settings - no matter which function is in use. Pre- and post
equalization and
separation into frequency bands (distortion decreases with increasing
frequency) can be of help but don't give me full control of the harmonic
content of the output signal.
A second approach of mine was the implementation of chebyshev polynomial
waveshaping which has been occasionally mentioned in this mailing list.
On my opinion,
this method is fine for full control of harmonic additives but only
works with not too
complex input signals. Given a single note or a sine as input, my
version of polynomial
WS produces smooth overdrive with absolutely no aliasing. But as soon
as polyphonic
input signals occur, this method produces new tones ("intermodulation
partials") which
sound totally unmusical. This gets worse with increasing complexity of
the input signal.
If a full guitar chord is given as input signal, the harmonic output
consists of roughly nothing
else than noise - due to the huge amount of unwanted intermodulation
partials. Knowing that
polynomial WS works fine with sine-like signals, I could improve my
algorithm by dividing
the input signal into different frequency bands and applying waveshaping
individually. But
what if the input signal consists of two tones that lie very close to
each other? Do i need to
separate these tones with two different filters? Doesn't the complexity
of such an algorithm
exceed the computational capacity of a standard low-cost DSP?
In general, my question is: What would be the right way to achieve a
good sounding guitar
distortion algorithm? Should I continue with the polynomial WS? Or
should I concentrate on
the usage of non-linear functions (and maybe apply some oversampling for
filtering of
unwanted partials)? Or are there other ways? How does digital
"modelling" of guitar amplifiers
or stomp boxes work? Is there any expert in guitar effects processing
around here to give me a hint?
Thanks
Christoph
I'm working on a distortion algorithm for guitar with the aim of a future
DSP-implementation. My question is: What would be the right approach to
achieve aliasing-free and flexible guitar overdrive with efficient use
of the
processing power?
So far, I've experimented with several non-linear functions like tanh,
arctan, 1/x, etc.
but immediately encounter the problem of audible aliasing for higher gain
settings - no matter which function is in use. Pre- and post
equalization and
separation into frequency bands (distortion decreases with increasing
frequency) can be of help but don't give me full control of the harmonic
content of the output signal.
A second approach of mine was the implementation of chebyshev polynomial
waveshaping which has been occasionally mentioned in this mailing list.
On my opinion,
this method is fine for full control of harmonic additives but only
works with not too
complex input signals. Given a single note or a sine as input, my
version of polynomial
WS produces smooth overdrive with absolutely no aliasing. But as soon
as polyphonic
input signals occur, this method produces new tones ("intermodulation
partials") which
sound totally unmusical. This gets worse with increasing complexity of
the input signal.
If a full guitar chord is given as input signal, the harmonic output
consists of roughly nothing
else than noise - due to the huge amount of unwanted intermodulation
partials. Knowing that
polynomial WS works fine with sine-like signals, I could improve my
algorithm by dividing
the input signal into different frequency bands and applying waveshaping
individually. But
what if the input signal consists of two tones that lie very close to
each other? Do i need to
separate these tones with two different filters? Doesn't the complexity
of such an algorithm
exceed the computational capacity of a standard low-cost DSP?
In general, my question is: What would be the right way to achieve a
good sounding guitar
distortion algorithm? Should I continue with the polynomial WS? Or
should I concentrate on
the usage of non-linear functions (and maybe apply some oversampling for
filtering of
unwanted partials)? Or are there other ways? How does digital
"modelling" of guitar amplifiers
or stomp boxes work? Is there any expert in guitar effects processing
around here to give me a hint?
Thanks
Christoph