«  …19 20 21 22 23 24 25 »

f0blog Under the Hood Updates

2008-12-11 22:26 other

Now using Drupal 6.8. (prev 5.7). No stable audio module for 6.x just yet, so all my MP3s are hidden atm. In a few days, I hope.


Why Share?

2008-12-04 23:27 other

We all know how fantastic the open-source movement is. How wonderful it is with all these people that distribute their code, schematics, data, ideas etc. for free and in such a spirit of openness. We gain so much from it and it is all really great.

But seen from the contributor's point of view, one could ask the questions: why share your hard-earned knowledge? What are the benefits and why spend a lot of time helping unknown people - often without even thanks in return? Why give away code that you care about and that have taken lots of effort and hours to write - for free? Is it for personal fame? Is it the communal spirit or some political beliefs? Or the lack of interested commercial companies?

My personal and perhaps slightly provocative answer is that I share because of egoism/self-interest. I found that by making something public, I force myself to write more reusable and understandable code. Publicising means I will proof-read, add comments and help-files and perhaps cross-platform support. Sharing also makes me reluctant to drastic change and help fixate things like interface, protocol and functionality. So after uploading code, I feel responsible to maintain it for the future throughout system and program upgrades - whether other people depend on it or not. It is the knowledge that someone _might be using it that is enough to put in that little extra effort and spend a few additional hours.

So for me as an independent software developer/artist, open-source is mainly a vehicle for caring about my own work. And it is the simple act of making it open and public that is so extremely helpful for me.

Of course, this is not the only reason. It is a great pleasure to see code I have written is helpful in other people's work, get feedback from users and see my ideas being developed a lot further by other artists. I also enjoy helping out where ever I can, passing on knowledge from people I, in turn, learned from. And being a frequent contributor in various communities do generate paid work in the form of workshops, concerts, programming jobs and technical support.

But again - the main reason I share is a selfish, practical and simple one: I write better code because I distribute it.

IAMAS Bye bye

2008-12-02 11:04 air-japan

Late autumn and my six months are over. They passed so incredibly fast I cannot believe it. But I guess that's a sign of me having had a brilliant and productive time. Thanks to staff and students. I'll miss Ogaki.

photo of IAMAS in Ogaki

Tokyo 2

2008-11-11 09:37 air-japan

After my two performances at Make: Tokyo Meeting 02, I had some time to retrace my steps in this metropolis. visiting the same places, taking the same pictures.

Now and then...

photo tokyo now photo tokyo then

Now and then...

photo tokyo now photo tokyo then

But I also made some new acquaintances: plastic food town / Kappabashi street...

photo tokyo kappabashi 1 photo tokyo kappabashi 2

the iceman...

photo tokyo ice man

window cleaners...

photo tokyo window cleaners 1 photo tokyo window cleaners 2

SuperCollider Socks

2008-11-11 05:02 supercollider

A fantastic present from tn8. Thank you so much.

//and then recompile
{RedFrik.ar(2008)}.play  //noise socks!
SuperCollider socks photo1 SuperCollider socks photo2 SuperCollider socks photo3 SuperCollider socks photo4


2008-11-04 13:55 air-japan

One peaceful place. Specially Sesshu's beautiful zen-garden of Joueiji Temple.

photo yamaguchi 1 photo yamaguchi 2 photo yamaguchi 3 photo yamaguchi 4

'a place of sonic beauty'

photo yamaguchi 5

Also, Yamaguchi is a city of hot springs (onsen) and new media art (YCAM). A very good combination.

photo yamaguchi 6

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.
SC multiple apps screenshot

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.

photo shanghai 1 photo shanghai 2 photo shanghai 3 photo shanghai 4 photo shanghai 5 photo shanghai 6 photo shanghai 7 photo shanghai 8 photo shanghai 9 photo shanghai 10 photo shanghai 11

sweet potatoes.

photo shanghai sweet potatoes

Tai chi morning.

photo shanghai tai chi morning

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

photo shanghai maglev train

«  …19 20 21 22 23 24 25 »