SuperCollider on Linux
Today i have installed supercollider on my ubutu system following this instructions. SuperCollider is a environment and programming language for audio synthesis simliar to chuck. SuperCollider can run on a network and uses OSC events for comunication.
After looking around in the source tree i found a plugin for vim :-)
Installations is a bit quirky (the folders 'ftpplugin', 'syntax' and 'intend' needed to be copied to ~/.vim by hand) but now i can edit my sc code using my vim - veeeery cool :-)
single lines of code can be sent to the server using F6 codeblocks are sent to the server using F5.
s.boot
(
c = { arg f=900;
var x;
x = SinOsc.ar(f);
x * 0.1
}.play;
)
c.set(, 400);
c.set(, 670);
to start te server the first line has to be sent to sclang (using F6). Then the code block starting line 2 is sent to the server (using F5)... tata - a sine wave.
sending the last 2 lines (F6 again) change the frequency of the running synth.
F12 can be used to turn all sounds off.
read more ...Parallax v2.0
Because of the OVERWHELMING amount of reader comments - aehm, i mean compared to my other blogposts - i have decided to code another version of my Parallax scrolling demo (v2.0) containing a jumping white rabbit
read more ...first nds demo
I got a nintendo DS 2 weeks ago and have hacked my first demo using the arm compilers from devkitPro. To compile the code follow the drunkencoders-Tutorial.
the program initializes the lower screen in a 2d graphics mode, and draws a circle (using the bresenham-algorithm for circles) wherever the screen is touched by the stylus. if the A button is pressed the screen is cleared. No sophisticated doublebuffering, 3d or sound stuff this time - but hey! it's the first program for a nds! and it works! :-)
#include <nds.h>
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
void setPixel( int x, int y, int color ) {
VRAM_A[x + y * 256] = color;
}
void circle( int mx, int my, int r, int color ) {
int x = 0;
int y = r;
int d = 3 - 2 * r;
while (x <= y) {
setPixel( mx + x, my + y, color );
setPixel( mx - x, my + y, color );
setPixel( mx - x, my - y, color );
setPixel( mx + x, my - y, color );
setPixel( mx + y, my + x, color );
setPixel( mx - y, my + x, color );
setPixel( mx - y, my - x, color );
setPixel( mx + y, my - x, color );
if (d < 0) {
d = d + 4 * x + 6;
} else {
d = d + 4 * ( x - y ) + 10;
y --;
}
x++;
}
}
int main(void) {
touchPosition touch;
videoSetMode(MODE_FB0);
vramSetBankA(VRAM_A_LCD);
lcdMainOnBottom();
while(1) {
scanKeys();
if(keysHeld() & KEY_TOUCH) {
touch=touchReadXY();
circle( touch.px, touch.py, 20, rand());
}
if (keysHeld() & KEY_A) {
for ( int y = 0; y < 192; y ++ ) {
for ( int x = 0; x < 256; x ++ ) {
setPixel( x, y, 0);
}
}
}
}
return 0;
}
read more ...parallax demo
A new processing sketch is online. I have coded a Parallax scrolling demo. All the graphics are drawn by hand - this demo also shows why i'm a coder and not a painter :-)
read more ...

