tags: mus-407 delay delay-line
Pitch-Shifting/Harmonization
Pitch-shifting/harmonization can be achieved using [variable delay lines], because a dynamically changing delay time produces [pitch] variance.
In our [circular buffer]:
W/Rpointers move at different speeds in the same direction- if
Ris faster thanW, output pitch is higher than input - if
Ris slower thanW, output pitch is lower than input - modulate the delay time with a [sawtooth wave] to simulate a constant increase/decrease in speed of
R- polarity (upward/downward slope) affects direction of pitch shift
- magnitude of slope affects affects interval/distance of pitch shift
Central problem: At different speeds, R and W will periodically "pass through" each other, where R is likely to encounter a [waveform] discontinuity (heard as a click)
Solution/Digital Implementation
To solve the discontinuity problem:
- create several
Rpointers spaced out along circular queue, all moving at the same speed - use [amplitude modulation] on each
Rpointer - modulate the [amplitude] of each
Rpointer's output by unipolar [sine]/[triangle] wave - control initial [phase] of each [oscillator] so circular queue discontinuity aligns with zero crossing of modulator [signal]
- sum R pointer outputs together
Summed signals (dry + wet) can have phase reinforcement/cancellation issues, but usually makes for a decent real-time harmonizer.
- caused by lining up delay time [resonance] with certain [harmonic]s, boosting some while cancelling others through [wave interference] (constructive vs. destructive)