Skip to content

News Arts and Science Teaching Media Library Services IEM - intern Contact
  You are not logged in Link icon Log in
You are here: Home » Infos & Services » Veranstaltungen » Events 2004 » CUBE Lectures 04 » Günther Rabl: VASP

Günther Rabl: VASP

vector assembler for sound processing

Bereits in den Achzigerjahren beschaeftigte ich mich theoretisch mit der Fourier-Transformation und erkannte ihre eminente Bedeutung, nicht nur fuer das eher pragmatische signal-processing, sondern vor allem auch fuer die experimentelle Klangverarbeitung in der elektroakustischen Komposition. Erst 1989 verfügte ich über einen Computer mit audio-output und erst 1994 über einen, der schnell genug war, dass das Arbeiten mit totalen FFTs, wie es mir vorschwebte, ueberhaupt einen Sinn machte. In der Folge schrieb ich ein Rahmenprogramm, um die staendig gleichen Aufgabenstellungen zu verwalten: file-handling, input und output, Parametereingaben, etc.. Zwischen 1995 und 1997 wuchs dieses Rahmenprogramm zu einer umfangreichen Sammlung von über 200 Klangverarbeitungsroutinen im Umfeld der FFT an - die FFTBOX. In nahezu allen meinen Kompositionen aus dieser Zeit bis heute hat sie Verwendung gefunden: PASSANTEN, ROLLER, FORIER AUF DER REISE NACH PRAG (1996), BETIRI (1998/99), BELCANTO (2000), MITE E-LITE (2001/02).
Diese FFTBOX war ein sehr schnell geschriebenes und danch wild gwachsenes Programm auf DOS mit einer einfachen script-Sprache und einer einfachen Kontrollgrafik - kein echter Parser, keine echter ausformulierter Prozessor.
1998 begann ich dann, die Aufgabenstellungen zu verallgemeinern und ich entwickelte mehrere, miteinander kommunizierende Prozessoren mit einem universellen 64bit-code: eine reellen und einen komplexen (beide mit vielen für Musik brauchbaren Sonderfunktion), eine Primquotienten-Prozessor (ein eigenes 1024bit Zahlenformat für komplexe harmonikale Applikationen, sowie einen Vektorprozessor (der files und buffer als Operanden verwendet), dessen eigentlicher Vorlaeufer eben die FFTBOX ist. Zudem verinheitlichte und erweiterte ich die script-Sprache und entwickelte die entsprechenden Parser dazu. Das Resultat liegt heute vor: VASP. Aeusserlich hat sich nicht viel geaendert. Ein script wird abgearbeitet und der Prozess laesst sich auf einer etwas erweiterten Kontrollgrafik verfolgen, nun aber auf WINDOWS. (Alle Programmteile sind aber so in FORTRAN geschrieben, dass sich das Ganze nicht allzuschwer auf andere Systeme übertragen lassen müsste).
Nun ist es ein echter Assembler. Jeder Befehl (command) hat einen oder mehrere Operanden, wobei die Operanden aber nicht einzelne Zahlen sind, die je nach command auf die verschiedenste Weise verknuepft werden, sondern eben Vektoren. (Ein sound-buffer von, je nach Speicherplatz, bis zu 50 Minuten Musik kann als Ganzes behandelt werden). Hier ist eine Liste der verfügbaren commands zum jetzigen Zeitpunkt, wobei viele commands durch Attribute wieder weiter differenziert werden koennen (So ist zum Beispiel dist.spow eine Verzerrung durch signed power, dist.lim eine hyperbolische limiting distortion, dist.cpd eine circular projecting distortion ....):
clear, center, mirr, opt, carry, symm, split, interleave, contract, halt, adjl, adjr, adjc, adjz, fold, cross, shift, rot, rotb, pack, pique, isol, cut, mute, peaks, valls, peakval, stretch, slope, olog, oexp, odist, orpr, otanh, abs, rad, cjg, log, exp, swap, mono, qsum, qdif, hrad, hradc, hrads, norm, rphi, rphinorm, cart, cartnorm, dphi, rdphi, dphinorm, dphinorm, phirand, rrand, phi, phinorm, neg, phidev, phidelta, rdphixch, abslog, absexp, offset, scale, idist, cpow, pan, pantr, roff, rdist, rgate, rsink, rmirr, rsteps, phishift, spin, phidist, fshift, lp, hp, bp, bst, hk, boost, limit, hkfreq, formant, randform, dphimul, dphidist, dphiabs, rphiswap, dphirand, raster, rinv, dist, rdist, chirpmod, expose, repose, load, lload, lstore, dload, dstore, sfload, sfstore, set, setfreq, wkload, wkstore, wfold, view, play, edit, stop, halt, vp, ovp, ov, FFT, WT, HILB, FRFT, OMS, CEPS, CONV
Alle commands (Transformationen, Operationen, Funktionen) koennen sowohl ganzheitlich eingesetzt werden, als auch granular. Um die beiden Ebenen, die totale und die granulare, zu verbinden, habe ich einen eigenen Datentyp eingeführt, sogenannte structures. Diese sind ein wichtiges neues Element in VASP. Structures regeln alle granularen Transformationen und Prozesse. Sie koennen analytisch gewonnen werden, generiert, haendisch eingegeben; sie koennen aus dem Prozess herausgenommen werden, ediert, in den Prozess eingeschleust. Structures bieten ausserdem eine universelle Moeglichkeit für eine ganze Reihe anderer Applikationen, wie Hüllkurven, Formantgewinnung-und überlagerung, Equalization mit unbegrenzter Anzahl von Baendern, etc..
Dazu gibt es mittlerweile auch einen eigenen structure-Prozessor, der Bearbeitungen und Verknuepfungen von Strukturen erlaubt. Hier eine Liste der bisherigen commands (auch hier wieder Differenzierungen durch Attribute):
$extract, $mount, $ipol, $dload, $dstore, $lload, $lstore, $view, $edit, $reset, $clean, $alias, $sort, $recover, $norm, $unite, $hide, $elim, $clear, $pique, $udpeaks, $udvalls, $ishift, $imirr, $ldpeaks, $ldvalls, $nivel, $shift, $stretch, $slope, $adjl, $adjr, $fit, $load, $store, $exchg, $append, $combine, $merge, $align
Vor allem der analytischen Gewinnung von structures (peaks, valleys, auch Kombinationen davon in linearer, logarithmischer oder verzerrrter Verteilung) ist viel Platz eingeraeumt. Die Qualitaet von granularen Prozessen steht und faellt mit der Strukturierung der grains. So mancher sattsam bekannter Effekt (pitch-shift, time-stretch, etc.) zeigt sich in einer ganz neuen Qualitaet, wenn die grain-Struktur organisch aus dem Klanginhalt gewonnen wird.

In meinem Vortrag moechte ich zwei Dinge bringen: Zum ersten einige spektakulaere Beispiele, in welche neuen Bereiche man mit den Mitteln von VASP vordringen kann; zum zweiten eine Beschreibung des Grundgedankens und des inneren Aufbaues, wobei ich auch einige wenig beachtete Breiche hervorheben moechten, in denen viel Ueberlegung steckt, die aber für ein kuenstlerisches Arbeiten mit so einem komplexen Programm von grosser Bedeutung sind.

 G.R.


Last modified 10.05.2004