ELECTRIC OPRPHEUS ACADEMY
SPILLING THE BEANS #13 GREENSPEC

In den vergangenen Jahren waren sogenannte 'freezes' grosse Mode. Vor allem in der Instrumentalmusik mit Live-Elektronik gab es ein Verlangen danach, Töne und Frequenzen, die einmal auftreten, bis in alle Ewigkeit (oder zumindest für eine grössere Zeitspanne) stehen zu lassen, 'einzufrieren'.
In einem non-realtime Kontext ist ein totales freeze, wie wir wissen, ja kein Problem: random-Phasen im Spektrum.

Wenn wir in der Zeitebene unter Beibehaltung der Amplituden alle Phasen durch random-Werte ersetzen, dann bleibt die rhythmische Struktur erhalten, aber alle Frequenzen sind nivelliert - wie eine Modulation mit weissem Rauschen.
Das Original (wiedereinmal Oskar Werner):
ow_orig.mp3
und dasselbe mit random-Phasen:
ow_phirand.mp3
Wenn diese Methode in der Zeitebene angewendet alle Frequenzen nivelliert, dann muss sie, im Spektrum angewendet, alle Zeitpunkte nivellieren. So ist es auch:
ow_specphirand.mp3
Alle Frequenzen, die in dem kurzen sample vorkommen, bleiben in ihren Amplituden erhalten, jeder zeitliche Zusammenhang und somit auch die rhytmische Struktur ist aufgelöst, eben ein freeze.
Noch deutlicher wird das, wenn wir nur einen kleinen Ausschnitt davon nehmen, zum Beispiel das 'a' in "gelassen":
ow_cut_specphirand.mp3


schwarz: das Spektrum des Originals
blau: das Spektrum von ow_phirand.mp3 (wie weisses Rauschen)
rot: das Spektrum des Vokals 'a'

Ein sauberer Klang, ohne microloops, mit einem natürlichen Puls und beliebig lang, je nachdem, wie gross wir den buffer wählen (VASP script 1 im Anhang). Alledings wirkt der Effekt in beide Zeitrichtungen, jede Frequenz ist vom Anfang bis zum Ende hörbar. Das ist möglicherweise nicht das, was sich die Komponisten und Live-Elektroniker vorstellen. Eine Frequenz sollte ab dem Moment, wo sie in Erscheinung tritt 'eingefroren' werden, nicht auch schon vorher.
Dazu müssen wir einen anderen Ansatz wählen und somit wären wir beim Thema: 'greenspec'.

Die Benennung habe ich aus einer sehr schönen Seite entlehnt, auf der verschiedene Arten von farbigem Rauschen besprochen werden, 'The Colors of Noise'. Green noise wird darin beschrieben als das Spektrum, das entsteht, wenn man die Klänge dieser Welt über einen langen Zeitraum akumuliert. Ein interessanter Gedanke (man muss sich ja nicht gleich das Grundrauschen des Universums davon erwarten ...).

Der spektrale Akumulator greenspec, ein Kernmodul in AMP, hat mehrere modi. Einer davon ist 'freeze'. Jede Frequenz, die einmal auftritt, bleibt mit ihrer maximalen Amplitude stehen:
ow_greenspec_freeze.mp3
Andere modi wäeren 'heap' (dabei werden auftretende Frequenzen ständig weiter angehäuft und erst, wenn Stille eintritt, bleibt der letzte Zustand als freeze stehen); oder 'avg' (average - es wird ständig eine Durchschnittsamplitude ermittelt; wenn Stille eintritt, klingt das letzte freeze langsam ab). Sehr interessant auch 'logavg' (ein logarithmischer Mittelwert):
ow_greenspec_logavg.mp3
Eine Art Eigenhall, ohne Hallfunktion, der sich aus dem Klang selber ergibt. (AMP script 1 und 2 im Anhang)

greenspec.freeze entspricht dabei am ehesten der Vorstellung eines freeze in der Live-Elektronik. Jede Frequenz, die einmal auftritt, bleibt, wenn man nichts unternimmt, bis ans Ende aller Zeiten stehen. Das wirft natürlich die formale Frage auf: Wie kommt man da wieder raus ? (Netzstecker ziehen ??)
Zu dem Zweck gibt es in greenspec eine Reihe von Funktionen, die dieses freeze wieder - mehr oder weniger schnell - abbauen können. Sie sind in Parametern einstellbar:
decay - eine kontinuierliche exponentielle Abnahme
damp - Abnahme nach einer Filterfunktion
feaze - Ausdünnung des Spektrums
focus - Fokussierung auf die staerkste Frequenz
Diese Abklingfunktionen können auch alle gleichzeitig aktiviert sein. Und, weil wir schon einmal im Spektrum sind, sind auch einige Standards eingebaut:
pitch - proportionale Tonhöhenveränderung
slope - Intervalldehnung
mirr - proportionale Spiegelung

Hier einve Variante mit einem decay von 5sec und einem damp-Faktor von 0.8 (1 wäre unverändert):
ow_greenspec_damp.mp3
Eine Ausdünnung durch feaze:
ow_greenspec_feaze.mp3
(AMP scripts 3 und 4 im Anhang)
Zum Abschluss noch ein etwas längeres Beispiel, in dem ausser decay und feaze auch noch eine Intervalldehnung slope eingeschaltet ist. Der gewählte Dehnungsfaktor bewirkt, dass unter anderem jede Oktave im Spektrum zu einer Quart+Oktave wird, jede Quint zu einer kleinen Septim, jede Quart zu einer Quint. (Solche spektralen Operationen werden Thema eines der nächsten Newsletters sein).
ow_greenspec_slope.mp3
(AMP script 5 im Anhang)

akueto!
G.R.


------------------------------------- VASP script 1

size=17     "bufferdimension 2^17=131072 samples, oder 2.97sec
sfload gelassen.wav    "lade soundfile in buffer
clear.y     "loesche rechten kanal des stereo (complex) buffer
rmo         "remove offset (ein subsonic filter)
ovp         "optimiz (normalize), view (kontrollgrafik) & play
sfstore ow_orig.wav (m,z) "schreibe inhalt in soundfile
bbu         "buffer backup
FFT; opt; viewspec     "FFT, optimize, spectrum grafik
bbu%        "restore buffer (siehe bbu)
phirand     "ersetzt phasen durch random-werte
clear.y
ovp
sfstore ow_phirand.wav (m,z)
FFT;
opt          "optimize (anderswo heisst das 'normalize')
viewspec+ (blue)    "spectrum grafik dazu (blaue kurve)
bbu%
FFT          "FFT
phirand      "random phasen, diesmal aber im spektrum
FFT-         "inverse FFT
clear.y; bevz 35ms     "fadein/fadeout an nullstellen (bevel)
ovp
sfstore ow_specphirand.wav (m,z)
bbu%
clear.y
isol 0.2sec,0.28sec; bevz 35ms    "isoliere ausschnitt von bis
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 verwaltet den soundfile (mono)
* kernmodul 1 ist greenspec.freeze (mono, patch ist input scanner 1, granularer buffer mindestens 4000 samples, also 4096)
* output soundfile (mono, patch ist kernmodul 1, optimier ergebnis im pegel)
* 1 sequencer segment
* prozess duration 5 sekunden
* fadout am ende 0.1 sekunden

------------------------------------- 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    "decayzeit parameter von kernmodul 1
k1.damp: 0.8   "daempfungs parameter (1 waere ungedaempft)
k1.direct: 0.5 "direktanteil des modul-inputs (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 von k1 (spektrale zerfaserung)
k1.feeddur: 6.8   "begrenzt den input von k1 auf 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 auf stereo
out=ow_greenspec_feaze.wav (2:2,*k1,opt)    "stereo auf stereo
seg=1
d: 71
fo: 0.1
i1.pos: 1.25
k1.decay: 30
k1.feaze: 2
k1.slopecenter: 300     "zentrum für intervalldehnung
k1.sloperate: 1.415     "faktor für intervalldehnung
k1.direct: 2