SuperCollider CLASSES
UGens>FFT

# PV_Diffuser

Random phase shifting.
Source: /Applications/SuperCollider.app/Contents/Resources/SCClassLibrary/Common/Audio/FFT.sc
Inherits from: PV_ChainUGen : WidthFirstUGen : UGen : AbstractFunction : Object
See also: FFT, IFFT, PV_PhaseShift, PV_PhaseShift90, PV_PhaseShift270

## Description

Adds a different constant random phase shift to each bin. When triggered, it selects a new set of random phases.

## Class Methods

### *new (buffer, trig: 0)

#### Arguments:

buffer | FFT buffer.
trig | A trigger, that selects a new set of random values.

### Inherited class methods

## Instance Methods

### Inherited instance methods

## Examples

    (
    // trig with MouseY crossing center of screen
    {
        var in, chain;
        in = Mix.ar(SinOsc.ar(200 * (1..10), 0, Array.fill(10, { rrand(0.1, 0.2) }) ));
        chain = FFT(LocalBuf(2048), in);
        chain = PV_Diffuser(chain, MouseY.kr > 0.5 );
        0.5 * IFFT(chain).dup;
    }.play
    );

    (
    b = Buffer.read(s, Platform.resourceDir +/+ "sounds/a11wlk01.wav");

    // trig with MouseY crossing center of screen
    {
        var in, chain;
        in = PlayBuf.ar(1, b, BufRateScale.kr(b), loop: 1);
        chain = FFT(LocalBuf(2048), in);
        chain = PV_Diffuser(chain, MouseY.kr > 0.5 );
        0.5 * IFFT(chain).dup;
    }.play
    );

helpfile source: /Applications/SuperCollider.app/Contents/Resources/HelpSource/Classes/PV_Diffuser.schelp
link::Classes/PV_Diffuser::
sc version: 3.8.0