Pulsar synthesis generates pitched textures by combining a waveform table with a duty-cycle envelope repeated at audio rate
Pulsar synthesis (developed by Curtis Roads) creates a pulsaret — a short waveform fragment multiplied by a windowing envelope — and repeats it at a fundamental frequency. The ratio of the pulsaret duration to the cycle period controls the duty cycle, and thus the formant character of the sound. GrainBuf can approximate pulsar synthesis by reading a waveform buffer with a grain duration equal to the reciprocal of the formant frequency. The timbral space spans from pitched tones (long duty cycle) through buzzy textures to noise (very short pulsarets). Control table buffers can be looped to animate all parameters smoothly.
Examples
~pulsar1 = { |wavebuf, envbuf = -1| var ctls = ~controls.kr; var trig = Impulse.ar(ctls[0]); // fundamental var grdur = ctls[1].reciprocal; // formant period GrainBuf.ar(2, trig, grdur, wavebuf, ctls[1] * BufDur.kr(wavebuf), 0, 4, ctls[3], envbuf) };
Assessment
Implement a pulsar voice with independent fundamental and formant frequency controls. Crossfade the fundamental from 16 to 50 Hz and the formant from 100 to 500 Hz. Describe the timbral change.