«first  …19 20 21 22 23 24 25 last»

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.


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...

redMstGUI3 screenshot

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.

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

redUniform electronic parts1redUniform electronic parts2

The receiver and transmitter...

redUniform circuits1redUniform circuits2

Sensors are sewn in...

redUniform photo1redUniform photo2redUniform photo3redUniform photo4

ruru 1966


  • 081008: transmitter firmware and schematics updated - added 2 more switches (pins PD6 and PD7)
  • 081010: also attached the SuperCollider class RedUniform.sc with help file

MaxPat - Max Patch Parser, Converter, Manipulator, Generator

2008-07-20 12:27 supercollider

I wrote a Max5 to Max4 patch converter in SuperCollider. The reason was to get more people to install SuperCollider. So this is software with a hidden agenda.
Download it from the page: /code/sc/#classes. See the readme for installation instructions and info on how the conversion works.

It can also be used to generate, examine, manipulate and process Max5 patches in different ways. Below are some screenshots of patches from the max-examples folder that I manipulated using this class. They might look strange but are fully functional. I just did things like add curly segments to all the patchcords.

MaxPat 1 MaxPat 5 MaxPat 16

red-framework Published on GoogleCode

2008-07-20 11:51 visuals

In June I cleaned up and released my red-framework for managing MaxMSPJitter patches. It is hosted at code.google.com/p/red-framework/ and you can get it via anonymous SVN checkout.

The framework is for stacking, chaining and mixing MaxMSPJitter patches and shows my way of organising patches. I've been working on/with it since 2006 and it now contains >100 modules. It can handle Jitter, control data, MIDI and also SoftVNS video under Max4.5.

Welcome to join the project if you are interested. It is easy to write your own modules.


(for OSX 10.4 and earlier you'll first need to install SVN separately)

In the terminal type:

svn checkout http://red-framework.googlecode.com/svn/trunk/ red-framework-read-only

Then press (p) to accept permanently.

Last, add the red-framework folder to Max's file preferences.

It is licensed under GNU GPL v2 and requires Max5+Jitter for mac OSX. It has not been tested on Windows XP yet but should run.


  • modules: generators, modulators, outputs
  • faders: cross, gain, etc.
  • slots = module+fader
  • chain = slots in series
  • stack = slots in parallel
  • mixer = go from parallel to serial


  • a max/jitter patch following a simple standard
  • it must have 2 inlets: in, ctrl
  • and 2 outlets: out, info
  • the module can be a generator, modulator or output


  • a slot is a fader + a module
  • slots also have 2 inlets: in, ctrl
  • and 2 outlets: out, info


  • builds a stack of slots - serial in and parallel out


  • builds a chain of slots - serial in and serial out


  • a mixer of slots - parallel in and serial out

Pros and cons...

Why use red-framework?

  • same for Jitter, MIDI, control data, SoftVNS
  • reusable patches
  • generalised and efficient

I have made various bigger performance patches using red-framework

Special GUI/Bpatchers for stacks, chains, mixers


  • only discrete events - no MSP
  • no OpenGL or shaders
  • too complicated to perform with
  • went back to my old OS9 patch
  • e.g. learning the effect chain - not re-ordering!

My Plugins Available as Windows Binaries

2008-07-20 11:14 supercollider

In June I compiled my tiny collection of plugins for Psycollider. (RedPhasor, RedNoise, Bit, Slub, Atari2600, Pokey etc.) They are available as separate downloads on this page: /code/sc/#plugins.

Extract and put in your userExtensionDir, recompile. Now the RedXM and RedMOD classes also work as they depend on RedPhasor.

And for reference here's my way of compiling UGens under Windows XP...

  1. install mingw (automated installer 5.1.4). Add g++ support.
  2. install pthread (2.8.0). Put it C:\pthreads-w32 or modify the path below.
  3. download SC source and put it C:\SuperCollider-Source or modify the path below.
  4. open command promt and cd to your plugin directory.
  5. g++ -shared -Wno-deprecated -O3 -Wno-unknown-pragmas -DSC_WIN32 -D__GCC__ -D_REENTRANT -DNDEBUG -DSC_MEMORY_ALIGNMENT=1 -IC: \SuperCollider-Source\Headers\plugin_interface -IC:\SuperCollider-Source\Headers\common -IC:\SuperCollider-Source\Headers\server -IC: \SuperCollider-Source\libsndfile -IC:\pthreads-w32 C:\SuperCollider-Source\windows\PlugIns\ExportHelper.cpp -o RedPhasor.scx RedPhasor.cpp

n FM7 Patches

2008-07-07 05:21 supercollider

About letting the computer generate SuperCollider code automatically... Stefan Kersten made a very nice plugin for SuperCollider. It's called FM7 and implements a 6x6 phase modulation oscillator matrix. While trying it out, I wrote some code (pasted in below) that automatically generates parameters for it. So every 8th bar it'll construct a new patch around the FM7. In these patches, the FM7 parameters are UGens with random frequency, phase, range and offset.

At times, I start the generator, lean back and listen. When something good catches my ears, I copy the generated code from the post window. Here are some ok ones I've collected... n_fm7patches and below are MP3 excerpts of the same. But the best ones I, of course, keep to myself.

By randomly generating patches and synths like this I lose a lot of control and time listening to all the generated patches. Most are crap sounding. But on the other hand, the blind randomness sometimes comes up with so strange rhythms and sounds that I never would've been able to think of myself. And the time lost could be minimised using, for instance, genetic algorithms or other types of searches in this huge parameter space.

Get FM7 by installing sc3-plugins.


//--more repetitive 2ch instant clicks 'n cuts with code generation /f0
//when you hear something you like, you can save it by copy&paste from the post window
    var syn, time= 16;  //allow each patch to run for 16sec / 8bars
        ("\n//fm7 patch"+i+"generated on"+Date.localtime).post;
        syn= ("
            var x= #"++({{{1.5.linrand.round(0.5)}!4}!3}!6).asCompileString++";
            var y= #"++({{{1.5.linrand.round(0.5)}!4}!6}!6).asCompileString++";
                var ctls= x.collect{|a| a.collect{|b| LFSaw.kr(*b)}};
                var mods= y.collect{|a| a.collect{|b| LFSaw.kr(*b)}};
                var chans= #[0, 1];
                FM7.ar(ctls, mods).slice(chans)*0.5;

«first  …19 20 21 22 23 24 25 last»