SuperCollider CLASSES (extension)

AtsNoiSynth
ExtensionExtension

Resynthesize sine and noise data from an ATS analysis file
Inherits from: AtsUGen : UGen : AbstractFunction : Object
 

Description

Resynthesizes information from an ATS file, with transformations.

WARNING: If you try to resynthesize partials or bands that don't exist, those partials will fail silently. All valid partials will still be synthesized.

Class Methods

*ar (atsbuffer, numPartials: 0, partialStart: 0, partialSkip: 1, filePointer: 0, sinePct: 1, noisePct: 1, freqMul: 1, freqAdd: 0, numBands: 25, bandStart: 0, bandSkip: 1, mul: 1, add: 0)

Arguments:

atsbuffer

The buffer number that contains the AtsFile information.

numPartials

The number of partials to synthesize.

partialStart

The partial in the analysis to start the synthesis on. Partial 0 is the first partial.

partialSkip

An integer that indicates the increment from partialStart of which partials to synthesize.

filePointer

A value (between 0 and 1) that indicates which part of the file to synthesize. Accepts ugens or a static value.

sinePct

A scaler on the sinusoidal portion of the resynthesis.

noisePct

A scaler on the noise portion of the resynthesis.

freqMul

A multiplier on the sinusoidal frequency information.

freqAdd

A value to add to frequency information.

numBands

The number of critical bands (noise) to synthesize. There are 25 critical bands.

bandStart

The critical band to start resynthesis on. Partial 0 is the first band.

bandSkip

An integer that indicates the increment from bandStart of which bands to synthesize.

mul
add

Inherited class methods

Instance Methods

Inherited instance methods

Examples

NOTE: For resynthesis purposes, an ATS file needs to be loaded into a buffer. When loading an ATS file, you need to supply a buffer number to store ATS data in.

s.boot;

// see the entry on AtsFile to learn how to create an ats file
a = AtsFile.new("path/to/file.ats").load;

( //play just the resynth, with LFSaw pointing into the file
{
    AtsNoiSynth.ar(a.bufnum, a.numPartials, 1, 1,
        filePointer: LFSaw.kr(a.sndDur.reciprocal, 1, 0.5, 0.5), noisePct: 1, mul: 1)
    }.play(s);
);

( //play noise only, don't resynthesize sine info
{
    AtsNoiSynth.ar(a.bufnum, 0, 0, 1, filePointer: LFSaw.kr(a.sndDur.reciprocal, 1, 0.5, 0.5),         mul: 1)
    }.play(s);
);

( //resynthesize every other noise band
{
    AtsNoiSynth.ar(a.bufnum, 0, 0, 1, filePointer: LFSaw.kr(a.sndDur.reciprocal, 1, 0.5, 0.5),
        numBands: 12, bandStart: 1, bandSkip: 2, mul: 10)
    }.play(s);
);

( //resynthesize only the upper bands of noise
{
    AtsNoiSynth.ar(a.bufnum, 0, 0, 1, filePointer: LFSaw.kr(a.sndDur.reciprocal, 1, 0.5, 0.5),
        numBands: 12, bandStart: 12, bandSkip: 1, mul: 10)
    }.play(s);
)