Replies: 1 comment 1 reply
-
Hi, @jpcima. I remember us talking about this and I still had the code that we tried, to which I made a few changes. This is just the classic pitch shifter similar to ef.transpose, except using a Hann window, which appears to make things cleaner. The other difference in what I wrote is that the window length is constant regardless of the transposition, which means that the fundamental frequency of the comb effect is also constant instead of gliding as we change transpositions. Whether this is a good thing or not is perhaps a matter of taste. I'm not sure what the advantage of using more delay lines could be, since it means that there will be more signals overlapping and, consequently, more undesired comb effect, potentially. I have also implemented the random delay offset described on the SC page: it works to some extent but it makes the overall output rather noisy for me. I tried cascading 4 first-order allpass filters with random cut-off frequencies but that, too, resulted in too much noise. Especially for noisy inputs, there can be a little bit of improvement for the comb effect by filtering the output of the two reading heads with an analytic filter: I take the real part of one, the imaginary part of the other. Although there's undesirable modulation for sinusoidal signals and it's generally not consistent. I'm attaching the code below for testing. Ciao,
|
Beta Was this translation helpful? Give feedback.
-
A granular pitch shifter can give a subtantial improvement to
ef.transpose
.This operates in the time-domain, surely one could be implemented with Faust.
The principle is to replay delayed versions (grains) of the signal with an AR envelope (window) applied.
It's not that different of what
ef.transpose
already does, but it can involve more delay lines.The best resource which I know is the SuperCollider
PitchShift
ugen.https://doc.sccode.org/Classes/PitchShift.html
There is also random deviation of time and frequency, which seems important to improving the sound quality.
Beta Was this translation helpful? Give feedback.
All reactions