Problam with linux (Ubuntu20.04) and supercollider

hello!
i am new in supecollider and in linux, hope its the right place for this question
i just cant get supercollider to work. when i try to play a sine wave a fm squareish kind of sound plays.
in the supercollider post window its written (not as an error) Couldn’t set realtime scheduling priority 1: Operation not permitted
And
info: 4 methods are currently overwritten by extensions. To see which, execute:
MethodOverride.printAll

its a new dell computer with a fresh ubuntu 20.04 install. i set jack2 and add my name to the audio list. i press start on the jack2 gui before run supercollider. i had ubuntu install before with the same problem so i reinstall ubuntu on my computer and got the same problem.
i will very appriciate any help, im really into learning supercollider and i cant find answers anywhere online…
btw sorry about my english lol :smile:
yotam

Hi Yotam. Sounds like you need to allow your user realtime permissions. See these instructions How do I configure my linux system to allow JACK to use realtime scheduling? | JACK Audio Connection Kit

sadly its not working, i have my user name in the audio group and i followed the instructions on this page already, and i still have this problem.
the post window not telling me the “Couldn’t set realtime scheduling priority 1: Operation not permitted”

anymore, only the info:" 4 methods are currently overwritten by extensions. To see which, execute:
MethodOverride.printAll"

when i play a sine wave it still sounds bad

hare is a copy of all my posy window:

compiling class library…
Found 845 primitives.
Compiling directory ‘/usr/share/SuperCollider/SCClassLibrary’
Compiling directory ‘/usr/share/SuperCollider/Extensions’
Compiling directory ‘/home/yotam/.local/share/SuperCollider/Extensions’
numentries = 819910 / 12168006 = 0.067
5437 method selectors, 2238 classes
method table size 13245656 bytes, big table size 97344048
Number of Symbols 12276
Byte Code Size 368207
compiled 318 files in 0.30 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.
Class tree inited in 0.01 seconds

*** Welcome to SuperCollider 3.10.0. *** For help press Ctrl-D.
SCDoc: Indexing help-files…
SCDoc: Indexed 1349 documents in 0.46 seconds
→ localhost
Booting server ‘localhost’ on address 127.0.0.1:57110.
Found 0 LADSPA plugins
JackDriver: client name is ‘SuperCollider’
SC_AudioDriver: sample rate = 48000.000000, driver’s block size = 1024
JackDriver: connected system:capture_1 to SuperCollider:in_1
JackDriver: connected system:capture_2 to SuperCollider:in_2
JackDriver: connected SuperCollider:out_1 to system:playback_1
JackDriver: connected SuperCollider:out_2 to system:playback_2
SuperCollider 3 server ready.
JackDriver: max output latency 42.7 ms
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

The easiest way to see if a Linux system is set up properly for audio is to run this script:

It will tell you what needs improving. I don’t know Ubuntu very well but have you tried installing a realtime kernel ?

sadly its not working, i have my user name in the audio group and i followed the instructions on this page already, and i still have this problem.
Have you logged out and back in?
What’s the result of the
$ groups
command?

so the $ groups gives me this line:
yotam adm cdrom sudo audio dip plugdev lpadmin sambashare

so it looks like i am in the audio group. i also logged out and did a full restart with the same result

thanks,
i currently dont have a a realtime kernel, do i need one so supecollider will work?
i am a new linux user and its look like the real time karnel is not in ubuntu ppa and i am not sure i can get it right.
i run this cool script on the sound configuration and i think that what came up shuold not cause this problam. its

  1. Checking swappiness… 60 - not good
    2.Checking checking sysctl inotify max_user_watches… < 524288 - not good
  2. Kernel with Real-Time Preemption… not found - not good
  3. Checking CPU Governors… CPU 0: ‘powersave’ CPU 1: ‘powersave’ CPU 2: ‘powersave’ CPU 3: ‘powersave’ CPU 4: ‘powersave’ CPU 5: ‘powersave’ CPU 6: ‘powersave’ CPU 7: ‘powersave’ - not good

what do you think? shuld i change it?

  1. Would skip that one
  2. You could install a lowlatency kernel, it’s in Ubuntu I think. All though not strictly needed probably.
  3. It can be a source of xruns, so it’s recommended to set it to ‘performance’ when doing audio work.

In my experience running SC on Ubuntu can work but it took me a while to get it working ok. Installing ubuntustudio-controls made everything work immediately.

i install lowlatency kernel, change the cpu to performance and install ubuntustudio-controls
all with no success.
still when try to play a sine i get agressive waveshped sound. :frowning_face:

Do you’ve a decent soundcard, or are you using a onboard soundcard?

Did you test with jack (qjackctl) and a softsynth like zynaddsubfx/ zyn-fusion?

solved for one mintue and broken agin

after install the ubuntu studio control all the computer sound get distorted strongly, i try to go to supercollider and turn the volume down. in -80db it was proper sine wave.
so i try with the ubuntu studio control qasmixer and uther gui to change this with no success.
i can get proper sound in really low levels or crazy wavshping distorions

What I had been told some years ago was to use a low latency kernel. Real-time kernel may be overkill.

FWIW I was never able to configure the interrupt priorities successfully in stock Ubuntu. I always had problems until I switched to Ubuntu Studio.

Edit: I see others already covered those points :laughing:

New idea: I wonder if the endianness is reversed. If the soundcard expects the most significant byte first and JACK/ALSA are supplying least significant byte(s) first, that would produce insane distortion. I have a soundcard where, sometimes, the mic inputs will initialize with the wrong endianness and I have to cycle the soundcard power to fix it. When the endianness is wrong, the mic input is crazy loud and noisy.

Flower asked about your soundcard… Details? It seems something is not right in the connection to the soundcard.

hjh

On my ThinkPad P1 Gen 3 running Arch i had to use a really strange buffer size (i think it was 1004, but can’t find the source right now), and check ”Force 16-bit” in Cadence / QJackControl. Otherwise it got insanely loud and distorted. Maybe something similar on your system?

Since a while (i think since installing PipeWire) i don’t have to do this anymore. I just works. (Other issues like higher latency could occur though).

Can you show the code you used to play the sine wave? I wonder if maybe the amplitude is too high and it causes clipping and distortion?

Oh, I remember this issue now – it’s 1008 (16 x 63) and you’d also have to set s.options.blockSize = 16.

^^ This is an utterly bizarre hardware constraint and I can’t imagine why the ···· a manufacturer would do this. But it’s also a real issue that was reported here before. Worth a try.

hjh

1 Like

hi, thanks to everybody for trying to help =)
i solve it with changing to different sound interface. when try with a motu avb its just work.
thanks a lot to all of you! :ok_man: :no_good_man: :tipping_hand_man: :raising_hand_man:

well if you have been able to use a motu avb on ubuntu, that’s an achievement! Have you done e.g. 15 mins testing? Because I bought one and consistently it glitched after 10 mins, as reported by others.

In any case, I seems not to have problems with ubuntu vanilla, concerning priority I just had to set it a couple of times

Best

-a-

1 Like

Yup, that was me you helped with this bizarre one. I think we’ll see it more and more with ThinkPads. I am currently checking in my startup file to see what audio device is connected to jackd and then selecting 16 for the built-in if it’s the weird one.