Exception in GraphDef_Recv: UGen 'NHHall' not installed - Linux ubuntu

Hi folks,

I am currently unable to run NHHAll extension plugin UGen.

I am under Ubuntu 22, running SC 3.11.2.
I built the sc3-plugins following the GitHub page..

I basically followed the command,

cd sc3-plugins
mkdir build && cd build
cmake -DSC_PATH=/path/to/sc/ -DCMAKE_BUILD_TYPE=Release -DSUPERNOVA=OFF ..
cmake --build . --config Release
sudo cmake --build . --config Release --target install

Note : I installed SuperCollider from apt install command.
I took care that the path /path/to/sc above leads to the source directory github release that corresponds to the same version as the one from the SC installed via apt install command.

Everything seems to work, I test several extensions, and they all work as expected (Decimator, Tartini, OteyPiano, FFTCrest, …).

Unfortunately, the NHHAll extension does not work. It seems to be correctly indexed into the library, but when executing a bit of code such as

x = {NHHall.ar(SinOsc.ar([330, 440]))}.play;

The consol tow me the following error

-> Synth('temp__4' : 1015)
exception in GraphDef_Recv: UGen 'NHHall' not installed.
*** ERROR: SynthDef temp__4 not found
FAILURE IN SERVER /s_new SynthDef not found

Note : if I execute a code with a stereo signal only,

x = {NHHall.ar(SinOsc.ar(440))}.play;

the consol tells me that

The preceding error dump is for ERROR: NHHall expects a stereo signal, but received a size % array.

which, I guess, means that NHHAll is correctly referenced in the library.

I did some digging, and found that the extension files seem to be in the right location:

In /usr/local/share/SuperCollider/Extensions/SC3plugins/NHUGens, the directory HelpSource and the file NHHall.sc are present.

Most importantly, the file /usr/local/lib/SuperCollider/plugins/NHHall.so exists as well.

I am a bit short on idea right now. I would greatly appreciate any help or idea.

Here is the full consol log after starting and booting the server. I don’t see any particular issue here.

compiling class library...
Warning: Ignoring XDG_SESSION_TYPE=wayland on Gnome. Use QT_QPA_PLATFORM=wayland to run on Wayland anyway.
	Found 862 primitives.
	Compiling directory '/usr/share/SuperCollider/SCClassLibrary'
	Compiling directory '/usr/share/SuperCollider/Extensions'
	Compiling directory '/home/sly/.local/share/SuperCollider/Extensions'
	Compiling directory '/home/sly/.local/share/SuperCollider/downloaded-quarks/SCLOrkSynths'
	Compiling directory '/home/sly/.local/share/SuperCollider/downloaded-quarks/AlgaLib'
	Compiling directory '/home/sly/.local/share/SuperCollider/downloaded-quarks/JITLibExtensions'
	Compiling directory '/home/sly/.local/share/SuperCollider/downloaded-quarks/scel'
	Compiling directory '/home/sly/.local/share/SuperCollider/downloaded-quarks/ArdourOSC'
	numentries = 1556002 / 27065200 = 0.057
	7624 method selectors, 3550 classes
	method table size 24899192 bytes, big table size 216521600
	Number of Symbols 17954
	Byte Code Size 548852
	compiled 627 files in 0.88 seconds

Info: 16 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.
Couldn't set realtime scheduling priority 1: Operation not permitted
Class tree inited in 0.08 seconds
WARNING: Extension in '/home/sly/.local/share/SuperCollider/downloaded-quarks/AlgaLib/Classes/AlgaProxySpace.sc' overwrites Symbol:ar in main class library.
WARNING: Extension in '/home/sly/.local/share/SuperCollider/downloaded-quarks/AlgaLib/Classes/AlgaProxySpace.sc' overwrites Symbol:kr in main class library.
Intentional overwrites must be put in a 'SystemOverwrites' subfolder.


*** Welcome to SuperCollider 3.11.2. *** For help type C-c C-y.
Couldn't set realtime scheduling priority 1: Operation not permitted
Emacs: Index help topics in 0.727 seconds
Emacs: Built symbol table in 0.0551 seconds
server 'localhost' unresponsive, rebooting ...
'/quit' message sent to server 'localhost'.
Booting server 'localhost' on address 127.0.0.1:57110.
Found 46 LADSPA plugins
JackDriver: client name is 'SuperCollider'
SC_AudioDriver: sample rate = 48000.000000, driver's block size = 1024
JackDriver: connected  Built-in Audio Analog Stereo:capture_FL to SuperCollider:in_1
JackDriver: connected  Built-in Audio Analog Stereo:capture_FR to SuperCollider:in_2
JackDriver: connected  SuperCollider:out_1 to Built-in Audio Analog Stereo:playback_FL
JackDriver: max output latency 21.3 ms
JackDriver: connected  SuperCollider:out_2 to Built-in Audio Analog Stereo: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

Bonus question: If anyone has a solution for the error Couldn't set realtime scheduling priority 1: Operation not permitted on Ubuntu, I would be very interested :wink:

P.S.: Sc is a wonderful tool. Thank you to all the developers!

Best regards.

I think these lines…

	Compiling directory '/usr/share/SuperCollider/SCClassLibrary'
	Compiling directory '/usr/share/SuperCollider/Extensions'

should be these directories

/usr/local/share/SuperCollider/Extensions/SC3plugins/NHUGens

I believe when you run …

sudo cmake --build . --config Release --target install

… you can pass a directory to install (maybe?).

If not, copy the files from /usr/local/share/SuperCollider/Extensions/SC3plugins/NHUGens to /usr/share/SuperCollider/Extensions.

However,sc3-plugins is in the package manager … Ubuntu – Details of package sc3-plugins in jammy … its not a good idea to mix and match.

Couldn't set realtime scheduling priority 1: Operation not permitted Is this a jack problem and did you do the weird audio group thing?

I think these lines…

```
	Compiling directory '/usr/share/SuperCollider/SCClassLibrary'
	Compiling directory '/usr/share/SuperCollider/Extensions'
```

should be these directories

```
/usr/local/share/SuperCollider/Extensions/SC3plugins/NHUGens
```

I *believe* when you run …

```
sudo cmake --build . --config Release --target install
```

… you can pass a directory to install (maybe?).

• On the sc3-plugins Github page, it mentions indeed an option to set the installation target. But I am aware that SC looks in both directories, system-wide /usr/local/share/SuperCollider/Extensions and user-specific ~/.local/share/SuperCollider/Extensions .
Anyway, I did change the option, thus calling CMake as follows

cmake -DSC_PATH=/home/sly/GitCloned/SuperCollider/SuperCollider-3.11.2-Source -DCMAKE_BUILD_TYPE=Release -DSUPERNOVA=OFF -DCMAKE_INSTALL_PREFIX=/home/sly/.local ..

It did install the extensions into my home directory, but it doesn’t solve the problem: the UGen NHHAll is not recognized by the server, but the other extensions are. So same issue as initially.

• Installing sc3-pluging via apt get install is actually worse: no extensions at all are either indexed in the libary, or recognised by the sc server.

• About the error Couldn't set realtime scheduling priority 1: Operation not permitted. In the meantime, I did the audio group modification .
After logout+login it still didn’t work. But I just checked at the instant, and now the error message has disappeared. I have rebooted the machine several time in the meantime, so that would explain why. Finger crossed.