{"id":13831417,"url":"https://github.com/crucialfelix/atom-supercollider","last_synced_at":"2025-10-17T00:35:20.720Z","repository":{"id":18621230,"uuid":"21826981","full_name":"crucialfelix/atom-supercollider","owner":"crucialfelix","description":"SuperCollider development environment for Atom.io","archived":false,"fork":false,"pushed_at":"2022-03-14T08:12:04.000Z","size":1676,"stargazers_count":85,"open_issues_count":27,"forks_count":12,"subscribers_count":16,"default_branch":"master","last_synced_at":"2024-04-14T22:29:05.692Z","etag":null,"topics":["atom","atom-supercollider","ide","sclang","supercollider","supercollider-language-interpreter","supercolliderjs"],"latest_commit_sha":null,"homepage":null,"language":"CoffeeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/crucialfelix.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"docs/contributing.md","funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2014-07-14T16:36:41.000Z","updated_at":"2024-01-10T19:39:04.000Z","dependencies_parsed_at":"2022-09-24T16:01:03.241Z","dependency_job_id":null,"html_url":"https://github.com/crucialfelix/atom-supercollider","commit_stats":null,"previous_names":[],"tags_count":36,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/crucialfelix%2Fatom-supercollider","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/crucialfelix%2Fatom-supercollider/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/crucialfelix%2Fatom-supercollider/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/crucialfelix%2Fatom-supercollider/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/crucialfelix","download_url":"https://codeload.github.com/crucialfelix/atom-supercollider/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243837010,"owners_count":20355813,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["atom","atom-supercollider","ide","sclang","supercollider","supercollider-language-interpreter","supercolliderjs"],"created_at":"2024-08-04T10:01:27.575Z","updated_at":"2025-10-17T00:35:15.687Z","avatar_url":"https://github.com/crucialfelix.png","language":"CoffeeScript","funding_links":[],"categories":["CoffeeScript"],"sub_categories":[],"readme":"# SuperCollider for Atom\n\nA SuperCollider development environment for Atom.io\n\n    apm install supercollider\n\n---\n\nSuperCollider is a programming language for real time audio synthesis and algorithmic composition.\n\nhttps://supercollider.github.io\n\n---\n\n1. SuperCollider comes with a cross platform **IDE** (OS X/Linux/Windows) which communicates with the language interpreter.\n\n2. The language interpreter runs in a separate process (**sclang**) and includes comprehensive bindings for making Qt based GUIs. sclang compiles and executes SuperCollider code, manages event schedulers (for making music) and creates GUIs. It can also send and receive OSC (Open Sound Control) and MIDI.\n\n3. The SuperCollider synthesis server (**scsynth**) runs in a separate process or even on a separate machine so it is ideal for realtime networked music. It just makes music, its quite efficient and the audio quality is very high. Communication between sclang and scsynth is via OSC (Open Sound Control).\n\nSuperCollider Atom is an alternative to the IDE. Atom is free, open source and very hackable.\n\n\n## Features\n\n### Quarks and classlib automatically added to your project\n\n\u003cimg src=\"https://raw.githubusercontent.com/crucialfelix/atom-supercollider/master/docs/images/project-folders.png\" style=\"max-width: 500px; margin:auto; display: block;\" /\u003e\n\nIf you add Quarks (class library extensions) they are added to your project when you recompile.\nYou can turn this feature off in settings if you want.\n\n### Lookup classes and methods using shift-cmd-R\n\n\u003cimg src=\"https://raw.githubusercontent.com/crucialfelix/atom-supercollider/master/docs/images/lookup-classes-methods.png\" style=\"max-width: 500px; margin:auto; display: block;\" /\u003e\n\nUse atom-ctags and\n\n### Clear readable call stacks for errors\n\nClicking on one of the debug frames will open the source code in the left pane.\nYou can click on any classname to open it's source code.\n\n\u003cimg src=\"https://raw.githubusercontent.com/crucialfelix/atom-supercollider/master/docs/images/callstack.png\" /\u003e\n\n#### Click to see contents of objects in Args or Vars\n\nThe formatting strives to have a high data-ink ratio by removing extraneous and useless information from the callstack.\n\nThe call stack in atom-supercollider includes *more* information than the standard supercollider call stack does. Each variable and function is included and even the contents of each member variable of each object shown. Click the triangles to open deeper detail when you need it.\n\n\u003cimg src=\"https://raw.githubusercontent.com/crucialfelix/atom-supercollider/master/docs/images/sc-atom-fold-out.gif\" /\u003e\n\n### Syntax errors in your code are highlighted\n\n\u003cimg src=\"https://raw.githubusercontent.com/crucialfelix/atom-supercollider/master/docs/images/scatom-syntax-error.png\" /\u003e\n\n\n### System/Growl notifications on error\n\n\u003cimg src=\"https://raw.githubusercontent.com/crucialfelix/atom-supercollider/master/docs/images/growl-notification.png\" style=\"width: auto; max-width: 400px;\" /\u003e\n\nVery useful if you are busy making music in another window or another application and want to know why the music just stopped.\n\nUses system notification on OS X 10.8+  Earlier OS X versions, Linux and Windows can install Growl:\n\nhttps://github.com/visionmedia/node-growl\n\n---\n\n\n### Installation\n\n##### 1. Install this package:\n\nusing Atom's 'Install Packages', search for \"supercollider\"\n\n##### 2. Download and install SuperCollider:\n\nhttps://supercollider.github.io\n\n##### 3. It should work\n\nIf you've installed SuperCollider in a non-standard place or have a development build, then you can set that path in the settings. (Settings View: Open)\n\nSee also \"Preferences\" below.\n\n##### 4. Open an .scd file in an Atom project, and then open a post window (shift-cmd-k)\n\n\n---\n\n### Commands\n\nOpen commands in Atom with `command-shift-P` and type `superc` to filter by supercollider commands.\n\n- 'supercollider:recompile'\n- 'supercollider:open-post-window'\n- 'supercollider:clear-post-window'\n- 'supercollider:cmd-period'\n- 'supercollider:eval'\n- 'supercollider:boot-server'\n- 'supercollider:quit-server'\n- 'supercollider:kill-all-servers'\n- 'supercollider:open-help-file'\n- 'supercollider:manage-quarks'\n\nSome commands are also available if you right-click on a word and check the context menu.\n\n### REPL\n\n| key              | command                                         |\n| ---------------- | ----------------------------------------------- |\n| `shift-cmd-K`    | Compile library (open window if needed)         |\n| `shift-enter`    | Evaluate selection or current line              |\n| `shift-cmd-C`    | Clear post window                               |\n| `shift-alt-b`    | Boot the default server                         |\n| `shift-alt-q`    | Quit the default server                         |\n| `cmd-.`          | Panic ! Stop all music                          |\n| `ctrl-shift-h`   | Open SuperCollider help file for selected text  |\n\n\nYou may customize these in your own Keymap file.\n\n\n### Lookup classes and methods with `shift-cmd-r`\n\nLookup is done using Atom's Symbol View which is powered by the venerable ctags.\nIts quite fast and uses fuzzy finder.\n\nWhen you recompile supercollider all compile paths including the SCClassLibrary and all of your quarks are added to your current atom project as folders. atom-ctags will then run ctags on all of the .sc sourcecode files so that lookup and auto-complete work.\n\nI also recommend the [https://atom.io/packages/atom-ctags](atom-ctags) package with autocomplete-plus.\n\nInstall ctags if you need to:\n\nos x\n\n    brew install ctags\n\nubuntu\n\n    sudo apt-get install exuberant-ctags\n\nwindows\n\n    http://ctags.sourceforge.net/\n\n\nAdd support for the supercollider language by making a file called ~/.ctags\n\n    --langdef=supercollider\n    --langmap=supercollider:.sc\n    --regex-supercollider=/^([A-Z]{1}[a-zA-Z0-9_]*)[ \\[]{1}/\\1/c,class/\n    --regex-supercollider=/^[[:space:]]*(\\*[a-z]{1}[a-zA-Z0-9_]*) \\{/\\1/m,method/\n    --regex-supercollider=/^[[:space:]]*([a-z]{1}[a-zA-Z0-9_]*) \\{/\\1/m,method/\n\n- Select a classname, `alt-cmd-down_arrow` to go to the definition\n  You can also right-click and \"Go to definition\"\n\n### GUI\n\nSuperCollider has a comprehensive Qt based gui toolkit.  GUIs in SuperCollider Atom work just as they do with the SCIDE: they run in the separate language process.\n\n    Server.default.makeWindow\n\n### Help files:\n\nSelect a class name and `cmd-shift-p` and type \"help file\"\n\nOr use the context menu (right-click) on the class name or method name to lookup.\n\nThe help browser will open in a new window.\n\n(TODO: open help files directly in Atom)\n\n## Preferences\n\nSee the settings in Atom settings \u003e Packages \u003e Supercollider\n\nYou can set the path to sclang (the supercollider language interpreter) if it is in a non-standard place or if you want to use a custom build.\n\nYou can also set the path to your `sclang_config.yaml` file which stores the compile paths including which Quarks you have installed.\n\nIf you have a `.supercollider.yaml` in your current atom project root or in your home directory (`~/.supercollider.yaml`) that will override the Atom settings. This allows you to have different settings for each project you work on. These files are how you configure supercollider.js projects which can be run outside of atom-supercollider.\n\nSee the [supercollider.js configuration documentation](http://supercolliderjs.readthedocs.org/en/latest/configuration.html)\n\n##### Default paths:\n\n**OS X**\n\n`\"/Applications/SuperCollider/SuperCollider.app/Contents/Resources/sclang\"`\n\n**Linux**\n\n`\"/usr/local/bin/sclang\"`\n\n**Windows**\n\n`\"C:\\Program Files\\SuperCollider\\sclang.exe\"`\n\n## Themes\n\nA couple SuperCollider-specific themes have been created to add symbol colorization, argument tags, argument parameters in pipes, and function names when using functional notation: [Woolgathering Light Syntax](https://atom.io/themes/woolgathering-light-syntax) and [Woolgathering Dark Syntax](https://atom.io/themes/woolgathering-dark-syntax).\n\n## Missing Features\n\n#### Built in server window\n\n    s = Server.default;\n\n    // but its easy to make a server window\n    s.makeWindow\n\n\n#### Native Auto-complete\n\nThere are many Atom packages for auto-complete. However they use text matching and not direct introspection. It would be possible to dump the class/method interface to a JSON file and then load that into auto-complete-plus. This would provide pretty good auto-complete with argument names and everything.\n\n\n## Support\n\n[![Gitter](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/crucialfelix/atom-supercollider?utm_source=badge\u0026utm_medium=badge\u0026utm_campaign=pr-badge\u0026utm_content=badge)\n\nIssues and pull requests welcome.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcrucialfelix%2Fatom-supercollider","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcrucialfelix%2Fatom-supercollider","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcrucialfelix%2Fatom-supercollider/lists"}