S C O T T P E T E R S E N ∞ E L M U C O ∞ S C A C I N T O . C O M

homepage for scott eric petersen, el muco, and all things electronic

SuperCollider On Ubuntu

[WARNING:] This page is sad and old and out-of-date.  Please check out this new updated page with new updated instructions that are new and happy and up-to-date.  The below information should be read out of historical curiosity only.

Because getting SC3 to work on Linux seems to be a major source of sadness and unnecessary frustration (to all including myself), I’ve decided to post on going from zero to SC3 hero in a few (ha!) short and easy steps.

Installing SuperCollider from the Repositories

1) If you are on Ubuntu, enable the repositories by entering the following from your shell:

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys FABAEF95


sudo add-apt-repository ppa:supercollider/ppa


sudo apt-get update

2) If you run the following command and hit tab to auto-complete, you can see the packages available:

sudo apt-get install supercollider

supercollider A real time audio synthesis programming language
supercollider-common A real time audio synthesis programming language
supercollider-common-dev Common development files for SuperCollider
supercollider-dev Development files for SuperCollider
supercollider-doc Documentation for SuperCollider
supercollider-emacs SuperCollider mode for Emacs
supercollider-gedit SuperCollider mode for gedit
supercollider-plugins A real time audio synthesis server
supercollider-quarks SuperCollider User Contributions
supercollider-server A real time audio synthesis server
supercollider-server-dev Development files for SuperCollider server
supercollider-vim SuperCollider mode for Vim

You will need at least supercollider-common and supercollider-server (which install with the dummy package “supercollider”) in order to run SC3.  However, the following are really necessary to get the most out of the program:
supercollider-gedit (best interface, IMHO) supercollider-doc (you will need these, trust me) supercollider-plugins (moar soundz!) and supercollider-quarks (even moar soundz!)

Here’s what i installed:

Notice it is installing dependencies for you. That’s nice. Assuming your distro has the old jack (not Jack2) everything should install peachy. However you will notice there’s a problem with mine: the install wants to uninstall Jack2 and install the old Jack. NOT OKAY.

Here are instructions for building with Jack2. If you don’t care and are fine with the old jack, just let the installer do its thing and skip to the section below Starting the SuperCollider Editor.

Building for Jack2

1) Create a directory for the source:

mkdir supercollider

2) ‘cd’ into that dir and download the repo package source:

sudo apt-get source supercollider

if you get a dpkg-dev error after the download, you may need to install it:

sudo apt-get install dpkg-dev

Your folder should then look something like this:

3) Edit the ‘control’ file to depend on Jack2 rather than ye olde jack

cd supercollider-3.4

sudo nano debian/control

this will open the control file in the nano editor.

4) Change libjack-dev (>= 0.100) to your libjack install.  Mine is libjack-jackd2-dev which i found out by searching for libjack in my sources.  My version is 1.9.5, but i left the dependency as (>=1.9.0)

5) ‘cd’ back to the supercollider-3.4 directory and build the debian packages:

sudo dpkg-buildpackage -rfakeroot -uc -b

Assuming you have all your dependencies met, you will have a directory full of delicious .deb files.  If, however, like me your system failed to live up to the dev standard, you will have to install the dependencies.

6) If you got errors, install whatever is listed either in your FAIL message or in the control file above.

sudo apt-get install libavahi-dev … (etc., etc.)

then try again:

sudo dpkg-buildpackage -rfakeroot -uc -b

(this time mine worked!  great!)

7) Install the packages!

cd out to the root supercollider directory you made to start with:

cd ..

show the files:


install the packages:

sudo dpkg -i supercollider_3.4-0ubuntu1~maverick1_amd64.deb supercollider-common_3.4-0ubuntu1~maverick1_all.deb supercollider-doc_3.4-0ubuntu1~maverick1_all.deb supercollider-gedit_3.4-0ubuntu1~maverick1_all.deb supercollider-plugins_3.4-0ubuntu1~maverick1_amd64.deb supercollider-quarks_3.4-0ubuntu1~maverick1_all.deb supercollider-server_3.4-0ubuntu1~maverick1_amd64.deb

(If you get errors on the output, be sure you have at least the base supercollider (supercollider…amd64.deb or whatever your package is) the supercollider-common and the supercollider-server installed.  Then try to install the gedit, plugins, quarks, or what-have-you.)

Starting the SuperCollider Editor (Gedit)

1) I will test my install by opening gedit from the command line:


2) Then i go to edit->preferences->plugins and enable the “sced” plugin.

3) Now under the ‘tools’ menu there should be a ‘SuperCollider Mode’ button.  PRESS IT!!!


So you should now have a working install of SuperCollider, albeit without the convenience of a GUI server window or the possibility of GUI anything…


Installing SwingOSC

Before installing SwingOSC (the GUI library for SC3) check that you have java installed, as it is required for Swing to work.

Typing ‘java -version’ or just ‘java’ and hitting TAB will let you know if you have it installed.  My system sadly does not.

Lore holds that sun-java6-dev is in the “universe” repo, but “universe” and “multiverse” aren’t there anymore, and i’m not sure which of the four extra repos it is in, so I just tick them all.  (Lazy, I know…)

1) Open Synaptic Package Manager

sudo synaptic

2) Go to Settings->repositories->Other Software and tick off the boxes in there.

Once back at the main window, hit “reload”

3) Type sun-java in the quick search window to show the sun-java6 packages.  I can’t remember which exactly I need, so I’ll install them all.

(back in terminal having closed synaptic [otherwise apt will fail])

Accept the proprietary license required of the Java install.  (oh proprietary software.)

SwingOSC is no longer included with supercollider, so you have to download it from Sourceforge.  (Thanks to Bruno TR for the heads-up.)

4) First, if you don’t have a SwingOSC folder at /usr/share/SuperCollider/ go ahead and make one.

sudo mkdir /usr/share/SuperCollider/SwingOSC;

5) Download SwingOSC from this link:  http://sourceforge.net/projects/swingosc/

6) Unzip the folder where you want, resulting in a SwingOSC folder. (I will refer to this as */SwingOSC/ from hereon out, the asterisk indicating your unique folder location.)

7) Cd into */SwingOSC/build/ and copy the SwingOSC.jar file to /usr/share/SuperCollider/SwingOSC

sudo cp */SwingOSC/build/SwingOSC.jar /usr/share/SuperCollider/SwingOSC

(you can put this anywhere as long as you point to it in your .sclang.sc startup file.  more on this below)

8) Copy the SwingOSC help folder to /usr/share/SuperCollider/Help

sudo cp -r */SwingOSC/SuperCollider/Help/SwingOSC/ /usr/share/SuperCollider/Help

9) Copy the SCClassLibrary files to /usr/share/SuperCollider/Extensions

sudo cp -r */SwingOSC/SuperCollider/SCClassLibrary/SwingOSC /usr/share/SuperCollider/Extensions/

SwingOSC is installed now, but to get it to start automatically and give me (and you) the GUI server I (you) so want and deserve, we must create a supercollider startup file.  This is really easy, though, so don’t give up now!

Creating a Startup File

1) Cd to your home directory and create a file called


( you can type thisProcess.platform.startupFiles; in supercollider and evaluate it to find the path to your startup file.  On Ubuntu, it’s ~/.sclang.sc)

2) I enter the following text into mine, you can customize yours as you see fit!

SwingOSC.program = "/usr/share/SuperCollider/SwingOSC/SwingOSC.jar"; g=SwingOSC.default; g.boot; SwingOSC.default.waitForBoot({s.makeGui}); 

 3) Save the file

That’s it!

Now fire up gedit and see if it worked…



Many thanks to the sc3 mailing list, and specifically to those who work tirelessly on the linux port.  The only reason I know anything about SC3 is because of this list.  To name a few, but certainly not all:

Dan Stowell
Julian Rohrhuber-3
Josh Parmenter
Tim Blechmann
Miguel Negrao

And so, from a completely SC3 devoid machine to a fully-functional install with GUI support and Sced IDE all in … just under 2 hours.  I was making this post at the same time, however.  This should have taken you 15 minutes ;)

Thanks for reading.  If you have questions, comments, or an easier way to do any of the above, please comment.


I updated the post to reflect some changes made to the package content (you have to manually download SwingOSC now, etc.) and tested the post out by installing SC3 and Swing on a virtualized Linux Mint install. Everything went peachy with the SC3 and Swing installs and the help system “just works.”

The total install time was about 9 minutes without configuring Jack. Mint already had Java-6 installed too, so that saved a step. Here’s a little pic for motivation. ;)

Filed under: SC3 - Code - Music - More, , , , , , , , , , , ,

41 Responses

  1. Dave Britton says:

    very nice, thank you!

  2. yau says:

    hello ! i unsuccessfully installed ubuntu
    can you please help me how to create the .sclang.sc file ?
    i can’t get to install sun-java6 it can’t locate the files either
    i’m on ubuntu 10.10
    thank you : hello ! i unsuccessfully installed ubuntu
    can you please help me how to create the .sclang.sc file ?
    i can’t get to install sun-java6 it can’t locate the files either
    i’m on ubuntu 10.10
    thank you : )

  3. Bruno TR says:

    Thanks a lot! It was very helpful. The only difference in my case was: I did not have the folder ~/supercollider/supercollider-3.4/option_installs/SwingOSC/SuperCollider after installing supercollider. So I just went to the SwingOSC website and downloaded it from there.

    * Go to http://www.sciss.de/swingOSC/

    * Look for “download current version” or something to that effect

    * Download and save the zip file in your Downloads folder or anywhere you like

    * Right click the zip file, “Extract here”

    * Go to this folder:

    cd /usr/share/SuperCollider/

    * If you don’t have a subfolder “SwingOSC” here, create one:

    sudo mkdir SwingOSC

    * Now go to the folder you just extracted earlier from the zip file — in my case, it was in my Downloads folder. Cd to the subfolder “build” in there:

    cd Downloads/SwingOSC/build

    * That’s where the file SwingOSC.jar lives. Copy SwingOSC.jar file to /usr/share/SuperCollider/SwingOSC

    sudo cp SwingOSC.jar /usr/share/SuperCollider/SwindOSC/.

    * Etc… (continue from step 5 of this this page’s tutorial, always using your downloaded SwingOSC folder as the source for files to be copied).

    • 01ivier says:

      Thanks for your comment because I was in the same situation as you
      Nevertheless, I think there is a mistake in your last command line.
      It should be :

      sudo cp SwingOSC.jar /usr/share/SuperCollider/SwingOSC/

      with a g instead of the d


    • scacinto says:

      Thanks Bruno – i went ahead and edited the post to reflect the change in the package.


  4. nathanbontrager says:

    I’m having trouble with the startup file. Note that I’m totally new to both SC and Linux/Ubuntu. I’ve created a file in texteditor with the code given in the tutorial and saved it as .sclang.sc. I have the SwingOSC.jar file located in the correct folder and saved the .sclang.sc file to my home folder.

    The first issue is that I cannot find the file that I created. Nothing I try and save with a period at the beginning of the file name shows up in any folders (can’t find it via terminal or in folders). If I save it as “sclang.sc” it shows up but of course isn’t the right file name. Despite this, if I try and re-save the .sclang.sc file under that same name it tells me that file already exists and asks if I want to replace it, but if I do it still doesn’t appear. Is the period a way of somehow hiding the file or is this an abnormality?

    When I try and switch to SuperCollider mode in the texteditor/gedit I get the following messages:

    compiling class library..
    NumPrimitives = 548
    compiling dir: ‘/usr/share/SuperCollider/SCClassLibrary’
    compiling dir: ‘/usr/share/SuperCollider/Extensions’
    pass 1 done
    Extension overwriting SimpleNumber:asTimeString
    in file ‘/usr/share/SuperCollider/Extensions/SC3plugins/LoopBufUGens/classes/LJP Classes/Extensions/SimpleNumber-asTimeString.sc’.
    Original method in file ‘/Common/Math/SimpleNumber.sc’.
    numentries = 1241118 / 18964960 = 0.065
    5740 method selectors, 3304 classes
    method table size 9889996 bytes, big table size 75859840
    Number of Symbols 14699
    Byte Code Size 495593
    compiled 535 files in 0.56 seconds
    compile done
    Couldn’t set realtime scheduling priority 1: Operation not permitted
    Help tree read from cache in 0.033283948898315 seconds
    LID: event loop started
    Class tree inited in 0.05 seconds
    Welcome to SuperCollider, type ctrl-U for help
    Couldn’t set realtime scheduling priority 1: Operation not permitted
    booting java -Dswing.defaultlaf=com.sun.java.swing.plaf.gtk.GTKLookAndFeel -jar “/usr/share/SuperCollider/SwingOSC/SwingOSC.jar” -t 57111 -L -i -h
    SwingOSC server already booting
    Unable to access jarfile /usr/share/SuperCollider/SwingOSC/SwingOSC.jar
    RESULT = 1
    SwingOSC server failed to start
    SwingOSC server failed to start

    Please help, I’ve tried wading through the forums to find answers and cannot find anything that seems to help.

    • scacinto says:

      Hi Nathan,

      In Unix land, a dot preceding a file name = a hidden file. You can see these files by typing “ls -a” in your shell (-a = show all files) or by checking the “show hidden files” in Nautilus or your file browser in Ubuntu. (I think this is found under the “view” drop-down menu.

      >Unable to access jarfile /usr/share/SuperCollider/SwingOSC/SwingOSC.jar

      This line in the above error message means that SC3 is expecting the SwingOSC.jar file at that path. Is this where you placed your SwinOSC.jar file?

      • nathanbontrager says:

        Hi Scott,

        Thanks for the speedy reply.

        So I see that the .sclang.sc file is, indeed, in my home folder.

        My SwingOSC.jar file is in the location specified in that path. I noticed you updated some things on the tutorial. Would you suggest just trying it from the ground up again or do you have any other suggestions?


    • scacinto says:

      Hi Nathan, I’m not sure what to tell you. I just tested the tut today on a fresh linux mint install and everything worked fine. I would suggest checking your .sclang.sc file and making sure that it looks like it does above:

      SwingOSC.program = “/usr/share/SuperCollider/SwingOSC/SwingOSC.jar”; g=SwingOSC.default; g.boot; SwingOSC.default.waitForBoot({s.makeGui});

      That said, SC is looking for the SwingOSC.jar file in the correct location, so it seems the problem is not with the startup file. You are sure your SwingOSC.jar file is actually at /usr/share/SuperCollider/SwingOSC/? I don’t want to sound insulting, but if everything is where it should be, and the startup file has the right information (path) then it should work; there are no tricks to it, and permissions do not seem to be an issue from what I can tell.

      • nathanbontrager says:

        Not insulting at all, I’m sure I’ve goofed somewhere along the way. I tried re-entering the file both in the form given in your comment and also what’s in the tut (which is different than what was there before, right?) and both do not work, albeit with slightly different error messages than before. I’m going to go through it again from the top to make sure I didn’t miss anything. Thanks again.

  5. Matt says:

    One more thing to watch out for:

    I set this up on ubuntu studio – Natty with Scott’s excellent instructions, but when I first tried to use the ctrl-U help feature in gedit/sced, it asked me to select a filebrowser, giving me the choice between nautilus and Thunar. You will want to use Thunar, which will open the .html files in your default browser. Nautilus will complain that it can’t open the file because it’s not a folder (duh). If you accidentally choose nautilus, you can fix it by editing (OF ALL THINGS) ~/.config/xfce4/helpers.rc. Change the line that says:




    (note the upper-case T).

    Let this be a lesson to all of us. =o)

  6. 01ivier says:

    Thanks a lot for this tutorial.
    With the Bruno TR’s comment, it works fine for me.

    Just a question : are you sure that this command line is the good one ?

    sudo cp -r Help/ /usr/share/SuperCollider/Help

    Don’t we have to use this one instead ?

    sudo cp -r Help/SwingOSC /usr/share/SuperCollider/Help

    By the way, I translate in french parts of your article for our wiki.

    I hope you don’t mind.


    • scacinto says:

      Hi O1ilier,

      I don’t think it matters as anything in the Help folder is searched recursively. But you can certainly strip out the extra folder.

      I’ll change the post above tomorrow to reflect that the package no longer comes with the ‘optional installs’ folder and that you have to download the package from Sciss’s site.


  7. Tasos says:

    Hi to all
    i ve done everything the tutorial says and i think i got it right.
    the thing is that when i try to run the swingosc gui server i get this messages:

    booting java -Dswing.defaultlaf=com.sun.java.swing.plaf.gtk.GTKLookAndFeel -jar “SwingOSC.jar” -t 57111 -L -i -h
    Unable to access jarfile SwingOSC.jar
    RESULT = 1

    everything is in the right place, java works and i use SC with no problem just without the gui but the thing is that without it i cant use .plot too..

    I thought that something is wrong with the permissions so i ve changed them but nothing happend

    i see that the post is quite recent, so if you have any ideas i d be veeeery gratefull

    thanx a lot

    • scacinto says:

      can you confirm the location of your SwingOSC.jar file? The error message leads me to believe the correct path is not being set in your startup file.

      • luisfernando06 says:

        (i dont speak english)
        i had the same problem. my quetion is where do I put the startup file??

        thanx a lot

  8. Halley says:

    Thanks, this was really helpful!

  9. Hello. First of all thank you for such a complete tutorial.

    I followed this tutorial in an installation of Linux Mint 11 and it works partially. I mean, I’m able to run it and to try some commands (such as play, for instance), however when I start the environment, I get the error:
    Couldn’t set realtime scheduling priority 1: Operation not permitted

    And, when I boot the server I get other errors:
    Cannot connect to server socket err = No such file or directory
    exception in GrafDef_Load: UGen ‘Chromagram’ not installed.

    Because of this second error, I’m not able to use the method Scope.

    Anyone has any idea what’s going on here?

    Thank you for your help.

    • scacinto says:

      Hi there,

      Your first error is likely caused because you are not a member of the audio group. This means that you cannot set realtime priority. You should be able to find instructions online for adding realtime permissions in Ubuntu. (Linux Mint is a modified Ubuntu distro.) As for the second error, I haven’t ever encountered this before. You should post this to the Nabble SuperCollider group forum / mailing list. Just google Nabble SuperCollider and you will find the forum. This probably has to do with the latest binary release and may be a bug.

    • scacinto says:

      I should clarify too, that you should be starting Jack before starting SC and you should be starting it in Real-time mode. If you cannot start Jack in Real-time mode, this means that you aren’t a member of the group “audio” on your machine. Note that this is not fatal; you can run Jack and SC when not in real-time mode, you will simply get this error and possible encounter other latency-related issues.

  10. Thank you for your quick answer.
    First, my user (wanderer) is part of the audio group, as you can see in the output of the command groups:
    groups wanderer
    wanderer : wanderer adm dialout cdrom audio www-data plugdev lpadmin admin sambashare vboxusers

    I never thought I’d have to start jack first. I started now with:
    jackd -R -d alsa

    And the error related with realtime disappeared. Now, the only error is the one which states that chromogram is not istalled.

    I’ll start a thread in the sc mailing list to see if anyone can help me.

    Thank you for your help.

  11. I’ve done a re-installation from scratch in a ubuntu virtual machine with the help of the video howto in youtube – http://www.youtube.com/playlist?list=PL6859CD3B93661B86 – and I’ve managed to made SC work well in my computer:)

    During this installation I’ve looked again and your tutorial in this site and notices you have a style problem in the code of 2) in the part Creating a Startup File, because with both Firefox and Chromium (I didn’t tried with other browsers) the text to put in the startup file doesn’t appear complete.
    It reads:
    SwingOSC.program = “/usr/share/SuperCollider/SwingOSC/SwingOSC.jar”; g=SwingOSC.default; g.boot; SwingOSC.d

    but it should read:
    SwingOSC.program = “/usr/share/SuperCollider/SwingOSC/SwingOSC.jar”; g=SwingOSC.default; g.boot; SwingOSC.default.waitForBoot({s.makeGui});

    I only got the complete info to put in the file from the source code of this page and from the youtube video (where the code is a bit different because of the virtual machine).

    Anyway, thanks a lot for your help, it was really useful to me.

    • scacinto says:

      Hi there. Actually, the code is all there, it is just not displayed because of WordPress awesomeness. If you double/triple click the code to select all of it and paste it to a text document, you will see the complete code.

  12. pablito says:

    wow, still using jack < 2 after all this time ?

    believe me, once you'll try jackdmp (aka jack2) you'll never go back ;)

    • scacinto says:

      “Here are instructions for building with Jack2. If you don’t care and are fine with the old jack, just let the installer do its thing…” This is right above the section called “Building for Jack 2″…

  13. julian rios says:

    when I try to run the GUI server it shows the following message:
    booting java -Dswing.defaultlaf=com.sun.java.swing.plaf.gtk.GTKLookAndFeel -jar “SwingOSC.jar” -t 57111 -L -i -h
    Unable to access jarfile SwingOSC.jar
    RESULT = 1
    SwingOSC server failed to start

    I think the path in the startup file is ok, I have it the same as this guide:
    SwingOSC.program = “/usr/share/SuperCollider/SwingOSC/SwingOSC.jar”; g=SwingOSC.default; g.boot; SwingOSC.default.waitForBoot({s.makeGui});

    also tried pointing it to the original folder, but its the same:

    Im just getting started with linux, so I may be missing something obvious here

  14. julian rios says:

    hi there!
    just got it working!! out of desperation added a period before sclang.sc (.sclang.sc) that’s that :) I really don’t know what happened but Im so f&%$%ng elated right now!

    • scacinto says:

      yeah, the period is important ;) in unix/linux land, a period before a file name means the file is invisible. most config folders and files are invisible. regardless, if a program is looking for a specific file, visible or not, the file must be named correctly. (obviously.) I’m glad you got everything working. cheers!

  15. Hi,

    thanks for the tutorial. So far everything is running fine. However, the scope refuses to display something useful; It just stays black… Any idea?


  16. jcr says:

    Hey thanks for the nice tutorial.
    I’m doing some installations of Xubuntu 12.04 LTS on old P4 computers… at one point I got it working but then lost that installation to a configuration error. Now when I try to follow your instructions I get an error on the command:

    sudo add-apt-repository ppa:supercollider/ppa

    after the [ENTER] to continue prompt I get what looks like a python error ending in the line “ValueError: cannot convert float NaN to integer”

    Anyone have a clue as to what might be the problem?
    (full error below)

  17. jcr says:

    and the error :)

    Exception in thread Thread-1:
    Traceback (most recent call last):
    File “/usr/lib/python2.7/threading.py”, line 551, in __bootstrap_inner
    File “/usr/lib/python2.7/dist-packages/softwareproperties/ppa.py”, line 99, in run
    File “/usr/lib/python2.7/dist-packages/softwareproperties/ppa.py”, line 132, in add_ppa_signing_key
    tmp_keyring_dir = tempfile.mkdtemp()
    File “/usr/lib/python2.7/tempfile.py”, line 322, in mkdtemp
    name = names.next()
    File “/usr/lib/python2.7/tempfile.py”, line 141, in next
    letters = [choose(c) for dummy in “123456”]
    File “/usr/lib/python2.7/random.py”, line 274, in choice
    return seq[int(self.random() * len(seq))] # raises IndexError if seq is empty
    ValueError: cannot convert float NaN to integer

  18. scacinto says:

    Hi JCR, can you make sure you have the “python-software-properties” package installed?

    sudo apt-get install python-software-properties

    The error output looks like it is, or at least python is trying to do what you are telling it, but lets start there.

    My next step would be to make sure all my python packages are up-to-date. It seems like something in your python package config is wonked out.

  19. edfishmusic says:

    Thanks this really saved my bacon!

  20. Egor says:

    Hi , I am following your instructions , but : why a have n,t supercollider-3.4 directory ? May be I did n,t something … thank you

  21. […] it people. I hope you’re not disappointed. If you want to remember the Bad ol’ Days, check out this post on installing 3.4 on Ubuntu from back in 2011. Just don’t try to follow the […]

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

My Other Awesome Sites [•_•]

Assault! 375 Aural Assaults!
About me! About me!
MySpace! MySpace!
Google+! Google+!
My (soon-to-be) Company! My (soon-to-be) Company!

Enter your email address to subscribe to this awesome blog and receive notifications of new posts by email!

Join 76 other followers


P O S T E R S !







INI new haven

Handmade instruments by Scott Petersen and Brian Kane at Artspace New Haven

%d bloggers like this: