rhoadley.net   music   research   software   blogs

aru    seminars    m&t    critski    focm1a    cmc    circuit bending    mic2b    sensor technology    comp 3    sonic art    major project
youtube    vimeo    facebook


Resources:    Bioacoustics    Jitter    MaxMSP    OSC    Physical    PD       CBHH    sTech    SuperCollider    C/Xcode

Supercollider Resources:     Home     Blog     Forum     Examples     Projects     Tasks     Tutorials


Supercollider Tasks

The External Classes Task

Task 6 Name: Controllers and External Classes in SuperCollider Set: w9i Due: w10i Weighting: 0% Courses: cmp
Prev Task: Generative Composition Using SC 1 - GUI Next Task: Generative Composition Using SC 2
Task Summary All cmp tasks WebCT

Just as Max/MSP uses 'external objects' or 'externals' to extend its functionality (and as other types of software use 'plug-ins'), Supercollider can be (and has been) extended by the development of external 'classes'.

It's also useful, as with Max/MSP, to get used to the general structure of how SC is put together - what goes where and why. A useful method here is to run different versions of the software, each with different class libraries so you can see directly what works with which files where and which doesn't. Although it feels different, it's actually very similar to the way in which Max/MSP handles external objects.


The Task

  • Download your own version of SuperCollider (from here, for example).
  • Install it whereever you want and make sure it runs.
  • Quit it.

  • Search for 'External%20Classes Supercollider' in:
    Google, Scholar, Books, Image, Video,
    University Library
  • ...or some such.
  • Find an external class - this may be more difficult to find than it was for Max/MSP.
  • Try to make sure that the external class comes with a help file, or at least with instructions for operation. Some classes require installation in directories other than the SCClassLibrary and it's probably better to avoid these for the moment.
  • There are some examples at Frederick Olofsson's site here.
  • If you really can't find anything else, I've created a simple class and help file archive here.
  • Unzip the file, etc., if necessary.

  • On the Anglia Ruskin Machines, you won't have access to alter the SCClassLibrary within the SC Directory itself. However, you do have access to the Users/student/ library.
  • Follow this path:
  • Users/student/Library/Application Support/SuperCollider/Extensions/
  • Put the new external in this directory - you may find that the external has it's own installation requirements, so follow these - including instructions for any help material. These usually go in the SuperCollider/Help directory. This applies to my sample class above.

  • To use the external class, you need to compile the SC Library by choosing Lang/Compile Library, choose cmd-K or restarting SC.
  • It's possible that there'll be a problem here. Sometimes, SC reports that there's a discrepancy or that there's some other problem. This might be because the new class is duplicated elsewhere. Just as with MaxMSP, if a class with the same name is elsewhere in SC's search paths, the programme will not know which version to use. Check for duplicates and if necessary find another class.
  • You, too, can experiment with new classes - if you want just take one and change it's name, but you'll also need to make sure you change the routine name inside whatever file you're editing. Take the class out of the filepath after you've finished with it to avoid confusion.

  • For the task, do the following:
  • Provide the class with the existing help file, if it exists and with your own help file/demonstration, whether the original class comes with a help file or not.
  • You should include somewhere very explicit instructions as to how to install and uninstall the class(es).
  • Provide an audio demo, if appropriate, some examples and some supporting material.
  • If you wish, you can use the following code to record your effort:
    
    // recording (to the SC directory)...
    // use your own path below if you want.
    (
    s.recSampleFormat = "float";
    s.recChannels = 1; // number of channels
    s.prepareForRecord("external.aiff");
    // use the particular path above...
    s.record;
    )
    
    s.stopRecording;
    
    
  • NB If you're using a standard installation of SC in the CMS, you won't be able to record to the SC Directory, so you'll need to identify a directory to which you have full access. Use the following path: "/Volumes/Macintosh HD/Users/student/MyDocs", etc. You'll have to alter it, of course, to match your own directory.
  • Once you've got the external working you may wish to check the process by quitting SC, removing the external class and restarting. SC will recompile it's class library whenever it is loaded.

Finally

  • Zip or Stuff your patches, demos, etc. into one file called your_student_number_"SC-Ex-Class" (e.g. 0504335_SC-Ex-Class.zip or 0504335_SC-Ex-Class.sit), include a readme with your name and student number and, if necessary, how to use or just open the patch, and submit the whole thing here.

 

You might also be interested in:

  • Xcode

The Projects and Tasks

The projects and tasks are designed to help you through the various courses and materials that you'll have to deal with, and also to provide an active and practical element to what could otherwise become a rather dry and technical exercise. Tasks are small exercises - you may be asked to complete one or two per week. Projects are larger and carry a higher percentage of the mark. We will undertake two, three, four or more projects and tasks. The final project is usually an individual choice project, and will be worth significantly more than the others in terms of percentages in your portfolio. We will usually try to set aside a time to perform the projects in a public setting.