Skip to content

Meta class for easily creating persistent main output effects (like limiters, dc filters or decoders)

License

Notifications You must be signed in to change notification settings

madskjeldgaard/persistentmainfx

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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")

About

Meta class for easily creating persistent main output effects (like limiters, dc filters or decoders)

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Sponsor this project

Packages

No packages published

Contributors 2

  •  
  •