sc3-plugins
sc3-plugins
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 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.
Installation
Releases are available from the GitHub release page. For older versions (2013), see the Sourceforge project page.
Unzip the release and move it to your SuperCollider extensions folder. You can find it by evaluating
supercollider
Platform.userExtensionDir
in SuperCollider. To evaluate code in SuperCollder, put your cursor on the line of code and press Cmd+Enter
(macOS) or Ctrl+Enter
. Alternatively, you may install the extensions system-wide by copying to
supercollider
Platform.systemExtensionDir
The folder might not exist, so you may need to create it yourself. You can do this in your operating system's file explorer or from within SuperCollider by evaluating:
supercollider
File.mkdir(Platform.userExtensionDir)
On some operating systems, these directories may be hard to find because they're in hidden folders. You can open
the user app support directory (where the Extensions folder is) with the menu item
"File->Open user support directory". On macOS, you can open a finder window and press Cmd+Shift+G
and enter the
name of the directory.
Compile from source
Download both the SuperCollider source and the source for this repository:
shell
git clone --recursive https://github.com/supercollider/sc3-plugins.git
git clone --recursive https://github.com/supercollider/supercollider.git
Note, if you are building for an older version of supercollider you should checkout the sc3-plugins tag which matches the version of supercollider.
Be sure to use --recursive
, or to initialize the submodules after cloning, otherwise you will not have files
that are necessary to build the project.
Like SuperCollider, sc3-plugins uses cmake
. Execute the following commands in the directory where you cloned sc3-plugins;
replace /path/to/sc/
with the path to the SuperCollider source directory. That will probably be
../../supercollider
if you cloned both repositories in the same working directory.
```shell cd sc3-plugins mkdir build && cd build
for both scsynth and supernova plugins; set -DSUPERNOVA=OFF to build only scsynth plugins
cmake -DSC_PATH=/path/to/sc/ -DCMAKE_BUILD_TYPE=Release -DSUPERNOVA=ON .. cmake --build . --config Release
to install the plugins - note: linux users likely need sudo
cmake --build . --config Release --target install ```
If no SC_PATH
is provided the build system assumes the SuperCollider include files are in /usr/include/SuperCollider/
.
On macOS, the plugins will end up in sc3-plugins/build/SC3plugins
.
Copy the SC3plugins
folder to your Extensions folder (evaluate Platform.userExtensionDir
in SuperCollider to find it).
NOTE: on macOS, 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).
Note for SuperCollider < 3.9.1 The Supernova server on macOS and Windows incorrectly searches for plugins in the /Extensions/plugins
directory. The scsynth server correctly searches for plugins in /Extensions
. If Supernova is unable to find the sc3-plugins, make sure that they are located in /Extensions/plugins
.
See the README in source/HOAUGens
for information on compiling the HOAUGens (higher-order
ambisonics) subproject.
CMake Options
- Set install target
- (default on linux
/usr/local
) cmake -DCMAKE_INSTALL_PREFIX=/usr/local ..
- (default on linux
- Install in cmake build folder instead of
CMAKE_INSTALL_PREFIX
- (macOS ONLY, default=ON)
cmake -DIN_PLACE_BUILD=ON
- Build the plugins as quarks
- (default=OFF)
cmake -DQUARKS=ON ..
- Build supernova-plugins
- (default=OFF)
cmake -DSUPERNOVA=ON ..
- Build Ladspa UGen
- (macOS AND LINUX ONLY, default=ON)
sc3-plugins/build/$ cmake -DLADSPA=ON ..
- Install libraries in suffixed
lib
directory (eg.lib64
)- (64-BIT LINUX ONLY)
cmake -DLIB_SUFFIX=64
- Print all cmake options
sc3-plugins/build/$ cmake -L ..
Troubleshooting
Known issues
On some Linux distributions it has been reported that Ladspa UGen could prevent SuperCollider server from booting (sc3-plugins/#210, sc3-plugins/#23 and supercollider/#4421). See above how to build sc3-plugins without Ladspa if needed.
Build errors
If you get an error while building that files are missing, it probably means that you didn't clone all the SuperCollider
submodules. Fix this by running git submodule update --init
in the SuperCollider source directory. If you still have the
issue afterwards, try clearing your build directory and starting your build from scratch.
Starting over
If something went wrong and you want to start from scratch, delete everything in the build directory that you made:
shell
make uninstall # only if you ran `make install` before
cd ..
rm -r build
Adding plugins to the repository
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.
Packaging
How to create a DiskImage (OSX)
To create an OSX DiskImage, follow these steps on an OSX machine:
shell
mkdir build && cd build
cmake -DSC_PATH=/path/to/sc/ -DOSX_PACKAGE=1 ..
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.
How to create a tarball/zip-file
shell
mkdir build && cd build
cmake -DSC_PATH=/path/to/sc/ ..
cpack -G TGZ # `-G ZIP` also works
The package will end up in sc3-plugins/build
.
List of plugins
In addition to the plugins listed below, this project contains several FAUST-generated UGens for
higher-order ambisonics ("HOAUGens"), which are not built by default. See the README in
source/HOAUGens
for more information.
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
cd37e2f09d84085c0c72a5016310574d7e8d6d53
51edaf223fb54c8210d20cf2297ba4f01e92a9c3
e097f342c3aee0faf396bc9ae1816981f8a45939
9b0597a97e504ba3a0ddd624ba12d6048b74f633
6255697da4dfe36fa1a441898d98e3f973e1dbcd
d258b72fc15824117b9028fd653edcff7bf37178
8723d7758e4c4c237b985842b78b73c5c24496d9
3129296b584f0be55fd495604d906af677462ce7
63a5f76a128f1f59c8232463025b37c3f53c849b
4e3530b05efefabc3a2cdb32df1bbf36912738b5
4e3530b05efefabc3a2cdb32df1bbf36912738b5
9307b419679ca872e248facb7ff7a20e6e05c54f
aa606ed289555d3b370e98a9cc01b9cfae4b988e
c4e05e8159f0bc6eeab1b93a15c943f2007ba320
692f92f62153dec554203a7c77f0b002e49fd30b
da6630a0220f9100a7545b1d9988ae7389e686e0
cf00de9f33b9014c26d5cbb923b7fd2de71d1484
fe013995fce01433e2123f072d2cc57098d30c7c
a963ecb4e3cf8fd1c650bb80c0c46b8f9657eca7
5c1d114bdbeb8d7fcfdb30cd79d21036ca779142
4af0ff6bcb48a832731c75ef0c10d4c78a987d55
6a3702feaba5714d0721bafefde51079335db0f5
Repository
URL
https://github.com/supercollider/sc3-plugins
Since
2006-11-20
Last update
2024-10-28
Current version
Version-3.13.0