This repository contains the community collection of unit generator plugins for SuperCollider.
An installation extends the functionality of SuperCollider by additional UGens that run on scsynth
, the SuperCollider audio synthesis server.
Please note that the UGens in this repository are, on average, less stable and well-maintained than the core collection. Use at your own risk!
Note: Extensions for the SuperCollider programming language are something structurally different. They are collected within the Quarks packaging system.
To learn how to write your own plugins, see example-plugins and the "Writing UGens" helpfile.
For community discussion and support see the SuperCollider mailing lists and the github issue tracker.
Compiled releases are available from the github release page. For older versions (2013). see the sourceforge project page.
To compile from source (see below), either download a tarball or clone this repository:
$ git clone --recursive https://github.com/supercollider/sc3-plugins.git
Copy the contents of the tarball/dmg
to your SuperCollider extensions folder.
You can find out which one that is by evaluating
Platform.userExtensionDir
from within SuperCollider. Alternatively, you may install the extensions system-wide by copying to
Platform.systemExtensionDir
As SuperCollider, the sc3-plugins collectiton uses the cmake
build system for configuration and compilation. Follow the steps below to compile and install the collection.
Make a directory for the cmake
build files:
sc3-plugins/$ mkdir build && cd build
sc3-plugins/build/$ cmake -DSC_PATH=/path/to/sc3source/ ..
If no SC_PATH
is provided the build system assumes the SuperCollider include files in /usr/include/SuperCollider/
.
sc3-plugins/build/$ make
sc3-plugins/build/$ make install
On OSX, the plugins will end up in sc3-plugins/build/SC3plugins
.
Copy the SC3plugins
folder to you Extensions folder (you find out which one that is by evaluating Platform.userExtensionDir
from within SuperCollider).
WARNING: on OSX, if you want to install into CMAKE_INSTALL_PREFIX
, you have to specify it by disabling the IN_PLACE_BUILD
cmake option which defaults to ON (see below).
- Set install target
- (default on linux
/usr/local
) sc3-plugins/build/$ cmake -DCMAKE_INSTALL_PREFIX=/usr/local ..
- (default on linux
- Install in cmake build folder instead of
CMAKE_INSTALL_PREFIX
- (OSX ONLY, default=ON)
sc3-plugins/build/$ cmake -DIN_PLACE_BUILD=ON
- Build the plugins as quarks
- (default 'OFF')
sc3-plugins/build/$ cmake -DQUARKS=ON ..
- Build supernova-plugins
- (default 'OFF')
sc3-plugins/build/$ cmake -DSUPERNOVA=ON ..
- Print all cmake options
sc3-plugins/build/$ cmake -L ..
If something went wrong and you want to start from scratch, delete everything in the build directory that you made:
sc3-plugins/build/$ make uninstall # only if you did `make install` before
sc3-plugins/build/$ rm -r *
A SuperCollider plugin is a collection of UGens (and their supporting files) with a shared prefix in their name. If you add a new plugin, please keep to the following pattern:
- Add a folder in the
source
directory named<prefix>UGens
whereprefix
means whichever standard pattern in the file name you have for your UGens. All source files go into this directory and its subdirectories. - SuperCollider-specific files (
.sc|.schelp|...
) should be located in a subdirectory namedsc
. - If your plugin makes use of external libraries that should be part of the sc-plugins sources (e.g. via
git-submodule
), add them tosc3-plugins/external_libraries/
. As an example, theGlitchUGens
plugin directory lists as:source/GlitchUGens/GlitchUGens.cpp
source/GlitchUGens/sc/GlitchUGens.sc
source/GlitchUGens/sc/HelpSource/Classes/GlitchBPF.schelp
source/GlitchUGens/sc/HelpSource/Classes/GlitchBRF.schelp
source/GlitchUGens/sc/HelpSource/Classes/GlitchHPF.schelp
source/GlitchUGens/sc/HelpSource/Classes/GlitchRHPF.schelp
- Add your folder to the
PLUGIN_DIRS
list insc3-plugins/source/CMakeLists.txt
. - For the Quark-installable option, there is a SuperCollider script called
Generate_Quark.scd
insc3-plugins/quarks/
. Evaluating it indexes the base directory of the extensions for each UGen, and Help-file in each plugin directory. It then creates a help file for your plugin that lists all classes and help files, as well as a.quark
file for your plugin in thebuild/DIRECTORY
folder.
To create an OSX DiskImage, follow these steps on an OSX machine:
sc3-plugins/$ mkdir build && cd build
sc3-plugins/build/$ cmake -DSC_PATH=/PATH/TO/SC -DOSX_PACKAGE=1 ..
sc3-plugins/build/$ make && make install
The DiskImage will be generated in ./sc3-plugins/build/build_osx
containing
- a
License.txt
, - this
README.txt
, and - the
SC3plugins
folder. - Note: the quarks
DIRECTORY
-folder is also included by default.
sc3-plugins/$ mkdir build && cd build
sc3-plugins/build/$ cmake -DSC_PATH=/PATH/TO/SC ..
sc3-plugins/build/$ cpack -G [TGZ|ZIP] # choose your package format
The package will end up in sc3-plugins/build
.
An auto-generated list of what plugins are available in this repository, linking to the autogenerated helpfiles:
- AmplitudeMod
- AnalyseEvents2
- ArrayMax
- ArrayMin
- Atk
- ATKDocsLicensing
- AtkKernelConv
- ATKLicensing
- AtkMatrixMix
- AttackSlope
- AutoTrack
- AverageOutput
- AY
- BeatStatistics
- BlitB3
- BlitB3Saw
- BlitB3Square
- BlitB3Tri
- BMoog
- Breakcore
- Brusselator
- BufMax
- BufMin
- Cepstrum
- Chromagram
- CircleRamp
- ComplexRes
- Concat
- Concat2
- Coyote
- Crest
- CrossoverDistortion
- Dbrown2
- DbufTag
- Decimator
- DEIND
- DetaBlockerBuf
- DFM1
- Dfsm
- DiodeRingMod
- Disintegrator
- DNoiseRing
- DoubleNestedAllpassC
- DoubleNestedAllpassL
- DoubleNestedAllpassN
- DoubleWell
- DoubleWell2
- DoubleWell3
- DPW3Tri
- DPW4Saw
- Dtag
- DWGBowed
- DWGBowedSimple
- DWGBowedTor
- DWGPlucked
- DWGPlucked2
- EnvDetect
- EnvFollow
- EQExamples
- FeatureSave
- FFTCrest
- FFTPeak
- FFTPower
- FFTSlope
- FFTSpread
- FFTSubbandFlatness
- FFTSubbandPower
- Fhn2DC
- Fhn2DL
- Fhn2DN
- FilterComparisons
- FitzHughNagumo
- FM7
- Foa
- FoaAsymmetry
- FoaBalance
- FoaDecode
- FoaDecoderKernel
- FoaDecoderMatrix
- FoaDirect
- FoaDirectO
- FoaDirectX
- FoaDirectY
- FoaDirectZ
- FoaDominate
- FoaDominateX
- FoaDominateY
- FoaDominateZ
- FoaEncode
- FoaEncoderKernel
- FoaEncoderMatrix
- FoaFocus
- FoaFocusX
- FoaFocusY
- FoaFocusZ
- FoaMirror
- FoaNFC
- FoaPanB
- FoaPress
- FoaPressX
- FoaPressY
- FoaPressZ
- FoaProximity
- FoaPsychoShelf
- FoaPush
- FoaPushX
- FoaPushY
- FoaPushZ
- FoaRotate
- FoaRTT
- FoaSpeakerMatrix
- FoaTilt
- FoaTransform
- FoaTumble
- FoaXform
- FoaXformerMatrix
- FoaZoom
- FoaZoomX
- FoaZoomY
- FoaZoomZ
- FormantTable
- FrameCompare
- Friction
- Gammatone
- GaussClass
- GaussTrig
- Gbman2DC
- Gbman2DL
- Gbman2DN
- Gendy4
- Gendy5
- Getenv
- GlitchBPF
- GlitchBRF
- GlitchHPF
- GlitchRHPF
- Goertzel
- GravityGrid
- GravityGrid2
- Greyhole
- GreyholeRaw
- HairCell
- Henon2DC
- Henon2DL
- Henon2DN
- ICepstrum
- IIRFilter
- InsideOut
- Instruction
- JPverb
- JPverbRaw
- KeyClarity
- KeyMode
- KMeansRT
- KmeansToBPSet1
- LADSPA
- Latoocarfian2DC
- Latoocarfian2DL
- Latoocarfian2DN
- LFBrownNoise0
- LFBrownNoise1
- LFBrownNoise2
- ListTrig
- ListTrig2
- Logger
- LoopBuf
- Lorenz2DC
- Lorenz2DL
- Lorenz2DN
- LorenzTrig
- LPCAnalyzer
- LPCError
- LTI
- MarkovSynth
- MatchingP
- Max
- MdaPiano
- MeanTriggered
- Meddis
- MedianSeparation
- MedianTriggered
- MembraneCircle
- MembraneHexagon
- MoogLadder
- MoreChaos
- NearestN
- NestedAllpassC
- NestedAllpassL
- NestedAllpassN
- NL
- NL2
- NLFiltC
- NLFiltL
- NLFiltN
- NTube
- OnsetStatistics
- Oregonator
- OteyPiano
- Perlin3
- PlaneTree
- Plorenz
- PrintVal
- ProbalisticNoiseUGens
- PulseDPW
- PV_CommonMag
- PV_CommonMul
- PV_Compander
- PV_Cutoff
- PV_ExtractRepeat
- PV_MagGate
- PV_MagMinus
- PV_MagSmooth
- PV_Morph
- PV_SoftWipe
- PV_XFade
- Qitch
- RLPFD
- RosslerL
- SawDPW
- SensoryDissonance
- Sieve1
- SineShaper
- SLOnset
- SmoothDecimator
- SMS
- SOMRd
- SOMTrain
- SortBuf
- SpectralEntropy
- SpruceBudworm
- Squiz
- Standard2DC
- Standard2DL
- Standard2DN
- Streson
- Summer
- SVF
- SwitchDelay
- Tartini
- TBetaRand
- TBrownRand
- TermanWang
- TextVU
- TGaussRand
- TGrains2
- TGrains3
- TPV
- TrigAvg
- TwoTube
- VBAP
- VBAPSpeaker
- VBAPSpeakerArray
- VMScan2D
- VOSIM
- WalshHadamard
- WAmp
- WaveletDaub
- WaveLoss
- WaveTerrain
- WeaklyNonlinear
- WeaklyNonlinear2
- WrapSummer