Aggressor Manual

Screenshot

What is Aggressor?:
Aggressor is a monophonic synthesizer, which can be used as a VST instrument. The synth was specifically designed to produce aggressive bass- and lead-sounds where special attention was paid on the ability to authentically emulate the typical sound of the famous TB-303. The architecture is based on the classic VCO-VCF-VCA structure where each of the building blocks goes far beyond the typical implementation of bassline synths. The user interface resembles the synthesis architecture by dividing the parameters into functional groups, where for each of these groups a seperate editor screen exists. One screen is dedicated to the settings of the 3 oscillators, a second screen is deicated to the modulations of these oscillators, a third one to filter settings and a fourth one to the amplitude envelopes and the distortion settings. Additionally there is the so called "overview screen" which puts together the most important parameters from the 4 dedicated screens - this is also the default screen which is shown when the plugIn is opened and which is shown in the screenshot above. The choice of the editor-screen is made with the menu "Screen" in the upper part of the plugIn window. I will begin with the explanation of the parameters with the global ones, which are visible in all 5 screen settings:


Global Parameters:


The Oscillator-Screen


Screenshot

The oscillator section provides 3 oscillators, where osc1 is a little bit different from the others: it can produce more than one voice at once (up to 127 - but this is overkill, mostly 1-7 voices are enough). Furthermore there are several ways in which the oscillators can interact: osc2 and/or osc3 can be syncronized to osc1, osc1 can be amplitude- and/or frequency-modulated by osc2 and/or osc3. Frequency modulation is also implemented as feedback-FM for osc1. And finally, all 3 possible ringmodulation signals can be mixed to the output. The parameters of osc1 are in particular:

Osc2 and osc3 are similar, but they don't have the unison feature. But in addition to the parameters already known from osc1 they have a Tune and a Fine paraemter which are used for detunning osc2 and osc3 relatively to osc1. Let's now have a look on the interactions between the oscillators:


The Modulation-Screen


Screenshot


The Filter-Screen


Screenshot

This raw oscillator signal now goes into the filter section, the parameters of which are:

Filter-Settings:


The Filter-Envelope:
The filter envelope is a little bit different form the standard ADSR envelope. It has a start-value an attack-time, a peak-value, a hold-time, a deacy-time, NO sustain value, a realease-time and an end-value. In the sustain phase, the frequency is exactly the value determined by the "Freq" control - a sustain-control would simply scale this and would be redundant therefore. The parameters in particular:


Frequency Modifiers:

Resonance Modifiers:


The Amplitude- and Distortion-Screen


Screenshot

The filter output signal now goes into the amplifier section which provides two amplitude-envelopes and a distrotion unit in between. The reason for two amp-envelopes is: the first envelope is prior to the distortion unit in the signal chain and acts therefore more like a distortion drive envelope whereas the secon amp-envelope is behind the distrotion unit and therefore really controls the oveall volume.

Parameters for the Amplitude-Envelopes:


Distortion Parameters:

Maybe, this explanation is not very intuitive. So i will give a picture of the resulting characteristic line of the distortion unit (here in the linear mode, which means that the transition above "Thresh" is a straight line)
Dist-Characteristic

Tip: symmetric characteristic lines create odd harmonics only whereas assymetric lines create even and odd harmonics.


The Overview-Screen


Screenshot

This screen - as already mentioned - puts together the most important parameters from the 4 other screens. The level values of the oscillators are linked to the end-values of the corresponding amplitude-ramps. The same applies to the parameters for the modulations. The amplitude envelope is the first in the signal chain, i.e the one prior to the distortion unit.


...still to be translated: Tipps zur Programmierung von authentischen 303-Basslines:
Aggressor wurde anfangs eigentlich mit dem Ziel programmiert, möglichst authentische TB-303 Sounds zu erzeugen. Da jedoch im Laufe der Entwicklung immer mehr Parameter und Features dazukamen, die es bei der 303 überhaupt nicht gibt, stellt sich jetzt möglicherweise für manchen Musiker die Frage, von welchen Parametern man lieber die Finger lassen sollte, wenn man möglichst nah an das Vorbild herankommen will. Daher hier eine entsprechende Liste mit do's und dont's:


Einige technische Details für Sounddesign-Freaks und andere Synthi-Entwickler:
Die interne Signalverarbeitung von Aggressor erfolgt ausnahmslos in 64-Bit Floating-Point Arithmetik. Sämtliche Hüllkurven und auch die LFO's werden mit Samplerate ausgelesen und die hüllkurvengesteuerten Parameter dann natürlich auch mit Samplerate aktualisiert. Das bedeutet unter Anderem, dass für jeden Abtastwert neue Filterkoeffizienten berechnet werden müssen. Dies ist durchaus nicht selbstverständlich - bei vielen digitalen Synthesizern (und Synthesesprachen wie z.B. CSound) gibt es eine Unterscheidung zwischen der Rate, mit der Audiodaten berechnet werden ("Audio-Rate" bzw. "Sample-Rate") und der Rate, mit der Kontrolldaten (Envelopes, LFO's, etc.) berechnet werden ("Control-Rate"). Meiner Meinung nach sind dies die beiden hauptsächlichen Ursachen dafür, dass Aggressor für einen monphonen Synthesizer so viel Rechenleistung in Anspruch nimmt. Außerdem schlägt das Oversampling beim Moog- und 303-Filter ziemlich heftig zu Buche. Bei den Oszillatoren kommen linear interpolierende Table-Lookup Oszillatoren zum Einsatz - ist zwar nicht das Nonplusultra, da in höheren Lagen Aliasing hörbar wird - aber dafür relativ effizient. Ich hatte mit dem Gedanken gespielt auch hier mit Oversampling + Filterung oder irgendeiner Form von bandbegrenzender Synthese zu arbeiten, hielt das aber dann doch für Overkill, da Aggressor ja eh mehr für den Bassbereich gedacht ist.


Viel Spaß beim Mucke machen wünscht Braindoc.