• jon@schemawound.com
Supercollider
Supercollider, Windows 10 and Sublime Text 3

Supercollider, Windows 10 and Sublime Text 3

For quite a while now I have been trying to get Supercollider working on my Windows 10 system to no avail. I believe the problem started after installing JACK for windows. After uninstalling and trying a number of things I am still no closer to solving the issue. Despite seeming to boot fine SCIDE will not execute any code that has been entered. When you quit you are left with zombie SCSynth and SCLang processes that must manually be killed by task manager. I have tested that the server does actually work by seeing that commands entered in my startup file do execute and generate audio.

In order to try to work around this I have turned to an old friend. I’ve previously blogged about setting up Sublime Text 2 with Supercollider before the SCIDE was created. In the meantime Sublime Text 3 has been released and a corresponding new Supercollider package as well.

After installing both Supercollider and Sublime Text 3:

  • Press Ctrl+Shift+P within ST3
  • Begin typing “Install” into the Command Palette and select “Package Control: Install Package”
  • Select “SuperCollider ST3”
  • After installation you will want to edit your settings and key bindings file. Preferences -> Package Settings -> SuperCollider -> Settings is supposed to pull up this file but it could not be located on my machine.
  • I copied the files from the project Github and placed the settings file in “C:Users*MYUSERNAME*AppDataRoamingSublime Text 3PackagesUser”
  • I copied the key bindings into my user key bindings file Preferences -> Keybindings
  • I changed my default key bindings as it attempts to use Ctrl-S as the start of it’s keyboard chords. Ctrl-S is mapped to save in ST3 so I chose to use Ctrl-W instead. Ctrl-W is already a hotkey in ST3 so it will need to be overridden by adding the following line to the key mapping file:
{ "keys": ["ctrl+w"], "command": "unbound" }"

NOTE: If you exit ST3 without shutting down the Supercollider interperator you will still be left with zombie processes you have to manually kill.

Below is the key bindings file I am currently using:

[
    { "keys": ["ctrl+w"], "command": "unbound" },
// interpreter -------------------------------------------------------------
    {
        "command": "super_collider_evaluate",
        "keys":    ["ctrl+,"],
        "args":    { "expand": "True" },
        "context": [{
            "key":      "selector",
            "operator": "equal",
            "operand":  "source.supercollider"
        }]
    },
    // server ------------------------------------------------------------------
    {
        "command": "super_collider_boot_server",
        "keys":    ["ctrl+w", "ctrl+b"],
        "context": [{
            "key":      "selector",
            "operator": "equal",
            "operand":  "source.supercollider"
        }]
    },
    {
        "command": "super_collider_start_recording",
        "keys":    ["ctrl+w", "ctrl+r"],
        "context": [{
            "key":      "selector",
            "operator": "equal",
            "operand":  "source.supercollider"
        }]
    },
    {
        "command": "super_collider_stop_recording",
        "keys":    ["ctrl+w", "ctrl+s"],
        "context": [{
            "key":      "selector",
            "operator": "equal",
            "operand":  "source.supercollider"
        }]
    },
    // sclang ------------------------------------------------------------------
    {
        "command": "super_collider_stop",
        "keys":    ["ctrl+."],
        "context": [{
            "key":      "selector",
            "operator": "equal",
            "operand":  "source.supercollider"
        }]
    },
    {
        "command": "super_collider_help",
        "keys": ["f1"],
        "context": [{
            "key":      "selector",
            "operator": "equal",
            "operand":  "source.supercollider"
        }]
    },
    {
        "command": "super_collider_open_class",
        "keys":    ["f2"],
        "context": [{
            "key":      "selector",
            "operator": "equal",
            "operand":  "source.supercollider"
        }]
    },
    {
        "command": "super_collider_dump_interface",
        "keys": ["f3"],
        "context": [{
            "key":      "selector",
            "operator": "equal",
            "operand":  "source.supercollider"
        }]
    },
    {
        "command": "super_collider_dump_full_interface",
        "keys": ["f4"],
        "context": [{
            "key":      "selector",
            "operator": "equal",
            "operand":  "source.supercollider"
        }]
    },
    {
        "command": "super_collider_get_method_args",
        "keys":    ["f5"],
        "context": [{
            "key":      "selector",
            "operator": "equal",
            "operand":  "source.supercollider"
        }]
    },
    {
        "command": "super_collider_get_ugen_args",
        "keys":    ["f6"],
        "context": [{
            "key":      "selector",
            "operator": "equal",
            "operand":  "source.supercollider"
        }]
    },
    // meters ------------------------------------------------------------------
        {
        "command": "super_collider_show_server_meter",
        "keys": ["f7"],
        "context": [{
            "key":      "selector",
            "operator": "equal",
            "operand":  "source.supercollider"
        }]
    },
    {
        "command": "super_collider_show_server_scope",
        "keys": ["f8"],
        "context": [{
            "key":      "selector",
            "operator": "equal",
            "operand":  "source.supercollider"
        }]
    },
    {
        "command": "super_collider_show_server_freq_scope",
        "keys": ["f9"],
        "context": [{
            "key":      "selector",
            "operator": "equal",
            "operand":  "source.supercollider"
        }]
    },
    {
        "command": "super_collider_show_server_window",
        "keys": ["f10"],
        "context": [{
            "key":      "selector",
            "operator": "equal",
            "operand":  "source.supercollider"
        }]
    },
    {
        "command": "super_collider_open_post_view",
        "keys": ["f12"],
        "context": [{
            "key":      "selector",
            "operator": "equal",
            "operand":  "source.supercollider"
        }]
    },
]