Die additive Synthese bezieht ihre Theorie von einem Mathematiker namens Fourier. Diese besagt, dass jeder erdenkliche Klang aus einer geeigneten Mischung von vielen einzelnen elementaren Sinusschwingungen erzeugt werden kann. Man kann hiermit komplexe Wellenformen jeglicher Art erzeugen, indem man verschiedene Sinuswellen addiert.

Eine Orgel gehört zu den ersten Synthesizern der additiven Synthese… (Arturia B-3V Instrument)

Eine Orgel stellt einen frühen Vertreter der additiven Synthesizer dar. Mithilfe der Zugriegel kann man Teiltöne der Obertonreihe in Sinusform hinzufügen. Je weiter solch ein Riegel herausgezogen wird, desto lauter wird der Oberton.

Wie wir schon in einem älteren Artikel gesehen haben, kann man mit GEN10 komplexe Wellenformen erzeugen, indem man verschiedene harmonische Komponenten dazunimmt. Es ist außerdem möglich, die Lautstärke der einzelnen Komponenten zu bestimmen. So ist es möglich eine Sägezahnwelle oder Rechteckwelle zu erzeugen, einfach mithilfe der verschiedenen Komponenten.

Der klangliche Unterschied zwischen einer Sägezahn– und einer Rechteckwelle kommt zustande, weil die Sägezahnwelle eine Summe aller harmonischen Obertöne ist, während die Rechteckwelle die Summe der ungeraden Harmonien ist.

Beispiel einer Sägezahnwelle (nur 10 Harmonien):

f1   0   4096   10   10   5   3.3   2.5   1.6   1.4   1.25   1.1   1
Sägezahnwelle…

Beispiel einer Rechteckwelle (nur 9 Harmonien):

f2   0   4096   10   10   0   3.3   0   2   0   1.4   0   1.1
Rechteckwelle…

Durch’s Ändern der relativen Gewichtung der einzelnen Obertöne, kann man viele verschiedene Timbren erzeugen.

Die einzelnen Komponenten müssen aber nicht in harmonischer Relation stehen. Ein wichtiger Punkt, wenn man interessante Timbres erzeugen will, ist die Nutzung nicht-harmonischer Obertöne. Man könnte auch Timbres erzeugen, die nur aus nicht-harmonischen Komponenten bestehen.

Harmonien sind ganzzahlige Vielfache ihrer Fundamentalen:

f (fundamental), 2*f (second harmonic), 3*f, 4*f, 5*f, 6*f, 7*f, 8*f, usw…

D.h., wenn die Fundamentale 200Hz beträgt, dann ist die 2te Harmonische 400Hz und die 3te 600Hz, usw… Komponenten, die nicht-harmonische Obertöne der Fundamentalen sind, nennt man unharmonische Komponenten. Im Folgenden wollen wir harmonische Obertöne benutzen und diese im Laufe der Zeit unharmonisch machen und wieder zurück, mithilfe von Glissandos. Somit erzeugen wir dann Sounds, die innerhalb eines Zeitrums ihr Timbre ändern.

Dafür benötigen wir Kontrollvariablen. Jede einzelne harmonische Komponente bekommt einen eigenständigen Envelope zum Kontrollieren der Frequenz und Amplitude. Das Ändern einer harmonischen Frequenz und Amplitude – abhängig der anderen Wellenform-Komponenten – ist ein wesentlicher Bestandteil natürlicher Sounds. Aus diesem Grund ist es wichtig diese Parameter zu kontrollieren, um natürliche und lebendige Sounds zu kreieren.

Im folgende Beispiel benutze ich den Opcode oscili, der identisch zu oscil ist, aber einem interpolierten digitalen Synthesizer entspricht. Die Syntax ist die gleiche, aber das Audiosignal ist von besserer Qualität.

<CsoundSynthesizer>

<CsOptions>
   -o dac      ;realtime audio
</CsOptions>

<CsInstruments>
  sr = 48000
  ksmps = 10
  nchnls = 2
  
  instr 1
      k2hrm expseg    200, p3/2, 234, p3/2, 200
      k3hrm expseg    300, p3/2, 333, p3/2, 300
      k4hrm expseg    400, p3/2, 376, p3/2, 400
      k5hrm expseg    500, p3/2, 527, p3/2, 500
      k6hrm expseg    600, p3/2, 609, p3/2, 600
      k7hrm expseg    700, p3/2, 715, p3/2, 700
      k8hrm expseg    800, p3/2, 853, p3/2, 800
      
      afund oscili    3900, 100,   1
      ahrm2 oscili    3900, k2hrm, 1
      ahrm3 oscili    3900, k3hrm, 1
      ahrm4 oscili    3900, k4hrm, 1
      ahrm5 oscili    3900, k5hrm, 1
      ahrm6 oscili    3900, k6hrm, 1
      ahrm7 oscili    3900, k7hrm, 1
      ahrm8 oscili    3900, k8hrm, 1
      
      out   afund+ahrm2+ahrm3+ahrm4+ahrm5+ahrm6+ahrm7+ahrm8, 
               afund+ahrm2+ahrm3+ahrm4+ahrm5+ahrm6+ahrm7+ahrm8
  endin
</CsInstruments>

<CsScore>
  f1   0   4097   10   1
  i1   0   10   
</CsScore>

</CsoundSynthesizer>

Am Anfang ist das Spektrum harmonisch und aufgrund der Envelopes wird das Signal langsam unharmonischer, bis es zum Ende hin wieder harmonisch wird. Hier noch ein weiteres Beispiel:

<CsoundSynthesizer>

<CsOptions>
   -o dac      ;realtime audio
</CsOptions>

<CsInstruments>
  sr = 48000
  ksmps = 10
  nchnls = 2
  
  instr 2
      k2hrm expseg    200, p3/2, 220, p3/2, 200
      k3hrm expseg    300, p3/2, 320, p3/2, 300
      k4hrm expseg    400, p3/2, 420, p3/2, 400
      k5hrm expseg    500, p3/2, 520, p3/2, 500
      k6hrm expseg    600, p3/2, 620, p3/2, 600
      k7hrm expseg    700, p3/2, 720, p3/2, 700
      k8hrm expseg    800, p3/2, 820, p3/2, 800
      
      afund oscili    3800, 100,   1
      ahrm2 oscili    1900, k2hrm, 1
      ahrm3 oscili    1900, k3hrm, 1
      ahrm4 oscili    1900, k4hrm, 1
      ahrm5 oscili    1900, k5hrm, 1
      ahrm6 oscili    1900, k6hrm, 1
      ahrm7 oscili    1900, k7hrm, 1
      ahrm8 oscili    1900, k8hrm, 1
      ahrm2b oscili    1900, 200, 1
      ahrm3b oscili    1900, 300, 1
      ahrm4b oscili    1900, 400, 1
      ahrm5b oscili    1900, 500, 1
      ahrm6b oscili    1900, 600, 1
      ahrm7b oscili    1900, 700, 1
      ahrm8b oscili    1900, 800, 1
      
      out   afund+ahrm2+ahrm3+ahrm4+ahrm5+ahrm6+ahrm7+ahrm8+
            ahrm2b+ahrm3b+ahrm4b+ahrm5b+ahrm6b+ahrm7b+ahrm8b, 
            afund+ahrm2+ahrm3+ahrm4+ahrm5+ahrm6+ahrm7+ahrm8+
            ahrm2b+ahrm3b+ahrm4b+ahrm5b+ahrm6b+ahrm7b+ahrm8b
  endin
</CsInstruments>

<CsScore>
  f1   0   4097   10   1
  i2   0   10   
</CsScore>

</CsoundSynthesizer>

Hier benutzen wir immer ein Paar von Oszillatoren für jede Komponente. In jedem Paar ändert sich die Frequenz bei einem Oszillator um 20Hz, während der andere konstant bleibt. Deswegen hören wir ein ansteigendes Beating (bis zu 20 Beatings pro Sekunde). Zum Ende hin nimmt das Beating wieder ab.

Diese beiden Beispiele haben nur Änderungen der Frequenz mithilfe von Envelopes genutzt. Wie sieht es mit der Amplitude aus?

<CsoundSynthesizer>

<CsOptions>
   -o dac      ;realtime audio
</CsOptions>

<CsInstruments>
  sr = 48000
  ksmps = 10
  nchnls = 2
  
  instr 3
      k2hrm expseg    234, 1, 200, p3-1, 200
      k3hrm expseg    333, 1, 300, p3-1, 300
      k4hrm expseg    376, 1, 400, p3-1, 400
      k5hrm expseg    527, 1, 500, p3-1, 500
      k6hrm expseg    609, 1, 600, p3-1, 600
      k7hrm expseg    715, 1, 700, p3-1, 700
      k8hrm expseg    853, 1, 800, p3-1, 800
      
      kampodd   linseg  0, .1, 5000, .1, 2000, 2, 2000, 2,
                        7000, p3-6.2, 1000, 2, 0
      kampeven  linseg  0, .1, 5000, .1, 2000, 2, 2000, 2, 
                        0, p3-6.2, 6000, 2, 0
      
      afund oscili    kampeven, 100,   1
      af    oscili    kampodd,  100,   1
      ahrm2 oscili    kampeven, k2hrm, 1
      ahrm3 oscili    kampodd,  k3hrm, 1
      ahrm4 oscili    kampeven, k4hrm, 1
      ahrm5 oscili    kampodd,  k5hrm, 1
      ahrm6 oscili    kampeven, k6hrm, 1
      ahrm7 oscili    kampodd,  k7hrm, 1
      ahrm8 oscili    kampeven, k8hrm, 1
      
      out   afund+af+ahrm2+ahrm3+ahrm4+ahrm5+ahrm6+ahrm7+ahrm8,
            afund+af+ahrm2+ahrm3+ahrm4+ahrm5+ahrm6+ahrm7+ahrm8

  endin
</CsInstruments>

<CsScore>
  f1   0   4097   10   1
  i3   0   8   
</CsScore>

</CsoundSynthesizer>

Dieses Beispiel erzeugt einen Sound mit einem plötzlichen Attack und einem langen Decay. Am Anfang ist das Timbre unharmonisch und später harmonisch. Sobald der Sound harmonisch wird, werden die ungeraden Komponenten lauter, genauso wie die geraden Komponenten, aber jede hat einen anderen Envelope dafür.

Soviel für heute. Das nächste mal schauen wir uns ein paar andere Funktionsgeneratoren und Oszillatoren an…