sr = 44100 kr = 4410 ksmps = 10 nchnls = 1 ; Waveguide harmonics instr 2 ; Initializations iBaseFreq = p5 iHarFreq = iBaseFreq * p6 iBaseCyc = 1/iBaseFreq iHarCyc = 1/iHarFreq aBaseDelay init 0 ablock2 init 0 ablock3 init 0 aFilteredBaseDelay init 0 aFeedback init 0 kAttack linseg 0, 0.1, 1 kDecay expseg 1, 0.1, 1, 2.5, 0.1 kOutputEnvelope = kAttack * kDecay ; Initial impulse kInputEnvelope linseg p4, iHarCyc, p4, iHarCyc, 0 aNoise noise 1, 0 aFilteredNoise atonex aNoise, 2.0 * iBaseFreq aInput = kInputEnvelope * aFilteredNoise ; DC Blocker ablock2 = aFeedback - ablock3 + 0.99*ablock2 ablock3 = aFeedback ablock = ablock2 ; Delay line with filtered feedback ; 15/sr is the delay of the tone low-pass filter iBaseAtten = 0.1 aBaseDelay delay ablock + (iBaseAtten * aInput), iBaseCyc - 15/sr aFilteredBaseDelay tone aBaseDelay, iHarFreq * 16.0 ; Harmonic delay iHarAtten = 1.0 aHarDelay delay ablock + (iHarAtten * aInput), iHarCyc - 15/sr aFilteredHarDelay tone aHarDelay, iHarFreq * 16.0 kDelaySwitch linseg 1, iBaseCyc, 1, iBaseCyc, 0 aFeedback = kDelaySwitch * aFilteredHarDelay + \ (1 - kDelaySwitch) * aFilteredBaseDelay aOut = aFeedback out 15*kOutputEnvelope*aOut; endin