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

Overview

.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.

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.

Comments
  • AUR package cannot be installed using some aur helpers

    AUR package cannot be installed using some aur helpers

    Hi, great plugins!

    I installed them a few weeks ago on my Manjaro system (kernel Linux 5.10.26-1) and worked great. But with the last major system upgrade, the package validity check now seems to fail. Here's the output to pamac update:

    ==> Making package: supercollider-mkplugins 0.2.0-1 (Wed Apr 14 12:55:12 2021)
    ==> Checking runtime dependencies...
    ==> Checking buildtime dependencies...
    ==> Retrieving sources...
      -> Found MKPlugins-Linux.zip
    ==> Validating source files with md5sums...
        MKPlugins-Linux.zip ... FAILED
    ==> ERROR: One or more files did not pass the validity check!
    Error: Failed to build supercollider-mkplugins
    

    Just reckoned I should report it in case you weren't already aware of this.

    Cheers!

    opened by loopier 10
  • Server 'localhost' exited with exit code 0.

    Server 'localhost' exited with exit code 0.

    Hello

    Thanks for these wonderful plugins !

    scsynth_2021-03-24-103722_MacBook-Air-de-Geoffroy.crash.zip

    On my Macbook Air running 10.14.6 and SC 3.11.2, I am getting

    Server 'localhost' exited with exit code 0.
    

    when booting the server, say half of the time, when the MKPlugins (V0.1.7D) are installed.

    I am attaching the crash log if it can help.

    All the best

    Geoffroy

    opened by geoffroymontel 7
  • norm vadim resonance

    norm vadim resonance

    This is just a cozy cozy res val normalization PR. Close/Reject it at will :)~ First I just did a in0( Resonance * 4.0f ) in line 19 and 39 (VadimFilter.cpp). Though a mult of 4.0 on the .sc side gets the job done. Hacky. But normalized res values are nice.

    opened by salkin-mada 4
  • Consider using semver for version tags

    Consider using semver for version tags

    Right now the release tags mostly follow the pattern x.y.zA where A is an incrementing letter. First, I'd like to ask what the purpose for this extra letter is (why do this instead of increment the patch version?). Second, I'd like to ask you to consider using https://semver.org/ instead, since this is a widely-used and well-regarded versioning scheme.

    opened by mossheim 4
  • replaced VCAAmount  mapping with the more recent reactor implementation

    replaced VCAAmount mapping with the more recent reactor implementation

    Thanks for this implementation of the Parker et al LPG, it works quite nicely and the code is oh so readable!

    dunno if this is of interest to you but in case it is, here's a little update/change of the VCA amount:

    I changed the amount mapping to follow the reaktor 6 Blocks implementation of this LPG, also I found (by looking at the reaktor code) that a non-linear mapping of the VCAamount (I currently do this in the sclang SynthDef itself) results in quite reasonable linear behaviour when it is attached to a linearly mapped fader:

    vca = (1+vca).log2.sqrt
    

    Another thing I was considering adding (but haven't looked into it so far) is to account for non-exact values of resistors etc, by providing a random seed at UGen creation and vary resistor values randomly at instantiation time... this might be interesting when working with several LPGs in parallel/sequence.

    again, great work!

    opened by LFSaw 4
  • CMake error

    CMake error

    hi mads I got a Cmake error trying to install mkplugins today:

    [[email protected] build]$ cmake .. -DCMAKE_BUILD_TYPE='Release' -DSC_PATH=/home/igor/code/SuperCollider/ -DCMAKE_INSTALL_PREFIX=/home/igor/.local/share/SuperCollider/Extensions/ CMake Error: The source directory "/home/igor/code/mkplugins" does not appear to contain CMakeLists.txt. Specify --help for usage, or press the help button on the CMake GUI.

    opened by igormpc 4
  • [Feature request]: New name ?

    [Feature request]: New name ?

    I'd like to change the name of this repository and I am open to suggestions. Please post them here if you any ideas! (and also ideas on how to achieve a name change without breaking links? Is that possible?)

    The repo started out as a few personal experiments but has quickly grown to something bigger and I'd like for it to be reflected in the name of it that it is a community project and not a personal project.

    The general theme for these plugins is that they are ports (for the moment at least) of other people's work - maybe that's something that should be reflected in the name?

    opened by madskjeldgaard 3
  • Merge into sc3-plugins

    Merge into sc3-plugins

    Hi!

    Thanks for this repo, excelent materials!

    Are you thinking about merging it into the main sc3-plugins repo ? It would be great for beginners to have it there!

    opened by fmiramar 2
  • DCompressor printing 0.0000 to post window

    DCompressor printing 0.0000 to post window

    Hi Mads THANK YOU FOR THESE !

    here on mac Dcompressor is flooding the post window with 0.00000

    also help for DCompressor wont display (using scnvim -> pandoc) I get:

    ERROR: In /Users/michael/tank/super/Extensions/MKPlugins/HelpSource/Classes/DCompressor.schelp: At line 46: syntax error, unexpected end of file

    opened by cdbzb 2
  • mi-resonator.hpp: include cstdint for int32_t definition

    mi-resonator.hpp: include cstdint for int32_t definition

    This inclusion is needed for avoiding the compile error (with mingw64)

    C:/supercolliderrepos/portedplugins/plugins/mutated/mi-resonator.hpp: In function 'float mi::Interpolate(const float*, float, float)':
    C:/supercolliderrepos/portedplugins/plugins/mutated/mi-resonator.hpp:51:3: error: 'int32_t' was not declared in this scope
    
    opened by sonoro1234 1
  • validity check error

    validity check error

    hi mads i got a validity check error trying to update mkplugins --

    [[email protected] code]$ yay -S supercollider-mkplugins :: Checking for conflicts... :: Checking for inner conflicts... [Aur:1] supercollider-mkplugins-0.1.7D-1

    1 supercollider-mkplugins (Installed) (Build Files Exist) ==> Packages to cleanBuild? ==> [N]one [A]ll [Ab]ort [I]nstalled [No]tInstalled or (1 2 3, 1-3, ^4) ==> a :: Deleting (1/1): /home/igor/.cache/yay/supercollider-mkplugins :: Downloaded PKGBUILD (1/1): supercollider-mkplugins 1 supercollider-mkplugins (Installed) (Build Files Exist) ==> Diffs to show? ==> [N]one [A]ll [Ab]ort [I]nstalled [No]tInstalled or (1 2 3, 1-3, ^4) ==> :: (1/1) Parsing SRCINFO: supercollider-mkplugins ==> Making package: supercollider-mkplugins 0.1.7D-1 (Tue 23 Mar 2021 08:25:41 PM -03) ==> Retrieving sources... -> Downloading MKPlugins-Linux.zip... % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 627 100 627 0 0 996 0 --:--:-- --:--:-- --:--:-- 996 100 230k 100 230k 0 0 238k 0 --:--:-- --:--:-- --:--:-- 8388k ==> Validating source files with md5sums... MKPlugins-Linux.zip ... FAILED ==> ERROR: One or more files did not pass the validity check! error downloading sources: supercollider-mkplugins

    opened by igormpc 1
  • SIMD status for these plugins?

    SIMD status for these plugins?

    I'm curious if these plugins are getting SIMD-optimized during compilation. I suspect not, as they are very CPU hungry (e.g. 2 instances of AnalogTape = 17-18% CPU). So, for instance, I might use the VA filters for a monophonic bass line but I would have to avoid too many of them at once.

    I'm afraid my C++ skills are not good enough to review the plugins for this. Spacechild1 had pointed out to me on the SC forum that 8-sample loops can clue the compiler in to places where SIMD instructions could be used. This resulted in a massive speedup for me.

    help wanted 
    opened by jamshark70 2
  • VAxx filters have fixed and quite high overdrive

    VAxx filters have fixed and quite high overdrive

    Describe the bug

    The VAxx filters have fixed and quite high overdrive applied to them, it seems: https://github.com/madskjeldgaard/portedplugins/blob/main/plugins/odinfilters/Korg35Filter.cpp#L96

    Expected behavior Unless explicitly applied, the overdrive should be subtle / non-existant

    opened by madskjeldgaard 0
  • Ranges of filter parameters

    Ranges of filter parameters

    I wouldn't mind to open a PR to document some of the expected parameter ranges, but I thought I'd ask first:

    • VAxxx filter resonance is 0.0 - 1.0?
    • VAxxx filter drive is 0.0 - 1.0?

    I haven't checked other help files yet -- I think I'm guessing right, but the helpfiles don't really confirm it. Once confirmed, I'd be happy to add the ranges to the help files.

    opened by jamshark70 1
  • VAxx filters' frequency parameter not scaled properly

    VAxx filters' frequency parameter not scaled properly

    Describe the bug

    Cutoff frequency of all the zdf filters is scaled too high

    To Reproduce

    { VALadder.ar(Saw.ar(200), 50)}.freqscope

    Screenshots Schermafbeelding 2021-12-20 om 22 46 13

    Desktop (please complete the following information):

    • OS: MacOS Big Sur 11.6.1
    • Architecture: M1 (rosetta)
    • SC Version: latest
    • PortedPlugins Version: latest
    help wanted 
    opened by devilfish707 9
  • BLOsc aliasing

    BLOsc aliasing

    Describe the bug Audible aliasing artifacts above ~3kHz freq in all three waveforms of BLOsc

    To Reproduce

    {
    BLOsc.ar(MouseX.kr(50, 5000, \exponential).poll, 0.5, 2) // also 0 and 1
    }.play
    

    Expected behavior Vanilla band-limited oscillators:

      Saw.ar(MouseX.kr(50, 5000, \exponential))
      Pulse.ar(MouseX.kr(50, 5000, \exponential))
    

    Desktop (please complete the following information):

    • OS: Mac os 10.11.6
    • Architecture: Intel
    • SC Version: 3.10.4
    • PortedPlugins Version: 0.3.1
    • 48k sample rate
    opened by esluyter 2
  • VA1Pole has DC == feedback coefficient at output in LPF mode

    VA1Pole has DC == feedback coefficient at output in LPF mode

    Describe the bug In mode 0 (lpf), VA1Pole has a DC offset equal to its feedback coefficient at its output.

    To Reproduce Evaluate each example and observe the posted values.

    { VA1Pole.ar(Silent.ar, 500, MouseY.kr(-0.99, 0.99), 0).poll * 0 }.play // lpf
    { VA1Pole.ar(Silent.ar, 500, MouseY.kr(-0.99, 0.99), 1).poll * 0 }.play // hpf
    

    Expected behavior If any DC offset is present at the output of VA1Pole, it will be quite small, as in the HPF example above.

    Desktop (please complete the following information):

    • OS: Arch Linux (5.14.9-arch2-1)
    • Architecture: x86
    • SC Version: 3.12.1
    • PortedPlugins Version: 0.3.0d-1 (from AUR)
    opened by catniptwinz 1
Releases(v0.3.1)
Owner
mads kjeldgaard
Composer and sound artist. I work freelance and at NOTAM in Oslo, Norway. Come say hi!
mads kjeldgaard
Doom ported to a nRF52840-based BLE dongle

nRF52840 Doom Doom port to an nRF52840-based USB BLE dongle, the Adafruit CLUE board, and any device using Nordic Semiconductors nRF52840. Coded by Ni

null 30 Dec 29, 2022
DOOM ported to the dos-like framework

doom-for-dos-like This is a quick but fairly complete version of the original DOOM ported to the dos-like framework. The data included is for original

Mattias Gustavsson 30 Sep 25, 2022
SuperTux Milestone 1 ported to the Dreamcast (again)

- An introduction for SuperTux - http://super-tux.sf.net/ Last update: April 26, 2004 Dreamcast port by Headshotnoby Turns out this game was alread

Headshotnoby 3 Jun 7, 2022
Flutter plugins for embedded Linux (eLinux)

Flutter plugins for Embedded Linux (eLinux) This repo is a companion repo to the flutter-elinux. It contains the source code for Flutter plugins for e

Sony 28 Dec 18, 2022
Some GCC plugins useful for OI training/judging.

gcc-plugin-for-oi Some GCC plugins useful for OI training/judging. Currently, only one plugin no_opt_attr_plugin is included. Build Simply make all. O

Xidian University Programming Contest Training Base 3 Mar 14, 2022
Flutter plugins used in Mixin

This repo contains the source code for Flutter plugins which used in Mixin. Check the packages directory for all plugins.

Mixin Network 245 Dec 28, 2022
Programming tutorial series for creating LV2 plugins using C/C++ and turtle.

Programming LV2 Plugins From Scratch Programming tutorial series for creating LV2 plugins using C/C++ and turtle. Content Programming LV2 Plugins From

null 34 Dec 24, 2022
Dockerfile/docker-compose Elasticsearch with plugins elasticsearch-analysis-vietnamese and coccoc-tokenizer

docker-es-cococ-tokenizer Dockerfile/docker-compose Elasticsearch with plugins elasticsearch-analysis-vietnamese and coccoc-tokenizer Deployment docke

Nguyễn Nhật Minh Tú 7 Nov 8, 2022
SDK for creating GTA IV .asi plugins

iv-sdk "SDK" for creating GTA IV .asi plugins Supports 1.0.7.0 and 1.0.8.0 (EFIGS only) The majority of the project has been created for 1.0.8.0 and t

null 29 Dec 9, 2022
A personal collection of Windows CVE I have turned in to exploit source, as well as a collection of payloads I've written to be used in conjunction with these exploits.

This repository contains a personal collection of Windows CVE I have turned in to exploit source, as well as a collection of payloads I've written to

null 85 Dec 28, 2022
Maker of special .exe, which contains additional files which are unpacked when .exe is run

exe-archivator Program that make exec-me.exe, which contains additional files which are unpacked when exec-me.exe is run. After compleating unpacking

Roman Karetnikov 4 Dec 17, 2021
A C++ library with all the online array problems and etc which I get online

cpp-Library A C++ library with all the online array problems and etc which I get online. Setup To setup it simply just download the repo and then move

Padmashree Jha 6 Dec 6, 2021
This repository shows my all (maybe all) solved problem (CodeForces & AtCoder) and their description with my Codes!!!

Submissions Auto-generated with ❤ using Harwest Introduction A repository to keep track of problem solving practice, containing solutions from platfor

Obaydullah Khan  3 Aug 4, 2022
No loss LV2 sound effect plugin

B.Spacr Description: LV2 sound effect plugin B.Spacr is a unique LV2 effect plugin that enables a clear and brilliant audibility of your music product

null 14 Aug 24, 2022
BSD-licensed Yamaha FM sound cores (OPM, OPN, OPL, and others)

ymfm ymfm is a collection of BSD-licensed Yamaha FM sound cores (OPM, OPN, OPL, and others), written by Aaron Giles Supported environments This code s

Aaron Giles 163 Dec 31, 2022
Bollu learns physically based sound sythesis

Kavariance bollu learns digital audio synthesis from the blog at the bottom of the sea. the name is a pun on Kaveri, A wav/river goddess, and Covarian

Siddharth 8 Dec 29, 2021
Plua is a superset of Lua for classic PalmOS devices with added support for graphics, UI, networking, events and sound.

Plua2c Plua is a superset of Lua for classic PalmOS devices with added support for graphics, UI, networking, events and sound. This is the source code

Cameron Kaiser 9 Jan 5, 2023