ELECTRIC OPRPHEUS ACADEMY
SPILLING THE BEANS #12 KEX

Eine Leidenschaft von mir ist, bekannte Dinge aus einer anderen Perspektive zu betrachten und neue Methoden und Anwendungen dabei zu entdecken.
Lange Zeit fehlte mir soetwas wie ein Hüllkurvengenerator. (In meinen älteren Stücken hatte ich Hüllkurven bei Bedarf händisch geregelt, mit einem switch und einem fader...). Die üblichen devices lösen soetwas mit attack-sustain-release, oder so ähnlich. Das war mir zu wenig organisch und ich kam zu folgender Lösung.

kex (komplementäre Exponetialfunktionen)
Man stelle sich zwei exponentiell abnehmende Hüllkurven vor, beide mit voller Amplitude beginnend, die eine langsamer abnehmend, die andere schneller:

komplementäre Exponentialfunktion

Kex

Subtrahiert man sie voneinander, so resultiert ein Verlauf, der bei Null beginnt, zunächst kontinuierlich ansteigt, um dann wieder exponentiell zu versiegen:

Kex_2

Dabei wirkt der kürzere Ausklang als attack, der längere als decay. Wenn die beiden Kurven sehr unterschiedlich sind, wird der Anklang steiler, wenn sie sehr ähnlich sind, wird der Verlauf flacher:

Kex_3

Kex_4

Ein interessanter, organischer Nebeneffekt ist, dass die flacheren Kurvenverläufe auch leiser sind. Dem könnte man natürlich durch eine Normierung entgegenwirken, es macht aber durchaus (hörbar) Sinn, so damit zu arbeiten.

Hier die drei Varianten als Hörbeispiel. Als Klang dient ein freeze eines Ausschnittes von 'Watersong' von Limpe Fuchs. (Wie so ein freeze hergestellt werden kann, hab ich anderenorts bereits beschrieben. >> SPILLING THE BEANS #1 Hall).

kex kurz
kex mittel
kex lang

Ein weiterer interessanter Aspekt ist, dass sich solche Hüllkurven schichten lassen. Ein neuer attack kann sozusagen auf einen bereits bestehenden Verlauf draufgesetzt werden, wodurch sehr dynamische rhythmische Patterns möglich werden.

Ein Motiv: Dasselbe freeze, nun in einer Serie mit Tempotranspostion und frequency shift und verschiedenen Einstellungen der Exponentialfunktionen.

akex01


Schon Anfang der Achzigerjahre verwendete ich einen analogen Hüllkurvengenerator nach diesem Prinzip. Wolfgang und Thomas Musil hatten das Gerät gebaut. Sehr gut zu hören in den Stücken LANDSCHAFT, EVE und KLEINE FUGE (>> Werke 4, ccr 404)
In VASP ist es die Routine env.kex, in AMP das Kernmodul env.kex, das im Sequenzer betrieben werden kann. Für den Workshop hat Wolfgang Musil so einen Hüllkurvengenerator auch als MAX-patch ausgeführt.

* * *

Ich persönlich liebe solche einfachen, organischen Funktionen. Aber natürlich liesse sich ein Hüllkurvengenerator auch raffinierter gestalten. Kombinationen von mehreren Funktionen wären möglich, auch complex (mit Pulsen unterschiedlicher Frequenz). Eine complexe Exponentialfunktion könnte in der xy-Darstellung beispielsweise so aussehen (in VASP gen.cexp):

Kex_5

* * *

Die Exponentialfunktion ist der Prototyp eines energetischen Ausklangverhaltens, etwa bei einem gedämpften Pendel oder bei einer ausklingenden Saite - und sie ist extrem einfach zu haben (eine Multiplikation mit einem decay-Faktor sample für sample).
Es gibt aber durchaus noch andere elementare Funktionen, die auch nicht viel aufwendiger sind. Die Gauss-Funktion zum Beispiel, eine Exponentialfunktion nach dem Quadrat der Zeit, anfangs flacher, aber dann rascher verklingend (env.gauss):

Kex_6

[In einem meiner neuesten Generatoren verwende ich eine Kombination von komplementären Exponential- und Gaussfunktionen]
Oder eine Funktion, die eine Abnahme der Amplitude wie durch wachsende Entfernung simuliert, erst steil ausklingend, dann aber nur langsam versiegend:

Kex_7

(Die violetten Striche markieren gleiche Zeitabstände, in denen die Kurve reziprok abnimmt: 1/2, 1/3, 1/4, 1/5 ...)
env.fade heisst die Funktion in VASP und es gibt sie in einigen interessanten Varianten.
[Das erklärt vielleicht auch einmal, warum ich den Begriff 'fade' nur ungern verwende, wenn bloss ein banaler Schrägschnitt gemeint ist. Was woanders fadein und fadeout benannt ist, heisst in VASP deshalb bevel (bev) - in der Regel eine kurzes Einblenden und ausblenden, damit die Ränder nicht knacksen.]

Nichtzuletzt könnte man auch unterschiedliche Spektralbereiche mit verschiedenen Hüllkurven versehen, oder variable Filter mitsteuern. Eins nach dem anderen ...

akueto
G.R.


(c) Günther Rabl 2011

------------------------------------------------

AMP script zum obigen Motiv

i1=limpe6_freeze.wav (m,vsp=flt)
k1=env.kex (m,*i1) k2=fshift (m,*k1)
out=akex01.wav (m,*k2,opt)
seg=24
time: / [[1],0,[8],1.5,[15],2.6,[22],3.1,[23],4.2,[24],5.3]
dur: [RAND(.09,.11),[7],4,[14,21,22,23],6,[24],6]
k1.att: [RAND(.01,.1),[21,22,23],6,[24],8,[],decay]
k1.dec: 2 [[7,14],4,[21],8,[22,23,24],10,[],decay]
k1.ini: 1
k1.iniamp: 1
i1.pos: / [[1,22,23,24],0]
i1.vsp: 1 [[csz/7=1],.5,[csz/7=2],.25,[22,23],.125,[24],.125]
k2.freq: 100 [csz/7=1],300,[csz/7=2],0,[22],2000,[23],2400,[24],0]