Home

Awesome

PersistentMainFX

This package contains a class that enables all it's subclasses to create a "persistent" effect synth at the main output of SuperCollider. When the user presses command period to stop the sound, a new synth is automatically spawned at the output again. A typical usage for this is adding an output limiter or DC effect to protect the user/speakers.

The class it contains (PersistentMainFX) is not used directly but is inherited by a sub class where you implement your synth function.

Example usage

First, create a class file where you inherit the PersistentMainFX class and implement a synthFunc:

// In a class file, eg MainHPF.sc
MainHPF : PersistentMainFX{
  *synthFunc{
    ^{|bus=0, freq=50|

      // input
      var input = In.ar(bus, numChans);

      // Do processing
      var sig = HPF.ar(input, freq);

      ReplaceOut.ar(bus: bus,  channelsArray: sig);
    };

  }
}

And then the try out your new high pass filter class in action after a quick recompile and reboot:

// Play some sound
play{PinkNoise.ar(0.125)!2};

// Add new hpf effect
MainHPF.new();

// See the effect sitting there:
s.plotTree;

// Try pressing command/ctrl period to stop all sound, and keep an eye on the plot tree and post window (yes, it respawns)
CmdPeriod.run;

// Change some parameters
MainHPF.set(\freq, 950)

Installation

Open up SuperCollider and evaluate the following line of code: Quarks.install("https://github.com/madskjeldgaard/persistentmainfx")