In example G06.octave.doubler.pd (Figure 7.29) we revisit the idea of pitch-based octave shifting introduced earlier in E03.octave.divider.pd. There, knowing the periodicity of an incoming sound allowed us to tune a ring modulator to introduce subharmonics. Here we realize the octave doubler described in Section 7.3. Using a variable, non-recirculating comb filter we take out odd harmonics, leaving only the even ones, which sound an octave higher. As before, the spectral envelope of the sound is roughly preserved by the operation, so we can avoid the ``chipmunk" effect we would have got by using speed change to do the transposition.
![]() |
The comb filtering is done by combining two delayed copies of the incoming
signal (from the pd looper subpatch at top). The fixed one
(delread~) is set to the window size of the pitch
following algorithm. Whereas in the earlier example this was hidden in another
subpatch, we can now show this explicitly. The delay in milliseconds is
estimated as equal to the 2048-sample analysis window used by the
fiddle~ object; in milliseconds this comes to
where
is the sample rate.
The variable delay is the same, plus 1/2 of the measured period of the incoming
sound, or milliseconds where
is the frequency in cycles per
second. The sum of this and the fixed delay time is then smoothed using a
line~ object to make the input signal for the variable delay line.
Since the difference between the two delays is , the resonant
frequencies of the resulting comb filter are
; the frequency
response (Section 7.3) is zero at the frequencies
,
so the resulting sound contains only the partials at multiples of
--an
octave above the original. Seen another way, the incoming sound is output
twice, a half-cycle apart; odd harmonics are thereby shifted 180 degrees
(
radians) and cancel; even harmonics are in phase with their delayed
copies and remain in the sum.
Both this and the octave divider may be altered to make shifts of 3 or 4 to one in frequency, and they may also be combined to make compound shifts such as a musical fifth (a ratio of 3:2) by shifting down an octave and then back up a factor of three. (You should do the down-shifting before the up-shifting for best results.)