After some hearing experience and filter testing, I build this Anemos Sonore setup. I like about it that it does not alter the existing landscape too much, since it is based upon available material: stones that I collected around the installation. Everything else is completely reversible in about 10 minutes.
Not only the hardware setup is minimal but also the sonic alteration, a combination of pitch shifting and a bank of resonators. I discovered that the existing soundscape (waves, birds, trees, etc.) is a vital part of the experience. Therefore I plan to use a pair of open headphones for the actual installation. Also, Ben mentioned that the created soundscape changes the view into a cinematographic experience. I like that idea.
code
q = ();
(
NdefMixer(s)
Ndef(anemos) .fadeTime = 5;
Ndef(anemosKlank) .fadeTime = 15;
Spec.add(spread, [0.000001, 0.5, exp]);
Spec.add(baseFreq1, [25, 500, exp]);
Spec.add(baseFreq2, [25, 500, exp]);
)
(
Ndef(anemos, {
var src;
src = SoundIn.ar([0, 1]).tanh;
src = [src] ++ src.collect{|in, i| PitchShift.ar(in, (i*0.5)+ 0.2, [0.5, 1.75, 2.4, 4.7].reverse)}.postln;
Splay.ar(src.flat.scramble.tanh)
});
Ndef(anemosKlank, {|spread = 0.2, baseFreq1 = 50, baseFreq2 = 50|
var src, num = 10;
src = SoundIn.ar([0, 1]).tanh;
q.refs = [baseFreq1, baseFreq2].collect{|baseFreq| `[
//(baseFreq * (1..10))
(baseFreq * [0.5, 1, 2, 4, 8, 16, 32])
.collect{|item| {item * ExpRand(1 - spread, 1 + spread)}!num}.flat,
(rrand(0.1, 1)!(num*7)).sort.reverse,
(rrand(0.05, 1)!(num*7)).sort
]};
src = q.refs.collect{|ref|
DynKlank.ar(ref, src * 0.0125);
};
Splay.ar(src.flop.flat.tanh)
})
)
Ndef('anemosKlank').xset('baseFreq1', 301.98457308393, 'baseFreq2', 371.66798511884, 'spread', 0.18870315546458, 'fadeTime', 5);
Ndef('anemosKlank').xset('baseFreq1', 256.52907163039, 'baseFreq', 130.0, 'baseFreq2', 108.53592737668, 'spread', 0.0012688185147951, 'fadeTime', 5);