All Projects → crucialfelix → Atom Supercollider

crucialfelix / Atom Supercollider

Licence: mit
SuperCollider development environment for Atom.io

Programming Languages

coffeescript
4710 projects

Projects that are alternatives of or similar to Atom Supercollider

Atom Ide Rust
Rust IDE support for Atom, powered by the Rust Language Server (RLS)
Stars: ✭ 200 (+135.29%)
Mutual labels:  ide, atom
TwoDark
Atom's OneDark inspired theme for Sublime Text
Stars: ✭ 19 (-77.65%)
Mutual labels:  atom, ide
Go Plus
An Enhanced Go Experience For The Atom Editor
Stars: ✭ 1,519 (+1687.06%)
Mutual labels:  ide, atom
language-chef
Development repository for the language-chef plugin for the Atom text editor
Stars: ✭ 16 (-81.18%)
Mutual labels:  atom, ide
Php Ide Serenata
Atom IDE package that integrates the Serenata server to provide PHP code assistance
Stars: ✭ 277 (+225.88%)
Mutual labels:  ide, atom
Atom Languageclient
Language Server Protocol support for Atom (the basis of Atom-IDE)
Stars: ✭ 385 (+352.94%)
Mutual labels:  ide, atom
Ide Haskell
Haskell IDE plugin for Atom editor
Stars: ✭ 236 (+177.65%)
Mutual labels:  ide, atom
atom-ide-cpp
C/C++ language support for Atom-IDE
Stars: ✭ 34 (-60%)
Mutual labels:  atom, ide
atom-ide-scala
Scala & Dotty support for Atom IDE (🧟‍♂️ zombie repo)
Stars: ✭ 47 (-44.71%)
Mutual labels:  atom, ide
Awesome Atom Packages
📦 Some Useful Atom Packages for Web Developers !
Stars: ✭ 286 (+236.47%)
Mutual labels:  ide, atom
Platformio Atom Ide
PlatformIO IDE for Atom: The next generation integrated development environment for IoT
Stars: ✭ 475 (+458.82%)
Mutual labels:  ide, atom
Pharothings
Live programming platform for IoT projects based on Pharo
Stars: ✭ 80 (-5.88%)
Mutual labels:  ide
Moonshine Ide
Moonshine is a free and open source middleweight IDE built with ActionScript 3 for ActionScript 3, Apache Flex®, Apache Royale™, and Feathers development, with Cloud and Desktop support.
Stars: ✭ 76 (-10.59%)
Mutual labels:  ide
Elementary Ide
An unofficial elementary OS (Vala) oriented IDE.
Stars: ✭ 75 (-11.76%)
Mutual labels:  ide
Atom Aligner
Easily align multi-line with support for different operators and custom configurations
Stars: ✭ 73 (-14.12%)
Mutual labels:  atom
An Old Hope Syntax Atom
⚛️ Atom theme inspired by a galaxy far far away...
Stars: ✭ 82 (-3.53%)
Mutual labels:  atom
Vim Config
Lean mean (Neo)Vim machine, carefully crafted with ❤️ Use with latest Neovim or Vim 8
Stars: ✭ 1,214 (+1328.24%)
Mutual labels:  ide
Php Reflection Code
PHP反射IDE自动提示生成器
Stars: ✭ 73 (-14.12%)
Mutual labels:  ide
Dotfiles
What tools and plugins I use for web development?
Stars: ✭ 73 (-14.12%)
Mutual labels:  atom
Subethaedit
General purpose plain text editor for macOS. Widely known for its live collaboration feature.
Stars: ✭ 1,183 (+1291.76%)
Mutual labels:  ide

SuperCollider for Atom

A SuperCollider development environment for Atom.io

apm install supercollider

SuperCollider is a programming language for real time audio synthesis and algorithmic composition.

https://supercollider.github.io


  1. SuperCollider comes with a cross platform IDE (OS X/Linux/Windows) which communicates with the language interpreter.

  2. 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.

  3. 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).

SuperCollider Atom is an alternative to the IDE. Atom is free, open source and very hackable.

Features

Quarks and classlib automatically added to your project

If you add Quarks (class library extensions) they are added to your project when you recompile. You can turn this feature off in settings if you want.

Lookup classes and methods using shift-cmd-R

Use atom-ctags and

Clear readable call stacks for errors

Clicking on one of the debug frames will open the source code in the left pane. You can click on any classname to open it's source code.

Click to see contents of objects in Args or Vars

The formatting strives to have a high data-ink ratio by removing extraneous and useless information from the callstack.

The 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.

Syntax errors in your code are highlighted

System/Growl notifications on error

Very useful if you are busy making music in another window or another application and want to know why the music just stopped.

Uses system notification on OS X 10.8+ Earlier OS X versions, Linux and Windows can install Growl:

https://github.com/visionmedia/node-growl


Installation

1. Install this package:

using Atom's 'Install Packages', search for "supercollider"

2. Download and install SuperCollider:

https://supercollider.github.io

3. It should work

If 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)

See also "Preferences" below.

4. Open an .scd file in an Atom project, and then open a post window (shift-cmd-k)

Commands

Open commands in Atom with command-shift-P and type superc to filter by supercollider commands.

  • 'supercollider:recompile'
  • 'supercollider:open-post-window'
  • 'supercollider:clear-post-window'
  • 'supercollider:cmd-period'
  • 'supercollider:eval'
  • 'supercollider:boot-server'
  • 'supercollider:quit-server'
  • 'supercollider:kill-all-servers'
  • 'supercollider:open-help-file'
  • 'supercollider:manage-quarks'

Some commands are also available if you right-click on a word and check the context menu.

REPL

key command
shift-cmd-K Compile library (open window if needed)
shift-enter Evaluate selection or current line
shift-cmd-C Clear post window
shift-alt-b Boot the default server
shift-alt-q Quit the default server
cmd-. Panic ! Stop all music
ctrl-shift-h Open SuperCollider help file for selected text

You may customize these in your own Keymap file.

Lookup classes and methods with shift-cmd-r

Lookup is done using Atom's Symbol View which is powered by the venerable ctags. Its quite fast and uses fuzzy finder.

When 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.

I also recommend the https://atom.io/packages/atom-ctags package with autocomplete-plus.

Install ctags if you need to:

os x

brew install ctags

ubuntu

sudo apt-get install exuberant-ctags

windows

http://ctags.sourceforge.net/

Add support for the supercollider language by making a file called ~/.ctags

--langdef=supercollider
--langmap=supercollider:.sc
--regex-supercollider=/^([A-Z]{1}[a-zA-Z0-9_]*)[ \[]{1}/\1/c,class/
--regex-supercollider=/^[[:space:]]*(\*[a-z]{1}[a-zA-Z0-9_]*) \{/\1/m,method/
--regex-supercollider=/^[[:space:]]*([a-z]{1}[a-zA-Z0-9_]*) \{/\1/m,method/
  • Select a classname, alt-cmd-down_arrow to go to the definition You can also right-click and "Go to definition"

GUI

SuperCollider 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.

Server.default.makeWindow

Help files:

Select a class name and cmd-shift-p and type "help file"

Or use the context menu (right-click) on the class name or method name to lookup.

The help browser will open in a new window.

(TODO: open help files directly in Atom)

Preferences

See the settings in Atom settings > Packages > Supercollider

You 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.

You can also set the path to your sclang_config.yaml file which stores the compile paths including which Quarks you have installed.

If 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.

See the supercollider.js configuration documentation

Default paths:

OS X

"/Applications/SuperCollider/SuperCollider.app/Contents/Resources/sclang"

Linux

"/usr/local/bin/sclang"

Windows

"C:\Program Files\SuperCollider\sclang.exe"

Themes

A 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 and Woolgathering Dark Syntax.

Missing Features

Built in server window

s = Server.default;

// but its easy to make a server window
s.makeWindow

Native Auto-complete

There 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.

Support

Gitter

Issues and pull requests welcome.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].