ELECTRIC OPRPHEUS ACADEMY
SPILLING THE BEANS #13 GREENSPEC
In the past years, the so-called 'freezes' were all
the rage. Particularly in instrumental music with live electronics, there
was the wish to allow tones and frequencies that occur once to stand for
all eternity (or at least for a longer time span), to 'freeze' them.
In a non-real time context, a total freeze, as we know, is no problem:
random phases in the spectrum.
If we replace all the phases in the time domain with random values, while
retaining the amplitudes, then the rhythmic structure remains, but all
frequencies are leveled – like a modulation with white noise.
The original (once again, Oskar Werner):
ow_orig.mp3
and the same with random phases:
ow_phirand.mp3
If this method, applied in the time domain, levels all frequencies, then
they, applied in the spectrum, level all time points. And this is also
the case:
ow_specphirand.mp3
All frequencies occurring in the brief sample are preserved in their amplitudes;
each temporal context, and thus the rhythmic structure as well, is dissolved
– precisely a freeze.
It becomes even clearer if we only take a small excerpt from it, for instance,
the 'a' in "gelassen":
ow_cut_specphirand.mp3
black: the spectrum of the original
blue: the spectrum of ow_phirand.mp3 (like white noise)
red: the spectrum of the vowel 'a'
A clean sound, without microloops, with a natural pulse and arbitrarily
long, depending on how large we select the buffer (VASP Script 1 in the
Appendix). However, the effect works in both time directions; each frequency
is audible until the end. That is possibly not what the composers and
live electronics artists imagine. A frequency should be 'frozen' from
the moment it appears, not already beforehand.
We have to choose another approach to this, which leads us to the topic:
'greenspec'
I have borrowed the term from a very beautiful site, 'The Colors of Noise,'
which discusses the various types of colored noises. Green noise is described
therein as the spectrum that is created if one accumulates the sounds
of this world over a long period of time. An interesting thought (one
does not have to expect the ambient sound of the universe ...).
The spectral accumulator greenspec, a core module in
AMP, has several modi. One of them is 'freeze.' Each frequency occurring
once stands still with its maximum amplitude:
ow_greenspec_freeze.mp3
Other modi would be 'heap' (occurring frequencies are thereby continuously
further accumulated and only when silence first begins does the last condition
stand still as a freeze); or 'avg' (average – an average amplitude
will be constantly determined; when silence occurs, the last freeze slowly
fades). Very interesting as well is 'logavg' (a logarithmic average):
ow_greenspec_logavg.mp3
A type of own reverberation, without a reverb function, which results
out of the sound itself (AMP Scripts 1 and 2 in the Appendix).
greenspec.freeze thereby corresponds most likely to the notion of a freeze
in live electronics. Each frequency occurring once stands still, if one
does not take action, until the end of all time. That naturally brings
up the formal question: How does one get out of there again? (Pull the
power plug out??)
To that end, there are a series of functions that can – more or
less quickly – remove this freeze.
They are adjustable in parameters:
decay – a continuous, exponential decrease
damp – decrease after a filter function
feaze – thinning out of the spectrum
focus – focusing on the strongest frequency
These fade functions can all be activated at the same time as well. And,
since we are already once in the spectrum, several standards are also
built in:
pitch – proportional pitch changes
slope – interval stretching
mirr – proportional mirroring
Here is one variant with a decay of 5 seconds and a dampening factor of
0.8 (1 would be unchanged):
ow_greenspec_damp.mp3
A thinning-out through feaze
ow_greenspec_feaze.mp3
(AMP Scripts 3 and 4 in the Appendix)
In conclusion, one more, somewhat longer example in which another interval
stretch is activated in addition to decay and feaze. The selected stretch
factor causes, among other things, each octave in the spectrum to become
a fourth + octave, each fifth to become a small seventh, and each fourth
to become a fifth. Such spectral operations will be the topic of the next
newsletters).
ow_greenspec_slope.mp3
(AMP Script 5 in the Appendix)
akueto!
G.R.
------------------------------------- VASP Script 1
size=17 "buffer
dimension 2^17=131072 samples, or 2.97sec
sfload gelassen.wav "load
sound file in buffer
clear.y "clear
right channel of stereo (complex) buffer
rmo "remove
offset (a subsonic filter)
ovp "optimize
(normalize), view (control graphic) & play
sfstore ow_orig.wav (m,z)
"write content in sound file
bbu "buffer
backup
FFT; opt; viewspec "FFT,
optimize, spectrum graphic
bbu% "restore
buffer (see bbu)
phirand "replace
phases with random values
clear.y
ovp
sfstore ow_phirand.wav (m,z)
FFT;
opt "optimize
(elsewhere it is called 'normalize')
viewspec+ (blue) "spectrum
graphic added (blue curve)
bbu%
FFT "FFT
phirand "random
phases, but this time in the spectrum
FFT- "inverse
FFT
clear.y; bevz 35ms "fade
in/fade out at zero (bevel)
ovp
sfstore ow_specphirand.wav (m,z)
bbu%
clear.y
isol 0.2sec,0.28sec; bevz 35ms "isolate
excerpt from to
ovp
FFT
opt
viewspec+ (red)
phirand
FFT-
clear.y; bevz 35ms
ovp
sfstore ow_cut_specphirand.wav (m,z)
------------------------------------- AMP Script
1
i1=gelassen.wav (m)
k1=greenspec.freeze (m,*i1,dim=4000)
out=ow_greenspec_freeze.wav (m,*k1,opt)
seg=1
dur: 5
fo: 0.1
* input scanner 1 administers
the sound file (mono)
* core module 1 is greenspec.freeze (mono, patch is input scanner 1, granular
buffer at least 4000 samples, therefore 4096)
* output sound file (mono, patch is core module 1, optimize result in
the level)
* 1 sequencer segment
* process duration 5 seconds
* fadeout at the end 0.1 seconds
------------------------------------- AMP Script 2
i1=gelassen.wav (m)
k1=greenspec.logavg (m,*i1,dim=4000)
out=ow_green_logavg.wav (m,*k1,opt)
seg=1
d: 5
fo: 0.1
------------------------------------- AMP Script 3
i1=gelassen.wav (m)
k1=greenspec.freeze (m,*i1,dim=4000)
out=ow_greenspec_damp.wav (m,*k1,opt)
seg=1
d: 5
fo: 0.1
k1.decay: 5 "decay
time parameter of core module 1
k1.damp: 0.8 "damping
parameter (1 would be undampened)
k1.direct: 0.5 "direct
share of module input (i1)
------------------------------------- AMP Script 4
i1=oskarwerner.wav (m)
k1=greenspec.freeze (m,*i1,dim=4000)
out=ow_greenspec_feaze.wav (m,*k1,opt)
seg=1
d: 10
fo: 0.1
i1.pos: 1.2
k1.decay: 10
k1.feaze: 4 "feaze
parameter of k1 (spectral thin-out)
k1.feeddur: 6.8 "limit
the input of k1 to 6.8sec
k1.direct: 0.5
------------------------------------- AMP Script
5
i1=oskarwerner.wav (m)
k2=rmo (m,*i1)
k1=greenspec.freeze (m:s,*k2,dim=4000) "mono
to stereo
out=ow_greenspec_feaze.wav (2:2,*k1,opt) "stereo
to stereo
seg=1
d: 71
fo: 0.1
i1.pos: 1.25
k1.decay: 30
k1.feaze: 2
k1.slopecenter: 300 "center
for interval stretch
k1.sloperate: 1.415 "factor
for interval stretch
k1.direct: 2