++spiralstretch manual

++spiralstretch – layered real time time stretching

++spiralstretch is a multilayered time stretcher which processes real time signals (in contrast to the typical offline time stretcher). It is most useful in a processing sidechain, providing delayed ambience, drones or texture. +spiralstretch works by dividing the input into segments, and layering the time stretched segments into the output. Because of this segmenting and layering, the time stretched material always stays relatively close to the original material.


stretch sets the stretch value, and ranges between 1.0x and 100.0x.

rate sets the speed of input segmentation, with each new input segment assigned round-robin to one of the voices. This control ranges between 0.25 Hz and 4.0 Hz which corresponds to a tempo from 15 to 240 BPM.

If tempolock is selected, the segmentation rate will lock to the host’s tempo, segmenting and stretching each beat separately.

voices sets the number of layers, or voices. It should be noted that the CPU usage goes up as the number of voices are increased.

phase vocoder/granular – ++spiralstretch contains two stretch algorithms, one based on the phase vocoder and the other based on granular synthesis. The algorithm is selected with the pvoc/granular button.

pvocbands controls the number of bands used in the phase vocoder algorithm with best results at around 1024 – 2048 bands, time smeared sounds at values above that, and distorted sounds at values below that.

The grainsize and grainshimmer controls allow one to fine tune the granular synthesis algorithm.

grainshimmer controls the random distribution of each grain. At 0% the grains become synchronous and can become resonant.

grainsize obviously controls the size of each grain, with stuttering sounds available at the larger grain sizes.