For a DAW project that is nearing completion, I wanted a shimmery ambient-y reverb and I just wasn’t getting it from other free plug-ins (bearing in mind Linux compatibility also).
JPverb to the rescue –
-
Get plugincollider from GitHub - asb2m10/plugincollider: SuperCollider as a VST3 plugin. To use sc3-plugins, you’ll need to compile it with
cmake .. -DSC_DYNAMIC_PLUGINS=ON– this was straightforward in Linux, not sure about other platforms (and I’m also not sure if the binary releases include dynamic plug-ins, though I expect not).- Must be at least v0.3.1! This includes a critical bug fix.
-
Copy the “PluginCollider.vst3” folder to the user VST location (which the build process should do for you – at least it did in Linux).
-
In SC, write a .scsyndef file. It does not have to be located in the default SynthDef directory. Since I’m using it in a DAW project, I saved the .scsyndef file in the same location with the project files.
( SynthDef(\jpverb, { |mix = 1, t60 = 3, damp = 0, size = 1, earlyDiff = 0.707, modDepth = 0.1, modFreq = 2, low = 1, mid = 1, high = 1, lowcut = 500, highcut = 2000| var sig = SoundIn.ar([0, 1]); var rvb = JPverb.ar(sig, t60, damp, size, earlyDiff, modDepth, modFreq, low, mid, high, lowcut, highcut); Out.ar(0, XFade2.ar(sig, rvb, mix * 2 - 1)) }).writeDefFile("~/Documents/you/dont/need/my/actual/path".standardizePath); )- ^^ Note: For effect usage, incoming audio is on the hardware input busses (
SoundIn), and outgoing audio is hardware output.
- ^^ Note: For effect usage, incoming audio is on the hardware input busses (
-
In the DAW, add the plugin.
-
If using dynamic plugins, check “Server > Configure plugin path” and point to the location of the SC UGen binaries.
-
In the tree view at left, expand Project and click on SynthDef.
-
“Load” button and choose your scsyndef file.
- Parameter ranges are a guess. They don’t use SynthDef metadata. You can edit them, but they will have to be configured for every instance.
-
Set parameters.
-
Enable “FX mode” to run the synth. Note “units: 9 graph: 1” – that’s where you see that the synth is running.
For troubleshooting, you can attach a Server object in sclang:
Server.default = s = Server.remote(\pc, NetAddr("127.0.0.1", 8898));
// e.g., trace the fx synth
// -16 is a hardcoded ID for the fx synth
// that's found under Server > Nodes > Group 1
// trace appears in the plugincollider window!
s.sendMsg(\n_trace, -16);
That “should” be it. I did this on an FX channel, and audio sent to that channel gets processed by JPverb just as it would by any normal reverb (just, shinier).
Plugincollider is still alpha. I’ve seen it crash the DAW when closing a project, and sometimes seen it crash when trying to run the synthdef (but then it usually works the next time). So, “at your own risk” disclaimer attached.
hjh

