View this PageEdit this PageUploads to this PageHistory of this PageTop of the SwikiRecent ChangesSearch the SwikiHelp Guide

string rewriting basic example

Home   How To   Code Pool   Public Library   Theory   Events




(
r = Routine {
	5.do {|i|
		i.yield
	}
}
)
r.next;
r.next;
r.next;

Array.fill(5, { |i| i });

// recursive lists
z = [1, 2, 4, 3];
z[2] = z;

// characters as elements of strings
z = "wo?";
z[0];
z[0].class;

// array operations on string
z[1] = $e;
z.reverse;
z.scramble;

// simple rewriting
(
var t;
t = "wo?";
f = {
	t = t ++ t.scramble;
}
)

f.value;

// stream based rewriting
(

r = Routine {
	var t;
	t = "wo?";
	t.do { |char, i| char.yield };
	t = t.scramble;
	t.do { |char, i| char.yield };
}

)


r.next;


// substring access
"wertwert"[2..3]
t = "wertwert";
t = t[0..3-1] ++ "lumig" ++ t[3+2..];


// a simple string rewriting system
(

k = Routine {
	var t, index;
	t = "wo?";
	t.do { |char, i| char.yield };
	5.do {
		t = t ++ t.scramble;
		index = t.find("wo");
		if(index.notNil) {
					t = t[0..index-1] ++ "lumig" ++ t[index+2..];
		};
		t.do { |char, i| char.post.yield };
	};
	
	
};

)

k.next;
k.all.join;



// a simple sonified string rewriting system
(

k = Routine {
	var t, index;
	t = "wo?";
	t.do { |char, i| char.yield };
	5.do {
		t = t ++ t.scramble;
		index = t.find("wo");
		if(index.notNil) {
					t = t[0..index-1] ++ "lumig" ++ t[index+2..];
		};
		t.do { |char, i| char.post.yield };
	};
	
	
};

k = k.collect { |char| char.ascii };
k = k.collect { |zahl| zahl % 15 };
)


s.boot;
h = { |freq=440|  Resonz.ar(PinkNoise.ar(10), freq.lag, 0.01) }.play;

h.set(\freq, k.next * 200 + 100);


// a routine as a sequenced player
(
Routine {
	var z;
	loop {
		z = k.next;
		if(z.isNil) { nil.alwaysYield };
		h.set(\freq, (z + 60).midicps);
		0.1.yield;
	}

}.play;
)





(sc seminar, jrh)


Link to this Page