« 23 / 30 »

SC Multiple Apps

2008-10-31 04:57 supercollider

During a recent gig, I suddenly felt a need to crossfade between two songs/patches (strange as it seems). As I'd coded my music using RedMst and it, in turn, makes heavy use of class methods, starting up a new song would disrupt the current music playing (tempo, current index, etc). I also had some global effects running on bus 0 and 1 (ReplaceOut) that belonged to a particular song and I didn't want those for the new one.

So how to isolate patches? I got the idea of running two copies of the SuperCollider application at the same time. They'd be identical, use the same soundcard and share class library. Having two apps running would also be good for safety reasons. If one crashed I could keep on playing with the other. It turned out to be quite easy. The trick is to use the internal server and find a way to visually tell the two applications apart.

Dan Stowell helped me by implementing thisProcess.pid and I got some great tips from Cylob. He used a similar setup for his live performances. Here's my take on it... (you'll need a recent version of SuperCollider (>30 Oct '08)

  1. put the code below into your startup.rtf file. It'll make the secondary app green and shift windows to the right - this only so one can tell them apart.
  2. go to SuperCollider application folder and duplicate the program file (cmd+d). Rename the copy "SuperCollider (green)". Remember to duplicate again when you've updated your main SuperCollider app.
  3. important: from now on use internal as the default server in your code. Localhost will crosstalk when running multiple apps.

So with a simple duplicate command and minimal change to SuperCollider itself (just for cosmetic difference), I can now crossfade my songs.

//put this in startup.rtf...

//--detect secondary application and colour it green
var p, l;
~green= false;
p= Pipe("ps -xw | grep 'SuperCollider (green)' | grep -v grep | awk '{print $1}'", "r");
l= p.getLine;
if(l.notNil and:{l.asInteger==thisProcess.pid}, {~green= true});

if(~green.not, {  //for main app (red)
  GUI.skins.put(\redFrik, (
    background: Color.red.alpha_(0.8),
    foreground: Color.black,
    selection: Color.grey,
    unfocus: 0.9,
    fontSpecs: ["Monaco", 9],
    offset: Point(0, 0)
}, {  //for secondary app (green)
  GUI.skins.put(\redFrik, (
    background: Color.green.alpha_(0.8),
    foreground: Color.black,
    selection: Color.grey,
    unfocus: 0.9,
    fontSpecs: ["Monaco", 9],
    offset: Point(455, 0)
  Document.listener.background_(GUI.skins.redFrik.background.blend(Color.grey(0.9), 0.9));
  Document.initAction_{|doc| doc.background_(GUI.skins.redFrik.background.blend(Color.grey(0.9), 0.9))};
    x.window.bounds= x.window.bounds.moveBy(GUI.skins.redFrik.offset.x, 0);
    x.window.view.background_(GUI.skins.redFrik.background.blend(Color.grey(0.9), 0.9));

Document.listener.bounds_(Rect(GUI.skins.redFrik.offset.x, GUI.window.screenBounds.height-580, 450, 580));


2008-10-23 08:24 air-japan

One crazy place. So big, so impossible to grasp. Traffic, air pollution, very many and very high buildings.

sweet potatoes.

Tai chi morning.

Maglev train station. 300km/h to the airport.


2008-10-11 12:04 air-japan

Tokyo is a tough city. Very high buildings, very many people and very tired office workers near the end of the week.

Tokyo subway just before closing hour... men in business uniform spread out all over. Too tired or too drunk to go home.

This would never happen in Europe... (out of order note (I think) on a clock in this small park)

Lunch, Tokyo Opera building, 54th floor...

Japan Fire Practice

2008-10-08 14:01 air-japan

Today fire emergency practice day at IAMAS. Finally, I got to see one of these fireboxes/cabinets in action.


A great reason to put on uniforms and bring out the megaphone. There's one uniform of every occasion it seems.

Despite this, I was a little bit disappointed - no special effects or smoke machines. Everybody kept calm and the dummy didn't bounce when they used the defibrillator on its chest.

The defibrillator looks like a speak&spell. It also talks to you and instructs you how to connect the cables - in Japanese only. I'd love to circuit bend one of these.

Toilet Toy

2008-10-08 05:44 air-japan

Silly toys are everywhere. Everything should be cute and should have a mascot/icon. Even serious institutions like banks and insurance companies can't help but use little characters where ever possible. My favourite is a local bank here in Ogaki that uses the Paddington bear as their logo - for no apparent reason and probably without copyright clearance.

Here's a video of a very funny present I got from ap&bi. Tack så mycket.

japan_toalett_small.mp4, 00:57, 7.5MB


2008-08-11 05:48 supercollider

RedMst, RedTrk, RedTrk2 and RedSeq are a set of SuperCollider classes that I now finally cleaned up and released. I wrote them about a year ago and have been using them for live performances since then. They function as sort of a timeline and the basic idea is to sequence code in a very simple way.

The master keeps track of when some tracks should play and then switches them on/off with .play and .stop at the right time (next quant beat, default= 4). A track can be any code that responds to these two messages (Pbind, BBCut2, Pdef, Routine, etc).

redMst is distributed as a quark. See Quarks help file for more info on how to install.


and then recompile SuperCollider and open the RedMst help file.

Screenshot of the RedMstGUI3 example...

But RedMst can of course also be used totally without any GUI.

redUniform - Wireless Hardware

2008-07-21 07:31 electronics

I have constructed a wireless sensor system for my performance costume. It has 2 accelerometers (3-axis ADXL330, SparkFun - same as in the Wii remote I believe) and 4 switches (digital). Both receiver and transmitter use a microcontroller (ATmega8, Atmel) and a transceiver (Mirf v2, SparkFun).

Below is a short video, some pictures, SuperCollider classes and also the schematics and the complete firmware if you want to build the thing yourself.

redUniform - wireless hardware demo

The AVR programmer (USBtinyISP kit v2.0) and the electronic parts needed...

The receiver and transmitter...

Sensors are sewn in...


SuperCollider Study Group (SCSG) in Japan

2008-07-20 12:42 supercollider

tn8 and I started weekly meetings for people interested in interactive sound programming using SuperCollider. Here is our wiki with example code and discussion forum. Much of it is in Japanese but the example files should have comments in English.

We meet every Friday at 17.00 for a ~2h session. 2nd floor, new building, IAMAS, Ogaki. Open for everyone.

Also attached the files below...


« 23 / 30 »