6.1. Hüllkurven
Ein Hüllkurvengenerator (englisch 'envelope generator') dient der Modellierung des Lautstärkeverlaufs eines Klangs. Es handelt sich also um einen Generator von Zahlenwerten im Wertebereich [0..1], dessen Zeitverlauf flexibel eingestellt werden kann. In vielen Computermusiksystemen gibt es bereits Unitgeneratoren, die solche Hüllkurven erzeugen. Man entscheidet dabei zwischen folgenden Typen:
Abschnittsweise definierte Hüllkurvengeneratoren. Diese Generatoren können im Normalfall beliebig viele Segmente mit variabler Dauer und variablen Zielwerten enthalten. Dabei können die Punkte der Segmente durch 'lineare' Abbildung 6.1, „Abschnittsweise definierte Hüllkurve mit linearen Segmenten“ oder 'exponentielle' Abbildung 6.2, „Abschnittsweise definierte Hüllkurve mit exponentiellen Segmenten“ Werteverläufe verbunden werden. Die Dauernwerte zwischen benachbarten Segmenten können dabei als absolute Zeitwerte definiert werden, oder proportional bezogen auf eine Gesamtdauer angegeben werden. Es ist wichtig, zu beachten, dass die y-Werte der Segmente von exponentiellen Hüllkurven positiv sein müssen, und 'nicht' auf den Wert 0 enthalten dürfen.
Abbildung 6.1. Abschnittsweise definierte Hüllkurve mit linearen Segmenten
Abbildung 6.2. Abschnittsweise definierte Hüllkurve mit exponentiellen Segmenten
Hüllkurvengeneratoren mit einer vordefinierten Anzahl und Funktion von Segmenten. Hierzu zählen 'ADSR Hüllkurvengeneratoren', die zumeist Bestandteil traditioneller Analogsynthesizer sind. Die Buchstaben ADSR stehen dabei für Attack, Decay, Sustain und Release.
Abbildung 6.3. ADSR Hüllkurve
Abbildung 6.3, „ADSR Hüllkurve“ zeigt den Verlauf eines solchen Hüllkurvengenerators. Mit dieser Form der Hüllkurve soll das Ein- und Ausschwingverhalten von Instrumenten, und damit deren Artikulation simuliert werden.
- Die Attack Zeit gibt dabei die Dauer an, mit der der Hüllkurvengenerator von 0 auf den Wert 1 geht.
- Die Decay Zeit gibt die Dauer an, mit der der Hüllkurvengenerator direkt im Anschluß von 1 auf den 'Sustain Level' geht.
- Der Sustain Level ist ein Wert zwischen 0 und 1, der die Lautstärke des Klangs nach dem durch den Attack und Decay simulierten Einschwingvorgang angibt.
Die Release Zeit gibt die Dauer an, mit der der Hüllkurvengenerator am Ende des Klangs vom Sustain Level auf den Wert 0 geht. Damit wird das Ausschwingverhalten eines Klanges simuliert.
Wie aus Abbildung 6.4, „Besipiele verschiedener ADSR Hüllkurven“ hervorgeht, lassen sich mit diesen Werten verschiedene traditionelle Artikulationen von Musikinstrumenten realisieren.
Abbildung 6.4. Besipiele verschiedener ADSR Hüllkurven
Bei Analogsynthesizern sind die Werte für Attack, Decay und Release immer absolute Zeitwerte, bei Computermusiksystemen existieren sowohl absolute, als auch proportionale Formen4:
Wenn Instrumente live auf Tastaturen gespielt werden sollen, macht es Sinn, die Gesamtdauer des Klanges vom Spiel des Instrumentalisten abhängig zu machen. ADSR Hüllkurvengeneratoren funktionieren dabei so, dass Sie beim Auslösen des Klanges (beispielsweise durch das Drücken einer Taste auf dem Keyboard) zunächst die Einschwingphase (Attack und Decay) ausführen und dann den Sustain Level beibehalten, bis die Taste losgelassen wird. Durch das Loslassen der Taste wird die Release Phase ausgelöst und der Ton klingt, bis zum Ende dieser Phase weiter. Dadurch ist die Gesamtdauer des Klangs um die Dauer des Release Wertes länger, als die Dauer, in der die Taste gedrückt wurde (siehe Abbildung 6.3, „ADSR Hüllkurve“ unten).
Manche Computermusiksysteme, wie SuperCollider, simulieren dieses Verhalten mit Hilfe einer speziellen Variable, die 'Gate' genannt wird. Zu Beginn des Klangs wird dieser Wert auf 1 gesetzt. Der Klang wird dann solange gehalten, bis dieser Wert auf 0 gesetzt wird. Es ist dann Aufgabe des Anwenders, das Zeitverhalten des Klangs und die Hüllkurven für diese beiden Gatewerte zu definieren.
4: Unter proportionaler Form versteht man Dauerangaben, die sich auf die Gesamtlänge eines Klangs beziehen. Dabei wird die Gesamtlänge auf den Wertebereich 0..1 normalisiert. Eine Attackzeit von 0.2 bedeutet also, dass der Attack in 1/5 der Gesamtdauer des Klanges erfolgt ↩