View this PageEdit this PageUploads to this PageHistory of this PageTop of the SwikiRecent ChangesSearch the SwikiHelp Guide

SuperCollider Meta-Documentation

Home   How To   Code Pool   Public Library   Theory   Events

I've stuck the link to this new page on the "developing maybe a new startpage" while I work on it, see what people think, etc. This is based on my learning experience, and has biases towards the Mac OS X package specifically. I'm also currently ignoring all older code and docs; I'm focusing on SC3, just to be pragmatic. This follows from my learning experience: while I'm sure there are many rich sources of knowledge in the older codebase and docs, I want to make sure I have a grasp of what is current first, and not waste time sifting through code which may be misleading to me until I really "get" SC3.

I'd love to see this expanded to suit those learning on Linux and Windows as well though, and to have people with different learning styles and experiences fill in where it seems I've missed something. It is a wiki, after all.

Oh, and I want to delete this sub-section sooner rather than later...

This page is an attempt to collect the large amount of SuperCollider 3 documentation into a coherent whole, organized along certain threads, towards the goal of guiding people starting down the path of learning SC3–both those with prior programming experience and those without, as well as those with prior computer music experience and those without. This also attempts to identify holes and vague areas in the current documentation where they exist. That being said, it seems that almost anything you could want to know has been covered; the trick is knowing where to find it!

Note that the documentation listed on this page is going to be redundant with other sources; this is not an attempt to re-write the SuperCollider docs, just to organize what is there, identify the best or most up-to-date sources for documentation and guide a new learner interested in specific topics.

Important Hubs for SuperCollider Information Online

These are the most important, central sites for SuperCollider information online.

The SuperCollider Help Documentation

This is the first place many people will look for guidance, and there is a great wealth of documentation here, including both tutorials and reference materials. The SC3 package contains the whole set of the help docs, but there are online sources as well:

It is highly recommended that you read the "More On Getting Help" section first. This document describes many useful key shortcuts for navigating the help docs and finding out more about SC3 concepts.

SuperCollider 3 Tutorials

There are tutorials all over the help docs and web, some more extensive than others, with different focuses and levels of depth. The main SuperCollider site provides a page listing many of the same resources, see here: Learning SuperCollider.

Tutorials present in the Help Docs:

Other Tutorials

Learning the Language

Some people will come to SC3 having written their own programming languages from scratch, some people will have almost no clue what a variable is, and then there will be everyone in between. With this in mind, here is a description of the documentation related specifically to learning the language in terms of the various levels of familiarity one might have with programming languages.

SuperCollider is an object-oriented programming language. It is descended from Smalltalk, considered by many to be the first completely object-oriented programming language.

The Language section of the help docs contains a short introduction to OO concepts and terminology. There are also plenty of resources online for learning more about Object-Oriented programming—OO is a rich subject which dates back more than 30 years and encompasses a large collection of programming languages.

The ordering of Language topics listed after Intro to Objects in the SC Help Doc index provides a way to move through the language in terms of increasing syntactical complexity and increasing conceptual depth. However, this may not be the best way for an absolute beginner in programming to learn—while this can work well for an experienced programmer to quickly pick up specific syntax for SC—the concepts behind which they might already grasp through familiarity with another programming languages—this might be a greater challenge for an absolute neophyte.

Another strategy for learning the language is approaching through Professor Cottle's Computer Music with SC3 book. Professor Cottle takes a more gradual approach, introducing OO programming concepts gradually with examples and explanations only after a detailed introduction to sound and musical concepts. Professor Cottle's book is good for both computer music and programming newbies.

Also see the "Prerequisites" section from Mark Polishook's tutorial; this provides some links to some free online books on Smalltalk (which SuperCollider closely resembles).

Understanding the SuperCollider Architecture

Part and parcel in getting familiar with SuperCollider is understanding the architecture of the SC3 system. This includes grasping the Client/Server relationship, how Server-side entities exist in the context of Client-side side code, how messages are passed back and forth between the two, how nodes and groups are created, assigned, and addressed, Order of Execution, Timing, and more.

The entries under the heading "Essential Topics" in the SC Help Doc index explains this in detail. Again, this will work well for someone already familiar with software systems, but might be a steeper climb for an inexperienced programmer. The Tutorials listed in the Help Doc index are all a good way to investigate this aspect of programming in SC3; as mentioned above it can be especially helpful to go through the Server Tutorial while referencing the Server Architecture and Server Command Reference. Professor Cottle provides an even more gentle introduction to the SC3 server architecture, spending much time on building synths before he gets into explaining how Synthdefs work and what the SC3 server does.

To be continued:

Streams and Patterns

Writing SC3 Programs with Graphical User Interfaces

Code Samples

What else?

Link to this Page