Composer, electronic musician, improviser

SuperCollider on CrunchBang Linux


[UPDATE] This post has been updated to reflect better practices.

Following my post for installing SC3.6 on Ubuntu (Xubuntu) where I advised readers of the awesomeness of #! (CrunchBang) linux I have decided to post a quick how-to for getting SC3.6 IDE installed on your CrunchBang system.

Read the rest of this entry »

Filed under: Phase 1, , , , , ,

Raspberry Pi: first impressions

Getting the Pi Baked

I got my Raspberry Pi in the mail yesterday — a long anticipated event. My excitement was slightly deflated when I realized I didn’t have anything I actually needed to make the damn thing run: micro USB for power, an hdmi-dvi adapter so I could actually see and control it, and a fast SDHC card with lots of room*.
Read the rest of this entry »

Filed under: El MuCo, Phase 1, , , , , , , , , ,

SuperCollider On Ubuntu

[WARNING:] This page is sad and old and out-of-date.  Please check out this new updated page with new updated instructions that are new and happy and up-to-date.  The below information should be read out of historical curiosity only.

Because getting SC3 to work on Linux seems to be a major source of sadness and unnecessary frustration (to all including myself), I’ve decided to post on going from zero to SC3 hero in a few (ha!) short and easy steps.

Installing SuperCollider from the Repositories

1) If you are on Ubuntu, enable the repositories by entering the following from your shell:

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys FABAEF95


sudo add-apt-repository ppa:supercollider/ppa


sudo apt-get update

2) If you run the following command and hit tab to auto-complete, you can see the packages available:

sudo apt-get install supercollider

supercollider A real time audio synthesis programming language
supercollider-common A real time audio synthesis programming language
supercollider-common-dev Common development files for SuperCollider
supercollider-dev Development files for SuperCollider
supercollider-doc Documentation for SuperCollider
supercollider-emacs SuperCollider mode for Emacs
supercollider-gedit SuperCollider mode for gedit
supercollider-plugins A real time audio synthesis server
supercollider-quarks SuperCollider User Contributions
supercollider-server A real time audio synthesis server
supercollider-server-dev Development files for SuperCollider server
supercollider-vim SuperCollider mode for Vim

You will need at least supercollider-common and supercollider-server (which install with the dummy package “supercollider”) in order to run SC3.  However, the following are really necessary to get the most out of the program:
supercollider-gedit (best interface, IMHO) supercollider-doc (you will need these, trust me) supercollider-plugins (moar soundz!) and supercollider-quarks (even moar soundz!)

Here’s what i installed:

Notice it is installing dependencies for you. That’s nice. Assuming your distro has the old jack (not Jack2) everything should install peachy. However you will notice there’s a problem with mine: the install wants to uninstall Jack2 and install the old Jack. NOT OKAY.

Here are instructions for building with Jack2. If you don’t care and are fine with the old jack, just let the installer do its thing and skip to the section below Starting the SuperCollider Editor.

Building for Jack2

1) Create a directory for the source:

mkdir supercollider

2) ‘cd’ into that dir and download the repo package source:

sudo apt-get source supercollider

if you get a dpkg-dev error after the download, you may need to install it:

sudo apt-get install dpkg-dev

Your folder should then look something like this:

3) Edit the ‘control’ file to depend on Jack2 rather than ye olde jack

cd supercollider-3.4

sudo nano debian/control

this will open the control file in the nano editor.

4) Change libjack-dev (>= 0.100) to your libjack install.  Mine is libjack-jackd2-dev which i found out by searching for libjack in my sources.  My version is 1.9.5, but i left the dependency as (>=1.9.0)

5) ‘cd’ back to the supercollider-3.4 directory and build the debian packages:

sudo dpkg-buildpackage -rfakeroot -uc -b

Assuming you have all your dependencies met, you will have a directory full of delicious .deb files.  If, however, like me your system failed to live up to the dev standard, you will have to install the dependencies.

6) If you got errors, install whatever is listed either in your FAIL message or in the control file above.

sudo apt-get install libavahi-dev … (etc., etc.)

then try again:

sudo dpkg-buildpackage -rfakeroot -uc -b

(this time mine worked!  great!)

7) Install the packages!

cd out to the root supercollider directory you made to start with:

cd ..

show the files:


install the packages:

sudo dpkg -i supercollider_3.4-0ubuntu1~maverick1_amd64.deb supercollider-common_3.4-0ubuntu1~maverick1_all.deb supercollider-doc_3.4-0ubuntu1~maverick1_all.deb supercollider-gedit_3.4-0ubuntu1~maverick1_all.deb supercollider-plugins_3.4-0ubuntu1~maverick1_amd64.deb supercollider-quarks_3.4-0ubuntu1~maverick1_all.deb supercollider-server_3.4-0ubuntu1~maverick1_amd64.deb

(If you get errors on the output, be sure you have at least the base supercollider (supercollider…amd64.deb or whatever your package is) the supercollider-common and the supercollider-server installed.  Then try to install the gedit, plugins, quarks, or what-have-you.)

Starting the SuperCollider Editor (Gedit)

1) I will test my install by opening gedit from the command line:


2) Then i go to edit->preferences->plugins and enable the “sced” plugin.

3) Now under the ‘tools’ menu there should be a ‘SuperCollider Mode’ button.  PRESS IT!!!


So you should now have a working install of SuperCollider, albeit without the convenience of a GUI server window or the possibility of GUI anything…


Installing SwingOSC

Before installing SwingOSC (the GUI library for SC3) check that you have java installed, as it is required for Swing to work.

Typing ‘java -version’ or just ‘java’ and hitting TAB will let you know if you have it installed.  My system sadly does not.

Lore holds that sun-java6-dev is in the “universe” repo, but “universe” and “multiverse” aren’t there anymore, and i’m not sure which of the four extra repos it is in, so I just tick them all.  (Lazy, I know…)

1) Open Synaptic Package Manager

sudo synaptic

2) Go to Settings->repositories->Other Software and tick off the boxes in there.

Once back at the main window, hit “reload”

3) Type sun-java in the quick search window to show the sun-java6 packages.  I can’t remember which exactly I need, so I’ll install them all.

(back in terminal having closed synaptic [otherwise apt will fail])

Accept the proprietary license required of the Java install.  (oh proprietary software.)

SwingOSC is no longer included with supercollider, so you have to download it from Sourceforge.  (Thanks to Bruno TR for the heads-up.)

4) First, if you don’t have a SwingOSC folder at /usr/share/SuperCollider/ go ahead and make one.

sudo mkdir /usr/share/SuperCollider/SwingOSC;

5) Download SwingOSC from this link:  http://sourceforge.net/projects/swingosc/

6) Unzip the folder where you want, resulting in a SwingOSC folder. (I will refer to this as */SwingOSC/ from hereon out, the asterisk indicating your unique folder location.)

7) Cd into */SwingOSC/build/ and copy the SwingOSC.jar file to /usr/share/SuperCollider/SwingOSC

sudo cp */SwingOSC/build/SwingOSC.jar /usr/share/SuperCollider/SwingOSC

(you can put this anywhere as long as you point to it in your .sclang.sc startup file.  more on this below)

8) Copy the SwingOSC help folder to /usr/share/SuperCollider/Help

sudo cp -r */SwingOSC/SuperCollider/Help/SwingOSC/ /usr/share/SuperCollider/Help

9) Copy the SCClassLibrary files to /usr/share/SuperCollider/Extensions

sudo cp -r */SwingOSC/SuperCollider/SCClassLibrary/SwingOSC /usr/share/SuperCollider/Extensions/

SwingOSC is installed now, but to get it to start automatically and give me (and you) the GUI server I (you) so want and deserve, we must create a supercollider startup file.  This is really easy, though, so don’t give up now!

Creating a Startup File

1) Cd to your home directory and create a file called


( you can type thisProcess.platform.startupFiles; in supercollider and evaluate it to find the path to your startup file.  On Ubuntu, it’s ~/.sclang.sc)

2) I enter the following text into mine, you can customize yours as you see fit!

SwingOSC.program = "/usr/share/SuperCollider/SwingOSC/SwingOSC.jar"; g=SwingOSC.default; g.boot; SwingOSC.default.waitForBoot({s.makeGui}); 

 3) Save the file

That’s it!

Now fire up gedit and see if it worked…



Many thanks to the sc3 mailing list, and specifically to those who work tirelessly on the linux port.  The only reason I know anything about SC3 is because of this list.  To name a few, but certainly not all:

Dan Stowell
Julian Rohrhuber-3
Josh Parmenter
Tim Blechmann
Miguel Negrao

And so, from a completely SC3 devoid machine to a fully-functional install with GUI support and Sced IDE all in … just under 2 hours.  I was making this post at the same time, however.  This should have taken you 15 minutes ;)

Thanks for reading.  If you have questions, comments, or an easier way to do any of the above, please comment.


I updated the post to reflect some changes made to the package content (you have to manually download SwingOSC now, etc.) and tested the post out by installing SC3 and Swing on a virtualized Linux Mint install. Everything went peachy with the SC3 and Swing installs and the help system “just works.”

The total install time was about 9 minutes without configuring Jack. Mint already had Java-6 installed too, so that saved a step. Here’s a little pic for motivation. ;)

Filed under: SC3 - Code - Music - More, , , , , , , , , , , ,

Awesome Open Source/ Free Multimedia Software List

Working with sound and video all the time, we here at scacinto inc have some across some incredibly excellent software that we like a lot (or at least like the looks of!) This list is not a “top ten” nor are these programs “players.” If you are looking for lists of players/codecs, I’m afraid you will have to look elsewhere.

The softwares below are professional tools that require a time commitment to learn. That said, they are all very powerful and good at what they do. Additionally, they are all FREE! Have more? Comment below and we will add them (should they live up to our extremely high standards.) Please don’t bother posting commercial software, not only will we not post them, we will delete your comment and never think twice about it. :D



Sound (Audio Programming)

MiniAudicle IDE for ChucK on OSX

ChucK is, in some ways, the new kid on the block when it comes to real-time audio programming languages. This doesn’t mean it lacks features, though. It has a stable base, good community support, and has the advantage of a less daunting learning curve than Csound or SuperCollider.

Pros: Easier to learn and use than most other languages.

Cons: Is CPU intensive — you had better have a good machine if you are planning to do anything crazy with this program.

OS: Linux, Mac, WIndows

one of Csound’s many IDEs


The Elder Statesman of computer programming languages, Csound is still going strong decades after it was written thanks to a large community of programmers and users. There are a number of front-ends for this program so check out the Csounds site “frontends” page for them. If you are on a Mac, I recommend AthenaCL. Otherwise, check out Common Music / Grace.

Pros: NRT synthesis and algorithmic composition.

Cons: Text-based language that will be hard for some to learn. Real-time support not as developed as ChucK or SuperCollider.

OS: Linux, Mac, Windows

Impromptu UI on Mac


This Lisp-related A/V program can do a lot of things from live-coding music to image DSP. What it does best, though, is live coding. Check out the video Tutorial on the site for a good idea of what this program is about.

Pros: One of the best live-coding languages out there, it allows you to make changes on the fly seamlessly.

Cons: Mac only, sorry everyone else! Audio uses Audio Unit plugins for all sound — not for the crazy experimentalists out there.

OS: Mac

Pure Data with Arduino

Pure Data (PD)

Not as old as Csound, but older than any of the other programs in this audio list, Pure Data has a large community of support and sports a graphical programming environment that many will find more easy to approach than the text-based programs on this list.

Pros: real-time interactive processing of live sound.

Cons: User community can be prickly. Because of the TCL/TK graphics interface, PD can be CPU expensive. Not awesome for algorithmic or non-real-time score generation.

OS: Linux, Mac, Windows



SuperCollider is an extremely capable and well-rounded program that can be used for real-time processing, live-coding, algorithmic composition, graphics, and more.

Pros: Can do anything and do it pretty well, but real-time processing, live-coding, and algorithmic composition are stellar.

Cons: The drawback for most approaching this program is the learning curve which is very steep. A subscription to the mailing list or membership at the Nabble SuperCollider forum is a must.

OS: Linux, Mac, Windows


Sight (Image/Video Programming)



A nice little app for animating 2D images. Uses a hinge/skeleton system to fix joints and points of rotation. Images can be layered and stretched and compressed as well as moved in 2D space.

Pros: Fun, pretty easy to use, and relatively quick to get up and going.

Cons: Lack of any documentation aside from a few silent .movs online. Also can’t export projects so a screen casting/capture program is a must if you want to save your work.

OS: *linux*, Mac, Windows

*you have to build from source, no precompiled binary.

Blender 3D


Industry standard professional 3D graphics/animation suite. If you want to make pro 3D anything this is your baby. I’d write more, but you already know about this program. If you don’t, then you don’t need it.

Pros: Does what you want.

Cons: Will take a while to learn and some serious programming time to get what you want.

OS: Linux, Mac, Windows

Fluxus Live Coding


This is a seriously weird and excellent live-coding program for visual dorks.  All work is done on-the-fly and the animation/graphic appears in the window with the code.  From the site: “Fluxus is a rapid prototyping, playing and learning environment for 3D graphics, sound and games. Extends the Racket language with graphical commands and can be used within it’s own livecoding environment or from within the DrRacket IDE.”

Pros: Does what no other live-coding program can, and does it with style.

Cons: Installation and learning curve.

OS: Linux, Mac, Windows



Gem is the open-source sister program of Jitter (much the same way PD is to Max/MSP.) And similarly Gem is dependent on PD the same way Jitter is to MaxMSP. If you know PD, using Gem will be easy. The link above takes you to the PD site. Here you can find links to the extended versions of PD that ship with the Gem libraries built-in.

Pros: Graphical programming environment will be easier for some to approach and use. A reasonably good amount of examples ship with the libraries, and more can be found online.

Cons: Documentation could be better. Finding solutions to problems will require membership to a forum / mailing list.

OS: Linux, Mac, Windows

Gem (site)

The above site will be useful if you do not have the “extended” version of PD which comes with the Gem libraries built-in.



In addition to being a live-coding audio environment, Impromptu also does image processing using your Mac’s built-in Quartz plugins. You can write more plugins using Quartz Composer.

Pros: Quartz support makes this an expandable, powerful tool for graphics processing.

Cons: Will take a little while to learn, and requires knowledge of Quartz Composer if you want to expand the DSP functionality beyond what ships with your mac.

OS: Mac only



A great, easy-to-use program for 2D graphics, text, and more. Uses Python as its language. Really good for intricate graphics that employ random or repetitive elements to add complexity.

Pros: Quite a bit easier to use than some other text-based graphics programs on this list.  Faster from start to finished product.

Cons: Not as powerful as some other language/text-based programs like Processing.

OS: Mac


This is, in some ways, a different program than the original NodeBox. It is more complex, but also more capable. The interface now updates code in real-time, and modules are a new feature. Connecting GUI modules together creates more complex DSP series.

Pros: More powerful than the original NodeBox.

Cons: Harder to pick up and use than the original.

OS: *Linux, Mac, Windows

*must build from source.

Nodebox OpenGL

NodeBox for OpenGL

From the website: “NodeBox for OpenGL can be used for simple games, interactive media installations, data visualization and image compositing. It’s not as fast as anything in native C, but quite a bit faster than the classic NodeBox.” I haven’t started doing anything serious with this program yet. I may not… still, it is worth a look to anyone interested in any of the above.

Cons: Installing and getting the libraries to a useable state alone takes a significant effort. This might put this program out of reach for first-time-users.

OS: Mac


Processing is an incredible motion and graphics programming language that is based on Java with a simple and easy-to-use text interface.

Pros: Lots of external libraries that expand the standard functionality of the program. Incredible documentation with lots of books and tutorials available.

Cons: Text-based code, not for those who prefer GUIs.

OS: Linux, Mac, Windows



The blurb from the web site says it all: “Processing.js makes your data visualizations, digital art, interactive animations, educational graphs, video games, etc. work using web standards and without any plug-ins. You write code using the Processing language, include it in your web page, and Processing.js does the rest. It’s not magic, but almost.”

Pros: Full language support of Processing. Make incredible interactive web graphics easily and embed as JS. nice.

Cons: Like Processing, will take some time to learn. Not for those who don’t like code.

OS: Linux, Mac, Windows


I have not personally used this program, so perhaps I shouldn’t be listing it here. I do know people who use it and like it, however, and it’s $free$ so I threw it on here.

Pros: Purportedly does anything you want it to do. Has a pretty good-looking GUI (at least on Win7)

Cons: Window$ only :P.

OS: Windows


Physical (hardware)


If you want to make robots to take over the world, or at least do some physical computing with sound, video, moving parts, etc., this is your baby. Arduino is a physical board that connects your computer with the outside world. Arduino uses a programming langage that is basically like Processing to interact with incoming data and send messages to the board.

Pros: Very well supported (community.) Programming language is strong and concise.

Cons: N/A

OS: Linux, Mac, Windows

Filed under: Links, , , , , , , , , , , , , , , , , , ,

Mixer Feedback Music: 1204FX Improvisation 2


(every good post should begin with one!)

Following any of the steps below to create feedback loops with mixers can harm your gear and more detrimentally, your ears.  The results are often unpredictable and almost always extremely loud.  The pulse waves created by these kinds of setups and heard in the recording below are very hard on the ear mechanism (as you will be able to tell by listening.)  Please take all precautions to limit the amplitude of your speakers and, if listening on headphones, to start with the volume very low and turn it up as needed.  If you plan to attempt the following setup or one like it, start with all volumes at the minimum and raise them once you know what your results are going to be.

Note: the piece begins very quietly, the first loud sound is around 1:26.


The following is a list of equipment used in the above improvisation.

  • Dell Latitude D620 (1.6gHz, 1GB RAM) running the latest PureDyne distribution
  • Jack and Ardour to record the improvisation
  • Behringer XENYX1204FX mixer for all sound generation
  • 4 1/4 TS cables
  • 4 RCA cables
  • Headphones

Kane recently played a few recordings for me of experiments he had done with feedback systems created using his 1204 mixer.  The sounds were appealing and I thought it would be fun to see what it was like to make music with only a mixer for an instrument.  My 1204FX has on-board DSP that Kane’s model does not.  Normally, I do not use the processor at all, but for this exercise it was useful in adding variation to the signal flow and achieving a variety of sonic results.

Last night I experimented for about 2 hours with different routing schemes and to get used to controlling the mixer as a sound-generator.  I recorded 8-10 tests and ended up with about 45 minutes of pretty good material which I may use at some point in the future.  I then recorded 1204-10-29 in one take, using only the 2-channel output from the mixer.  There is no additional material in the recording, nor any post-processing aside from normalization.  The following is the routing recipe I used.

Routing the 1204FX

The first pair of feedback loops was connected as follows:

Alt 3 output –> channel 1 input (trim at +60) –> sent to Alt 3-4
Alt 4 output –> channel 2 input (trim at +60) –> sent to Alt 3-4

The second pair of loops was connected like so:

Aux Send 2 –> channel 5/6 L (+4) –> Main Mix (no Alt 3-4) –> Aux Sends 1-2 alternately as desired
Aux Send 1 –> channel 7/8 R (+4) –> Main Mix (no Alt 3-4) –> Aux Sends 1-2 alternately as desired

Aux Sends 1-2 at +15
Aux Returns at +5 to +10
Aux Return 1 to Aux Send 1 at +5

The reverberation heard is the built-in “Chapel” reverberation, program 19 on the mixer.  I used the Control Room R & L output channels to route the audio to my laptop for recording.  I monitored the sound using the headphone jack on the mixer with the volume as near to zero as I could get it.  (At some points this was not enough and I had to quickly pull the phones off.)

Useful parameters for making music

There are many ways to achieve sonic variation within the mixer.  The controls I used were the “pre” buttons for each channel, which control signal flow to the main mix and the aux sends, the faders for each channel plus the ALT 3-4 and Main Mix stereo faders, the “ALT 3-4” buttons, the AUX 1-2 faders, the pan controls, and the 3-band EQ for each channel.  (Is that everything, you say?  Almost, I didn’t touch the trims, the low cuts, or the aux send knobs below the DSP area.)  The controls I used the most were the volume faders and the 3-band EQs.  All of the frequency variation (thumping lows to screaming frequencies around 12k) was accomplished by turning down two of the three EQ bands, and playing with the remaining band while simultaneously working the volume fader for that channel.

If you are interested in experimenting with a mixer like this, trial and error will be your best guide.  Try making the channel settings similar for all channels and then changing them one by one to clearly hear the results.  Or try using only 1 or 2 of the channels and later adding the rest one by one.  Most of all, play with the levels a lot: I noticed that in several instances minute changes to a single channel produced startling results.  Also get to know your routing: changing the ALT 3-4 stereo faders will affect all of the channels using the ALT 3-4 pair, while playing with the gain of an individual channel will only affect other channels that share its signal path.  By bypassing the aux sends (the DSP) you can have two layers of sound, one processed and the other dry (you can hear this clearly in my piece), so experiment with foreground and background layers.

Here, again, for your edification is my improvisation… I know you don’t want to scroll all the way back to the top of the page.


Filed under: Current Projects, Music, Phase 1, , , , , , , , , , ,

EeePC + Ubuntu 10.04 + Arduino (Mini-Tutorial-of-Sorts)

1. I’m not good at tutorial writing. This is not because I do not have the willingness or ability to write tutorials, but because I lack the patience to write tutorials. However, because I seem to have 3x the number of difficulties that everyone else does doing anything, I have started taking copious notes whilst undertaking any dubious technological task and therefore find myself in the position of being able to at least expound in some detail the products of my activities.

2. There are better and more informative tutorials on the web than I could ever hope to write with one caveat: all tutorials approach the same subject in different ways with different levels of detail. All have a slant. The particular slant of the tutorial you find on the web may or may not suit your aims and may or may not solve your problems. Therefore, it is better to have too many than too little tuts, even if they overlap in many details.

3. A warning: all information on this post is from personal experience only, and in no way guarantees success for you, or even that following the steps listed below will not erase your hard drive and explode your Arduino. Having said that, there’s a good chance (37%) that Linux Gnomes* will erase your HD and explode your Arduino at any time anyway, so you might as well proceed!

4. Some links. (Here? Honestly? I mean, it’s like I don’t even want you to keep reading…)


While I disagree with her choice of beverage (Merlot with Arduino?!?!? Really, this is a scotch project board if ever one was invented!!!) Limor has tonnes** of awesome pages on a really fun web site that will “learn you” something fierce!


So Here Goes

I was recently bored. While I have a perfectly working and configured Arduino workstation/setup on multiple Macs, I figured I would get one up and running on my little EeePC as a means of expending spare time as I hurtle through space.


I downloaded the linux package here and just unzipped the package to my home folder.


Open a shell and navigate to the arduino-0018 folder and run the arduino script (./arduino.)


You must set your board type and serial port in the Arduino application itself under the Tools menu. If you’ve forgotten what board you have, the model is printed on the board itself, and the IC type is printed on the IC itself (ATMEGA 168, for example.)

I had two little problems:

1.) On the Linux installation page here, one is instructed to install the avr library (avr-gcc avr-g++.) I’m using Ubuntu 10.04 and the looking to install avr-g* failed, so I installed gcc-avr. (The same thing, right?) Nope. You need to install the avr-libc package or you will get the error (error: avr/io.h: No such file or directory) on compile that is mentioned on the arduino page.

2.) The second little problem that gave me a little pause was that I didn’t seem to have the File, Edit, Tools, and other menu items that I know exist and are necessary to configure Arduino to work with your board. The problem was so silly I hate to even mention it, but it was that the color of the font for these items perfectly matches my system theme, so they were effectively invisible (see pic.) Clicking in the ether, however, proved they did exist. :P

Aside from these, getting my arduino up and running was easy-peasy. Yours will be too!***

* Yes, they are real! linux gnomes!
** a British measurement equivalent to 2.798 metric tons and spelled “tonne”
*** This is not a true statement! Yours may not and probably will not be as easy…

Filed under: Miscellany, Phase 1, , , , ,

G O I N G S O N : L O C A L (ISH)

fritz Art of Fritz Horstman
kane Music of Brian Kane
fritz Hartford Phase Shift
fritz Hartford Sound Alliance
Lique Art of Philip Lique
Lique Music of Matt Sargeant
strycharz Art of Heather Strycharz
uncertainty Uncertainty Music Series

My Other Awesome Sites [•_•]

Assault! 375 Aural Assaults!
About me! About me!
MySpace! MySpace!
Google+! Google+!
My (soon-to-be) Company! My (soon-to-be) Company!

Enter your email address to subscribe to this awesome blog and receive notifications of new posts by email!

Join 81 other followers


P O S T E R S !







INI new haven

Handmade instruments by Scott Petersen and Brian Kane at Artspace New Haven