Archieater

Posted by admin on April 28th, 2008 filed in I and I, art, openness

Archieater is a project in its sketchbook phase that aims to push the sound of a room through its own resonant frequency. The resonant frequency is determined by generating a spectral map of a space through monitoring the distortions of white noise as it is played out into the space. Once a suitable frequency has been identified a feedback loop is established and using FFT bin shifting the sound of the room is fed through its own resonant frequency. The idea is to alter the audible perception of spatial characteristics using a space’s own properties and sonorous qualities. The analysis and identification of the rooms resonant frequency is to be constantly assessed. I’m interested to hear whether, if the system is not designed to make any distinction between the space and bodies that occupy it, movement in the room will cause distortions and alterations in what is considered its primary resonant frequency, therefore altering the frequency of the feedback loop. There are obvious conceptual parallels to be drawn with the work of La Monte Young and Alvin Lucier, as well as aesthetic links with the work of Toshimaru Nakamura. The difference between my approach an theirs is fairly minimal, which does make me question how far to take this. I’m wondering whether from a research point of view a more in-depth look at the work of these artists might yield more interesting results through writing. However, it’s experimental worth in the context of my own research has compelled me to take it this far at least.

ArchiSchema

The reason for posting this now is more of a dorky/technical/SuperCollider issue. The project is in its infancy and there is lots of automation to be sorted out. For the purpose of testing the idea out I built an interface that allows me to control the bin shifting. For christmas I got Reas and Fry’s Processing book from my brother, only after working through it did I realise that I might be able to put GUI objects in an array and access their values via their index positions! The dorkyness of my excitement about this is accompanied by a hint of frustration at how obvious this must seem to someone with any decent schooling in programming. It was a real “of course!” moment, I need to read more programming books.

The result is a nicely dynamic system that allows me to create any number of synth modules (which set up the feedback loop and bin shifting) which simultaneously sets up the necessary buffers and GUI objects (sliders in this case). The sliders then control the bin shifting for each individual synth module. The reason for doing this is that I wanted one synth module to set the frequency of a feedback loop to that of the room’s primary resonant frequency and a number of others to set up feedback loops shifted to the value of a particular partial. The array based eureka moment means that I only have to specify how many modules I’d like and the rest is done for me (like I said, painfully obvious for some but a bit of a revelation for me).

Here’s how it looks and the code for anyone who might find this sort of thing useful.

SC_Dynamic_GUI

s = Server.internal.boot;
s.boot;
s.quit;

(
SynthDef(\binshifter, { arg out=0, bufnum, shift = 1.6;
var in, chain;
in = AudioIn.ar(1);
chain = FFT(bufnum, in);
chain = PV_BinShift(chain, shift);
Out.ar(out, 0.5 * IFFT(chain).dup);
}).send(s);
)

(
n = 3; //Number of FFT Synths and related GUI stuff, set to 3 in image posted above.

w = GUI.window.new(”SPATIUM”, Rect(120, 120, 170, 120)).front;
w.view.decorator = FlowLayout( w.view.bounds );
a = Array.new(n);
m = [0.25, 4].asSpec;
n.do({ |i|
s.sendMsg(”/b_alloc”, i, 1024);

i+1.do({

a.add( GUI.slider.new(w, Rect(20, 10, 160, 32))
.action_({

s.sendMsg(”/n_set”, (1000 + i), \shift, m.map(a[i].value));
(i.asString ++ “: ” ++ m.map(a[i].value)).postln

}));
});

Synth.new(\binshifter, [\bufnum, i], s, \addToHead);

});
)

Leave a Comment