/portedplugins

A collection of plugins for the SuperCollider sound environment, all of which are ported / remixed from elsewhere

Primary LanguageC++GNU General Public License v3.0GPL-3.0

.github/workflows/cmake.yml

PortedPlugins

A collection of plugins for the SuperCollider sound environment, all of which are ported / remixed from elsewhere - including hardware synthesizers, research papers / demos, VST plugins, VCV rack and other programming environments.

Included plugins

See the PortedPlugins.schelp help file for an overview inside of SuperCollider and the respective help files for each plugin for more information about the particularities of each plugin.

Installation

Instructions for most systems:

  1. Download one of the prebuilt releases. Choose the one that fits your operating system.
  2. Unzip the contents in your extensions directory (If you don't know where this is, open up SuperCollider and evaluate Platform.userExtensionDir - the path will be posted in the post window).
  3. Recompile class library.

Building and installing from within SuperCollider

If you have Plugins.quark installed in your SuperCollider system, you can run the following line of code from SuperCollider. This will get the dependencies, build and install the plugins.

Plugins.installPlugin("portedplugins")

Arch Linux:

yay -S supercollider-portedplugins

RaspberryPi OS:

See the accompanying script for downloading, building and installing the plugins.

Building

Requirements

  • CMake >= 3.5
  • SuperCollider source code

Preparations for a build

Clone the project:

git clone https://github.com/madskjeldgaard/portedplugins
cd portedplugins
git submodule update --init --recursive

This will get you the portedplugins.

Before continuing, you need two things:

First, the SuperCollider source code :

git clone https://github.com/supercollider/supercollider.git

Note where you placed this source code on your computer and copy the full path to it for use with CMake.

Secondly, you need the path to your SuperCollider extensions directory. This is where CMake will install the plugins.

You can get this by opening up SuperCollider and running this line of code

Platform.userExtensionDir

Note the path that it posts to your post window in SuperCollider, copy it and save it for the next part of the build process.

Actually Building

To build the plugins, run these commands. Note the two paths you need to put in to the CMake command, these are the ones you got from the preparatory steps above.

mkdir build
cd build
cmake .. -DCMAKE_BUILD_TYPE='Release' -DSC_PATH=/path/to/sc/source -DCMAKE_INSTALL_PREFIX=/path/to/extensions
cmake --build . --config Release
cmake --build . --config Release --target install

Building for Raspberry Pi

This repository includes a script for the Raspberry Pi users (Raspberry Pi OS based) that installs the prerequisites for building (cmake), downloads all of the source code needed and compiles and installs it.

Building for Rosetta on the Mac M1

If you are compiling these plugins on a Mac M1, it will detect your architecture as arm and install an arm version of the plugins. Chances are you've installed the x86 version of SuperCollider and if so you will get architecture mismatches between the two.

To explicitly build for a Mac M1 running SuperCollider under the Rosetta compatibility layer, run these commands:

# Location of SuperCollider source code
SC_LOCATION="/path/to/sc/source"

# Force this architecture:
OSX_ARCH="x86_64"

# Install here:
INSTALL_LOCATION="$HOME/Library/Application Support/SuperCollider/Extensions"

cmake .. -DCMAKE_BUILD_TYPE=Release -DSC_PATH="$SC_LOCATION" -DCMAKE_INSTALL_PREFIX="$INSTALL_LOCATION" -DCMAKE_OSX_ARCHITECTURES="$OSX_ARCH"
cmake --build . --config Release
cmake --build . --config Release --target install 

Contributing

Contributions are welcome!

If you experience any problems, post it as an issue or if you have the skills to fix it yourself you may open up a PR with a suggested change.

If you see any problems in the documentation, feel free to do the same here (please submit a PR if you can - otherwise feel free to post an issue).

See CONTRIBUTING.md for more information on how to contribute.

Credits

Thank you to Notam for the support.

Most of these plugins build on code, research and ideas of others, including:

A massive thank you to them and everyone who contributed to the sub projects this relies on for sharing knowledge and ideas and making new sounds possible!

You can find more information about sources of information and code in the help files for the plugins.