Problems with SuperClean and SC3 Plugins (Linux / Ubuntu)

I’m struggling a bit to get SuperClean (GitHub - danielmkarlsson/SuperClean: A framework comprising of basic utilities like a sampler, some synths, a bunch of effects and a flexible routing system for use inside SuperCollider.) working. I have SuperCollider installed from the Ubuntu Repo (Version 3.13) and I also installed the SC3plugins from the Repo.

I downloaded SuperClean, Unzipped it and moved it to the Supercollider Extension folder as described.

I’m using the startup file from the git site : GitHub - danielmkarlsson/SuperClean: A framework comprising of basic utilities like a sampler, some synths, a bunch of effects and a flexible routing system for use inside SuperCollider. and when running it I get some errors.

First, there’s no NHHall found (see full log below). I wonder why is is not part of that list → GitHub - supercollider/sc3-plugins: Community plugins for SuperCollider

JPverb.ar on the other hand is recognized by SuperCollider, so I guess the SC3plugins are installed and found. Later in the log there is a bunch of messages like *** ERROR: SynthDef clean_reverb2 not found FAILURE IN SERVER /s_new SynthDef not found.

I also wonder if SuperNova is needed? Usually I just use / used the normal audio server from Supercollider.

Booting server 'localhost' on address 127.0.0.1:57110.
Found 10 LADSPA plugins
JackDriver: client name is 'SuperCollider'
SC_AudioDriver: sample rate = 48000.000000, driver's block size = 1024
JackDriver: connected  UMC204HD 192k Analoges Stereo:capture_FL to SuperCollider:in_1
JackDriver: connected  UMC204HD 192k Analoges Stereo:capture_FR to SuperCollider:in_2
JackDriver: connected  SuperCollider:out_1 to UMC204HD 192k Analog Surround 4.0:playback_FL
JackDriver: connected  SuperCollider:out_2 to UMC204HD 192k Analog Surround 4.0:playback_FR
SuperCollider 3 server ready.
Requested notification messages from server 'localhost'
localhost: server process's maxLogins (1) matches with my options.
localhost: keeping clientID (0) as confirmed by server process.
Shared memory server interface initialized
loading synthdefs in /home/fox/.local/share/SuperCollider/Extensions/SuperClean/SuperClean/classes/../synths/core-modules.scd
ERROR: Class not defined.
  in interpreted text
  line 161 char 9:

  			NHHall.ar(Pan2.ar(sig), rts.clip(0,999).lag(lgt), bld.lag(0.5), 200, 0.5, 4000, 0.5,
           
  				edf.clip(0,1).lag(lgt), ldf.clip(0,1).lag(lgt), 0, 0);
-----------------------------------
loading synthdefs in /home/fox/.local/share/SuperCollider/Extensions/SuperClean/SuperClean/classes/../synths/core-synths-global.scd
loading synthdefs in /home/fox/.local/share/SuperCollider/Extensions/SuperClean/SuperClean/classes/../synths/core-synths.scd
loading synthdefs in /home/fox/.local/share/SuperCollider/Extensions/SuperClean/SuperClean/classes/../synths/default-synths.scd
WARNING: no folders found in paths: '/home/fox/.local/share/SuperCollider/Extensions/SuperClean/clean-samples/*'
Safety('localhost') is running, using 'safeClip_2'.
*** ERROR: SynthDef clean_monitor2 not found
FAILURE IN SERVER /s_new SynthDef not found
*** ERROR: SynthDef clean_rms2 not found
FAILURE IN SERVER /s_new SynthDef not found
*** ERROR: SynthDef clean_dfm2 not found
FAILURE IN SERVER /s_new SynthDef not found
*** ERROR: SynthDef clean_tanh2 not found
FAILURE IN SERVER /s_new SynthDef not found
*** ERROR: SynthDef clean_mir2 not found
FAILURE IN SERVER /s_new SynthDef not found
*** ERROR: SynthDef clean_cav2 not found
FAILURE IN SERVER /s_new SynthDef not found
*** ERROR: SynthDef clean_reverb2 not found
FAILURE IN SERVER /s_new SynthDef not found
*** ERROR: SynthDef clean_delay2 not found
FAILURE IN SERVER /s_new SynthDef not found
*** ERROR: SynthDef clean_hal2 not found
FAILURE IN SERVER /s_new SynthDef not found
*** ERROR: SynthDef clean_jpverb2 not found
FAILURE IN SERVER /s_new SynthDef not found
*** ERROR: SynthDef clean_monitor2 not found
FAILURE IN SERVER /s_new SynthDef not found
*** ERROR: SynthDef clean_rms2 not found
FAILURE IN SERVER /s_new SynthDef not found
*** ERROR: SynthDef clean_dfm2 not found
FAILURE IN SERVER /s_new SynthDef not found
*** ERROR: SynthDef clean_tanh2 not found
FAILURE IN SERVER /s_new SynthDef not found
*** ERROR: SynthDef clean_mir2 not found
FAILURE IN SERVER /s_new SynthDef not found
*** ERROR: SynthDef clean_cav2 not found
FAILURE IN SERVER /s_new SynthDef not found
*** ERROR: SynthDef clean_reverb2 not found
FAILURE IN SERVER /s_new SynthDef not found
*** ERROR: SynthDef clean_delay2 not found
FAILURE IN SERVER /s_new SynthDef not found
*** ERROR: SynthDef clean_hal2 not found
FAILURE IN SERVER /s_new SynthDef not found
*** ERROR: SynthDef clean_jpverb2 not found
FAILURE IN SERVER /s_new SynthDef not found
*** ERROR: SynthDef clean_monitor2 not found
FAILURE IN SERVER /s_new SynthDef not found
*** ERROR: SynthDef clean_rms2 not found
FAILURE IN SERVER /s_new SynthDef not found
*** ERROR: SynthDef clean_dfm2 not found
FAILURE IN SERVER /s_new SynthDef not found
*** ERROR: SynthDef clean_tanh2 not found
FAILURE IN SERVER /s_new SynthDef not found
*** ERROR: SynthDef clean_mir2 not found
FAILURE IN SERVER /s_new SynthDef not found
*** ERROR: SynthDef clean_cav2 not found
FAILURE IN SERVER /s_new SynthDef not found
*** ERROR: SynthDef clean_reverb2 not found
FAILURE IN SERVER /s_new SynthDef not found
*** ERROR: SynthDef clean_delay2 not found
FAILURE IN SERVER /s_new SynthDef not found
*** ERROR: SynthDef clean_hal2 not found
FAILURE IN SERVER /s_new SynthDef not found
*** ERROR: SynthDef clean_jpverb2 not found
FAILURE IN SERVER /s_new SynthDef not found
*** ERROR: SynthDef clean_monitor2 not found
FAILURE IN SERVER /s_new SynthDef not found
*** ERROR: SynthDef clean_rms2 not found
FAILURE IN SERVER /s_new SynthDef not found
*** ERROR: SynthDef clean_dfm2 not found
FAILURE IN SERVER /s_new SynthDef not found
*** ERROR: SynthDef clean_tanh2 not found
FAILURE IN SERVER /s_new SynthDef not found
*** ERROR: SynthDef clean_mir2 not found
FAILURE IN SERVER /s_new SynthDef not found
*** ERROR: SynthDef clean_cav2 not found
FAILURE IN SERVER /s_new SynthDef not found
*** ERROR: SynthDef clean_reverb2 not found
FAILURE IN SERVER /s_new SynthDef not found
*** ERROR: SynthDef clean_delay2 not found
FAILURE IN SERVER /s_new SynthDef not found
*** ERROR: SynthDef clean_hal2 not found
FAILURE IN SERVER /s_new SynthDef not found
*** ERROR: SynthDef clean_jpverb2 not found
FAILURE IN SERVER /s_new SynthDef not found
[ SuperClean up + running ]
*** ERROR: SynthDef clean_monitor2 not found
FAILURE IN SERVER /s_new SynthDef not found
*** ERROR: SynthDef clean_rms2 not found
FAILURE IN SERVER /s_new SynthDef not found
*** ERROR: SynthDef clean_dfm2 not found
FAILURE IN SERVER /s_new SynthDef not found
*** ERROR: SynthDef clean_tanh2 not found
FAILURE IN SERVER /s_new SynthDef not found
*** ERROR: SynthDef clean_mir2 not found
FAILURE IN SERVER /s_new SynthDef not found
*** ERROR: SynthDef clean_cav2 not found
FAILURE IN SERVER /s_new SynthDef not found
*** ERROR: SynthDef clean_reverb2 not found
FAILURE IN SERVER /s_new SynthDef not found
*** ERROR: SynthDef clean_delay2 not found
FAILURE IN SERVER /s_new SynthDef not found
*** ERROR: SynthDef clean_hal2 not found
FAILURE IN SERVER /s_new SynthDef not found
*** ERROR: SynthDef clean_jpverb2 not found
FAILURE IN SERVER /s_new SynthDef not found
*** ERROR: SynthDef clean_monitor2 not found
FAILURE IN SERVER /s_new SynthDef not found
*** ERROR: SynthDef clean_rms2 not found
FAILURE IN SERVER /s_new SynthDef not found
*** ERROR: SynthDef clean_dfm2 not found
FAILURE IN SERVER /s_new SynthDef not found
*** ERROR: SynthDef clean_tanh2 not found
FAILURE IN SERVER /s_new SynthDef not found
*** ERROR: SynthDef clean_mir2 not found
FAILURE IN SERVER /s_new SynthDef not found
*** ERROR: SynthDef clean_cav2 not found
FAILURE IN SERVER /s_new SynthDef not found
*** ERROR: SynthDef clean_reverb2 not found
FAILURE IN SERVER /s_new SynthDef not found
*** ERROR: SynthDef clean_delay2 not found
FAILURE IN SERVER /s_new SynthDef not found
*** ERROR: SynthDef clean_hal2 not found
FAILURE IN SERVER /s_new SynthDef not found
*** ERROR: SynthDef clean_jpverb2 not found
FAILURE IN SERVER /s_new SynthDef not found
*** ERROR: SynthDef clean_monitor2 not found
FAILURE IN SERVER /s_new SynthDef not found
*** ERROR: SynthDef clean_rms2 not found
FAILURE IN SERVER /s_new SynthDef not found
*** ERROR: SynthDef clean_dfm2 not found
FAILURE IN SERVER /s_new SynthDef not found
*** ERROR: SynthDef clean_tanh2 not found
FAILURE IN SERVER /s_new SynthDef not found
*** ERROR: SynthDef clean_mir2 not found
FAILURE IN SERVER /s_new SynthDef not found
*** ERROR: SynthDef clean_cav2 not found
FAILURE IN SERVER /s_new SynthDef not found
*** ERROR: SynthDef clean_reverb2 not found
FAILURE IN SERVER /s_new SynthDef not found
*** ERROR: SynthDef clean_delay2 not found
FAILURE IN SERVER /s_new SynthDef not found
*** ERROR: SynthDef clean_hal2 not found
FAILURE IN SERVER /s_new SynthDef not found
*** ERROR: SynthDef clean_jpverb2 not found
FAILURE IN SERVER /s_new SynthDef not found
*** ERROR: SynthDef clean_monitor2 not found
FAILURE IN SERVER /s_new SynthDef not found
*** ERROR: SynthDef clean_rms2 not found
FAILURE IN SERVER /s_new SynthDef not found
*** ERROR: SynthDef clean_dfm2 not found
FAILURE IN SERVER /s_new SynthDef not found
*** ERROR: SynthDef clean_tanh2 not found
FAILURE IN SERVER /s_new SynthDef not found
*** ERROR: SynthDef clean_mir2 not found
FAILURE IN SERVER /s_new SynthDef not found
*** ERROR: SynthDef clean_cav2 not found
FAILURE IN SERVER /s_new SynthDef not found
*** ERROR: SynthDef clean_reverb2 not found
FAILURE IN SERVER /s_new SynthDef not found
*** ERROR: SynthDef clean_delay2 not found
FAILURE IN SERVER /s_new SynthDef not found
*** ERROR: SynthDef clean_hal2 not found
FAILURE IN SERVER /s_new SynthDef not found
*** ERROR: SynthDef clean_jpverb2 not found
FAILURE IN SERVER /s_new SynthDef not found

I’m not sure, but this missing class will cause the entire core-modules.scd file not to run, so none of the SynthDefs defined in it will be available.

Linux packaging status is… hm, again I’m not sure. Ubuntu – File list of package sc3-plugins-server/noble/amd64 does not show NHUGens or anything related to that. The package may well be (years) out of date.

Usually for Linux we recommend building from source, for both SC and sc3-plugins.

hjh

1 Like

Thanks, you are right.
Ubuntu has vetsion 3.9 while i need at least 3.10.

will try the new binaries from git .

Now it looks a bit better, but still not working. I downloaded the Zip from git and copied the folder SC3plugins into the extension folder of Supercollider. However there’s also a folder lib/Supercollider/plugins containing the *.so files, which I copied to /home/fox/.local/lib .

When starting the SuperClean script I get:

*** Welcome to SuperCollider 3.13.0. *** For help press Ctrl-D.
SCDoc: Indexing help-files...
SCDoc: Indexed 2014 documents in 0.24 seconds
ERROR: Class not defined.
  in interpreted text
  line 1 char 5:

  UGens.dump; 
       
-----------------------------------
-> nil
compiling class library...
	Found 867 primitives.
	Compiling directory '/usr/share/SuperCollider/SCClassLibrary'
	Compiling directory '/usr/share/SuperCollider/Extensions'
	Compiling directory '/home/fox/.local/share/SuperCollider/Extensions'
	Compiling directory '/home/fox/.local/share/SuperCollider/downloaded-quarks/SafetyNet'
	Compiling directory '/home/fox/.local/share/SuperCollider/downloaded-quarks/scel'
	Compiling directory '/home/fox/.local/share/SuperCollider/downloaded-quarks/StrudelDirt'
	Compiling directory '/home/fox/.local/share/SuperCollider/downloaded-quarks/Dirt-Samples'
	Compiling directory '/home/fox/.local/share/SuperCollider/downloaded-quarks/Vowel'
	Compiling directory '/home/fox/.local/share/SuperCollider/downloaded-quarks/Bjorklund'
	numentries = 1347502 / 21568292 = 0.062
	6079 method selectors, 3548 classes
	method table size 22356896 bytes, big table size 172546336
	Number of Symbols 16034
	Byte Code Size 481749
	compiled 622 files in 0.10 seconds

Info: 4 methods are currently overwritten by extensions. To see which, execute:
MethodOverride.printAll

compile done
localhost : setting clientID to 0.
internal : setting clientID to 0.
Safety('localhost') enabled.
Safety('internal') enabled.
Class tree inited in 0.01 seconds


*** Welcome to SuperCollider 3.13.0. *** For help press Ctrl-D.
-> localhost
Booting server 'localhost' on address 127.0.0.1:57110.
exception in GraphDef_Load: UGen 'DWGBowed' not installed.
while reading file: '/home/fox/.local/share/SuperCollider/synthdefs/bow.scsyndef'exception in GraphDef_Load: UGen 'DFM1' not installed.
while reading file: '/home/fox/.local/share/SuperCollider/synthdefs/dfd.scsyndef'JackDriver: client name is 'SuperCollider'
SC_AudioDriver: sample rate = 48000.000000, driver's block size = 1024
JackDriver: connected  UMC204HD 192k Analoges Stereo:capture_FL to SuperCollider:in_1
JackDriver: connected  UMC204HD 192k Analoges Stereo:capture_FR to SuperCollider:in_2
JackDriver: connected  SuperCollider:out_1 to UMC204HD 192k Analog Surround 4.0:playback_FL
JackDriver: connected  SuperCollider:out_2 to UMC204HD 192k Analog Surround 4.0:playback_FR
SuperCollider 3 server ready.
Requested notification messages from server 'localhost'
localhost: server process's maxLogins (1) matches with my options.
localhost: keeping clientID (0) as confirmed by server process.
Safety('localhost') is running, using 'safeClip_2'.
Shared memory server interface initialized
loading synthdefs in /home/fox/.local/share/SuperCollider/Extensions/SuperClean/classes/../synths/core-modules.scd
exception in GraphDef_Recv: UGen 'DPW3Tri' not installed.
exception in GraphDef_Recv: UGen 'SwitchDelay' not installed.
loading synthdefs in /home/fox/.local/share/SuperCollider/Extensions/SuperClean/classes/../synths/core-synths-global.scd
exception in GraphDef_Recv: UGen 'NHHall' not installed.
exception in GraphDef_Recv: UGen 'DFM1' not installed.
exception in GraphDef_Recv: UGen 'JPverbRaw' not installed.
exception in GraphDef_Recv: UGen 'CrossoverDistortion' not installed.
exception in GraphDef_Recv: UGen 'PV_SpectralEnhance' not installed.
loading synthdefs in /home/fox/.local/share/SuperCollider/Extensions/SuperClean/classes/../synths/core-synths.scd
exception in GraphDef_Recv: UGen 'DFM1' not installed.
exception in GraphDef_Recv: UGen 'DWGBowed' not installed.
loading synthdefs in /home/fox/.local/share/SuperCollider/Extensions/SuperClean/classes/../synths/default-synths.scd

loading 1 sample bank:
mmd (13) 
Required 10 MB of memory.

[ SuperClean up + running ]
*** ERROR: SynthDef clean_dfm2 not found
FAILURE IN SERVER /s_new SynthDef not found
*** ERROR: SynthDef clean_delay2 not found
FAILURE IN SERVER /s_new SynthDef not found
*** ERROR: SynthDef clean_hal2 not found
FAILURE IN SERVER /s_new SynthDef not found
*** ERROR: SynthDef clean_jpverb2 not found
FAILURE IN SERVER /s_new SynthDef not found
*** ERROR: SynthDef clean_dfm2 not found
FAILURE IN SERVER /s_new SynthDef not found
*** ERROR: SynthDef clean_delay2 not found
FAILURE IN SERVER /s_new SynthDef not found
*** ERROR: SynthDef clean_hal2 not found
FAILURE IN SERVER /s_new SynthDef not found
*** ERROR: SynthDef clean_jpverb2 not found
FAILURE IN SERVER /s_new SynthDef not found
*** ERROR: SynthDef clean_dfm2 not found
FAILURE IN SERVER /s_new SynthDef not found
*** ERROR: SynthDef clean_delay2 not found
FAILURE IN SERVER /s_new SynthDef not found
*** ERROR: SynthDef clean_hal2 not found
FAILURE IN SERVER /s_new SynthDef not found
*** ERROR: SynthDef clean_jpverb2 not found
FAILURE IN SERVER /s_new SynthDef not found
*** ERROR: SynthDef clean_dfm2 not found
FAILURE IN SERVER /s_new SynthDef not found
*** ERROR: SynthDef clean_delay2 not found
FAILURE IN SERVER /s_new SynthDef not found
*** ERROR: SynthDef clean_hal2 not found
FAILURE IN SERVER /s_new SynthDef not found
*** ERROR: SynthDef clean_jpverb2 not found
FAILURE IN SERVER /s_new SynthDef not found

Hi, are you compiling the SC3plugins?.

I’m using Fedora Linux, and I have to compile and install the sc3-plugins.

If you haven’t, check I’m using Fedora Linux, and I have to compile and install the sc3-plugins in Ubuntu at the end of this page.

1 Like

I used the binary in this folder: https://github.com/supercollider/sc3-plugins/releases/download/Version-3.13.0/sc3-plugins-3.13.0-Linux-x64.zip

Do you think it’s a problem?

Ok tried: Building the plugins requires the source of Supercollider, however I’m using the Repo version (version 3.13).

I don’t know because I’ve never used the web page’s binaries. I’ve always compiled both, SC and sc3-pluing following the instructions of the wiki for Fedora. As @jamshark70 said “Usually for Linux we recommend building from source, for both SC and sc3-plugins.” So I’d uninstall SC of the repo, and then compile both, SC and sc3-plugins following the instructions for Ubuntu. I hope I’m not over complicating the issue, but my experience in Linux with other than compiling SC and sc3-plugins has not been good, at least in Fedora.

1 Like

I compiled the latest version from source (3.14.1) and also build the plugins as described.

I installed SuperCollider locally to /home/fox/usr/local/supercollider_latest
The plugins I installed into /usr/local/lib/SuperCollider/plugins (the so files)
and into /usr/local/share/SuperCollider/Extensions/SC3plugins (sc files and other files).

When starting SuperCollider it doesn’t seem to look in these folders. I also don’t get the correct synthaxhighlighting for the plugins, so I think SC is not aware of them. Should I copy them to a different location? I thought that maybe I can use them with both the repo version 3.13 and the newly built version 3.14.1

SCDoc: Indexing help-files...
SCDoc: Indexed 1389 documents in 0.3 seconds
main: waiting for input thread to join...
main: quitting...
cleaning up OSC
Interpreter has quit. [Exit code: 0]
compiling class library...
	Found 887 primitives.
	Compiling directory '/home/fox/usr/local/supercollider_latest/share/SuperCollider/SCClassLibrary'
	Compiling directory '/home/fox/usr/local/supercollider_latest/share/SuperCollider/Extensions'
	Compiling directory '/home/fox/.local/share/supercollider_latest/SuperCollider/Extensions'
	Compiling directory '/home/fox/.local/share/supercollider_latest/SuperCollider/downloaded-quarks/SafetyNet'
	numentries = 856682 / 13062160 = 0.066
	5704 method selectors, 2290 classes
	method table size 13838496 bytes, big table size 104497280
	Number of Symbols 12919
	Byte Code Size 396649
	compiled 335 files in 0.16 seconds

Info: 4 methods are currently overwritten by extensions. To see which, execute:
MethodOverride.printAll

compile done
localhost : setting clientID to 0.
internal : setting clientID to 0.
Safety('internal') enabled.
Safety('localhost') enabled.
Class tree inited in 0.03 seconds

Did you test {VOSIM.ar(Impulse.ar(100), 500, 3, 0.99)}.play to check whether the sc3-plugins are loaded?

I always install in the default path. Mind you, I would not recommend to have two versions of SC installed. It is not clear to me whether you kept the 3.13 version from the repositories and install the 3.14.1 in another place.

I’ve got the sc3-pluins installed in /usr/local/share/SuperCollider/Extensions, and all other Quarks extensions and other libraries installed manually are in my user space ~/.local/share/SuperCollider/Extensions.

Anyway, the messages you get when starting the interpreter looks good to me. These are the messages I got when I start the interpreter:

compiling class library...
	Found 887 primitives.
	Compiling directory '/usr/local/share/SuperCollider/SCClassLibrary'
	Compiling directory '/usr/local/share/SuperCollider/Extensions'
	Compiling directory '~/.local/share/SuperCollider/Extensions'
	Compiling directory '~/.local/share/SuperCollider/downloaded-quarks/JITLibExtensions'
	Compiling directory '~/.local/share/SuperCollider/downloaded-quarks/BatLib'
	Compiling directory '~/.local/share/SuperCollider/downloaded-quarks/Bjorklund'
	Compiling directory '~/.local/share/SuperCollider/downloaded-quarks/ddwSnippets'
	Compiling directory '~/.local/share/SuperCollider/downloaded-quarks/SuperDirt'
	Compiling directory '~/.local/share/SuperCollider/downloaded-quarks/Vowel'
	Compiling directory '~/.local/share/SuperCollider/downloaded-quarks/Dirt-Samples'
	Compiling directory '~/.local/share/SuperCollider/downloaded-quarks/scel'
	numentries = 1554619 / 26163080 = 0.059
	6778 method selectors, 3860 classes
	method table size 25921648 bytes, big table size 209304640
	Number of Symbols 17571
	Byte Code Size 545322
	compiled 721 files in 0.52 seconds

Info: 14 methods are currently overwritten by extensions. To see which, execute:
MethodOverride.printAll

compile done
localhost : setting clientID to 0.
internal : setting clientID to 0.
Emacs: Initializing lisp interface.
Class tree inited in 0.02 seconds

*** Welcome to SuperCollider 3.14.0-rc1. *** For help type C-c C-y.
Emacs: Index help topics in 0.605 seconds
Emacs: Built symbol table in 0.025 seconds
1 Like

Thanks. I have the repo version of Supercollider installed in /usr/bin and I installed 3.14.1 into /home/fox/usr/local/supercollider_latest" which I start via

#!/bin/bash
export QT_QPA_PLATFORM=xcb
#export QT_QPA_PLATFORMTHEME=qt6ct
SC_PREFIX="/home/fox/usr/local/supercollider_latest"

export PATH="$SC_PREFIX/bin:$PATH"
export LD_LIBRARY_PATH="$SC_PREFIX/lib:$LD_LIBRARY_PATH"

export SC_CLASSPATH="$SC_PREFIX/share/SuperCollider/SCClassLibrary"
export SC_DOCPATH="$SC_PREFIX/share/SuperCollider/Help"

export XDG_CONFIG_HOME="/home/fox/.config/supercollider_latest"
export XDG_DATA_HOME="/home/fox/.local/share/supercollider_latest"

#exec -a scide "$SC_PREFIX/bin/scide" "$@"

sleep 1  # wait 1 second before launch

exec  "$SC_PREFIX/bin/scide" "$@"

I think as long you don’t mix config files of different versions that should work.

  1. I just copied the sc3plugins folder (the binary version that can be directly downloaded) into /home/fox/.local/share/supercollider_latest/SuperCollider/Extensions and when starting version 3.14.1 I get correct syntax highlighting for the plugin Ugens, but no sound and the error.
-> Synth('temp__0' : 1001)
exception in GraphDef_Recv: UGen 'VOSIM' not installed.
*** ERROR: SynthDef temp__0 not found
FAILURE IN SERVER /s_new SynthDef not found

  1. As a next step I copied the binaries (folder /home/fox/Downloads/sc3-plugins-3.13.0-Linux-x64/lib/SuperCollider/plugins_2) into /home/fox/usr/local/supercollider_latest/lib/SuperCollider/plugins

I renamed the folder from plugins to plugins_2. I also didn’t want to mix the plugins which came with SuperCollider and the sc3 plugins. Therefore I kept them in a separate folder. Obviously Supercollider is search recursively for plugins in /home/fox/usr/local/supercollider_latest/lib/SuperCollider/plugins.

→ When doing so your code snippet works and I get sound, no errors.On the github page this is not mentioned where the so files must go.

So, I think the only problem / question left now is why is the built SuperCollider 3.14.1 not checking the root directories for the s3c plugins and why is even the repo version 3.13.0 not checking these folders?

I need a break :sweat_smile:

and here the log when running SuperClean

Booting server 'localhost' on address 127.0.0.1:57110.
Found 10 LADSPA plugins
JackDriver: client name is 'SuperCollider'
SC_AudioDriver: sample rate = 48000.000000, driver's block size = 1024
JackDriver: connected  UMC204HD 192k Analoges Stereo:capture_FL to SuperCollider:in_1
JackDriver: connected  UMC204HD 192k Analoges Stereo:capture_FR to SuperCollider:in_2
JackDriver: connected  SuperCollider:out_1 to UMC204HD 192k Analog Surround 4.0:playback_FL
JackDriver: connected  SuperCollider:out_2 to UMC204HD 192k Analog Surround 4.0:playback_FR
SuperCollider 3 server ready.
Requested notification messages from server 'localhost'
localhost: server process's maxLogins (1) matches with my options.
localhost: keeping clientID (0) as confirmed by server process.
Safety('localhost') is running, using 'safeClip_2'.
Shared memory server interface initialized
loading synthdefs in /home/fox/.local/share/supercollider_latest/SuperCollider/Extensions/SuperClean/classes/../synths/core-modules.scd
loading synthdefs in /home/fox/.local/share/supercollider_latest/SuperCollider/Extensions/SuperClean/classes/../synths/core-synths-global.scd
loading synthdefs in /home/fox/.local/share/supercollider_latest/SuperCollider/Extensions/SuperClean/classes/../synths/core-synths.scd
loading synthdefs in /home/fox/.local/share/supercollider_latest/SuperCollider/Extensions/SuperClean/classes/../synths/default-synths.scd

loading 1 sample bank:
mmd (13) 
Required 10 MB of memory.

[ SuperClean up + running ]

Example from DMK played nicely. :slight_smile:

In the built version 3.14.1

I get

Platform.userExtensionDir
 ->  /home/fox/.local/share/supercollider_latest/SuperCollider/Extensions

and Platform.systemExtensionDir
/home/fox/usr/local/supercollider_latest/share/SuperCollider/Extensions

So it does not look in the root directories obviously.

And the distro version (3.13.0) from Ubuntu:

Platform.userExtensionDir
-> /home/fox/.local/share/SuperCollider/Extensions

Platform.systemExtensionDir
 -> /usr/share/SuperCollider/Extensions

However, /usr/share/SuperCollider/Extensions is empty. The Extension folder of my built SC3 plugins was copied to /usr/local/share/SuperCollider/Extensions/SC3plugins by default. That’s why it isn’t found. Super confusing…

You can change the paths in your SuperCollider startup file (usually named startup.scd), adding the following line:

Platform.userExtensionDir = "/path/to/your/new/directory";
Platform.userExtensionDir = "/path/to/your/new/directory"

about the startup.scd file, it should be in ~/.config/SuperCollider/startup.scd. check this help file

However, I do not understand why you want to keep the 3.13.0 version. It adds so much confusion. As I said, for me compiling has worked flawless, but I only use the compiled version installed in the default folders for both, SC and sc3-plugins. I have followed exactly the instructions of the wiki. Also, take in account that you compiled the sc3-plugins using the 3.14.1 source code, not the 3.13.0. I do not know whether this can bring errors later. I would start clean. I mean uninstall the package version, uninstall the ones that you have compiled, and do a make clean if it is necessary. Perhaps even erase what it is in the Extension folder in my user space. Then, I would compile again using the default paths. As I said, that is what I would do, perhaps setting the directories in he startup.scd is a easer fix.

1 Like

I kept the distro version when I compiled 3.14.x to have a stable version and i also had some other smaller issues with 3.14

Can you check please in which folder you have the *.so files sitting? Must be some lib folder but I wonder if they are in a seperate folder.

Is possible to uninstall tje built plugins from root or do I have ro remove them manually? Maybe sudo make uninstall will work?

Hi, the sc3-pluins .so are in /usr/local/lib/SuperCollider/plugins/

1 Like

The packaged version should use /usr/share… folders for systemwide, while the locally built version should use /usr/local/share… (“Local,” according to some pages, is for “architecture-dependent” resources; locally built probably supports only the CPU architecture on the machine where it was built )

So, building sc3-plugins locally, they should be installed where you see them.

Locally built sclang would look in /usr/local/share/SuperCollider/Extensions for class library files. Packaged sclang should look in /usr/share/SuperCollider/Extensions.

Based on that, I think the easiest way to make locally built sc3-plugins available to packaged SC is to manually symlink:

sudo ln -s /usr/local/share/SuperCollider/Extensions/SC3plugins /usr/share/SuperCollider/Extensions/SC3plugins

I think a lot of the confusion goes away if you work with SC’s default paths instead of trying to force a different scheme. (Btw setting default paths in startup.scd, I think, isn’t ideal because it won’t affect the locations for class library compilation, and it won’t automatically affect the server’s UGen search paths.)

If you’re maintaining two versions, the other problem is getting sclang to run the right scsynth. Check which scsynth to see which one is preferred based on the system PATH variable. Then, in the other version, you’d need to override Server.program = "exec /full/path/to/scsynth"; to force the right executable. That is, if which scsynth says /usr/local/bin/scsynth (going from memory here, maybe it’s not exactly that) then it prefers the locally built version. Then your packaged version should use startup to set the program = "exec /usr/bin/scsynth".

hjh

1 Like

Thanks for that detailed description! I’ll try symlinking the plugins.
I also was not aware that the wrong scsynth can be used. I thought that this is always coupled to the version of the IDE. Do you know if it is possible to check from the Supercollider IDE which synth engine is active (something like Server.program.show)?

SC binary executables are stored in the system default locations: if a package, /usr/bin/scsynth (or sclang or scide); if built locally, /usr/local/bin/scsynth etc. There’s no location based on version, so when you boot the server, it can’t do e.g. /usr/bin/sc3.14/scsynth.

The default Server.program is exec scsynth, which doesn’t specify any location for the server. So how does the system find that location? It checks each entry in the system’s $PATH variable: on my machine, mine starts with /usr/local/sbin:/usr/local/bin:/more...stuff. Because I built locally from sources, /usr/local/bin/scsynth is found and the OS goes with that:

"which scsynth".unixCmd

// prints:
/usr/local/bin/scsynth

If I also installed an older version from a package, then… the $PATH is the same, so which scsynth would resolve to the same location, launching the locally built version instead of the packaged version. I think you could deal with that by having your startup file disambiguate between the versions, and modify the PATH variable if it’s packaged.

Basically, I think in Linux, it’s not really expected to have multiple SC versions.

EDIT: Haven’t really thought this through, but maybe another way is, don’t sudo make install the locally-built version, and do some hacks to find the compiled executables in the build folder. Then you would have different executables in different version-dependent locations.

hjh

1 Like

thanks, this looks good. The distro verision uses scsynth in /usr/bin and the locally built version uses: /home/fox/usr/local/supercollider_latest/bin/scsynth

Symlinking that directory as you suggested works, however there’s a problem with
/usr/local/lib/SuperCollider/plugins, which contains the locally built *.so files of the sc3 plugins. When symlinking that one it would overwrite the plugins (from the repo version) present in /usr/lib/SuperCollider/plugins