Kategorie: Tutorial Seite 4 von 8

Csound Tutorial #06 – Ein kurzer Überblick darüber, wie Csound intern arbeitet…

Wie bereits im letzten Teil angekündigt will ich heute ein wenig die interne Arbeitsweise von Csound beleuchten und das ein oder andere nochmal wiederholen. Es könnte also vielleicht etwas trocken werden … 😉

Csound hält die Trennung von Instrument und Noten strikt ein. Eine Sammlung von Instrumenten nennt man ein Orchester (orchestra) und eine Sammlung von Noten (notes) nennt man Komposition (score). Beides wird in einer .csd Datei gespeichert (man könnte sie auch getrennt in zwei separate Dateien ablegen) und diese Datei ist direkt ausführbar.

Csound unterscheidet zwei unterschiedliche Sampleraten. Die eine ist für Audio Signale (sample rate, sr) und die andere für Kontrollsignale (control rates, kr). Ein typischer Wert für eine Control Rate wäre z.B. ein Zehntel 1/10 der Sample Rate.

Ausgehend vom Nyquist Gesetz für Audiosignale, muss die Sample Rate mindestens doppelt so hoch sein, wie die höchste Frequenz, die wir generieren wollen. Wenn wir also einen Sound mit 20.000Hz (höchste hörbare Frequenz für ein junges, gesundes menschliches Ohr) spielen wollen, muss die Sample Rate mindestens 40.000Hz betragen. Die Wahl der Sample Rate hat immer Einfluss auf die Qualität des hörbaren Audio Signals.

Abenteuer Sound Design #01 – Kick Drum Design mit Synthesizer und Found Sounds

Schon wieder eine neue Serie … ja, die Quarantäne lässt es zu. Auch diese Serie wollte ich schon immer einmal machen. Sound Design mit Synthesizern, Samplern und Found Sounds. Es gibt nichts Befriedigerendes, als sich seine eigenen Instrumente zu bauen. Sei es mithilfe von Software-Synths oder mit Found Sounds und Samplern.

Man wird momentan so dermaßen vollgeballert mit Samples, virtuellen Instrumenten, Libraries, dass man mittlerweile jedes erdenkliche Instrument zur Hand hat. Mir macht es mittlerweile gar keinen Spaß mehr mich durch die Flut an Möglichkeiten auf der eigenen Festplatte zu wühlen, auf der Suche nach einem speziellen Sound. Aus diesem Grund gehe ich in den letzten Wochen den kreativen Weg und baue mir meine eigenen Instrumente. Und genau darüber möchte ich in dieser Serie schreiben. Es geht ganz simpel los, mit einer Kick Drum. Ich weiß, dazu gibt es schon unzählige Tutorials im Netz, aber trotzdem möchte ich mit diesem einfachen Beispiel den Einstieg machen.

Ich will versuchen in jedem Artikel zwei Möglichkeiten vorzustellen, ein Instrument zu designen. Einmal mithilfe eines Synthesizers (vorzugsweise VCV Rack, da wir hier die einzelnen Bausteine nutzen und besser verstehen können, was genau passiert. Außerdem ist die Software kostenlos erhältlich.) und zum anderen mithilfe von Found Sounds. D.h. wenn ich bspw. ein Kick Drum bauen will, überlege ich mir zuerst mit welchen Sounds aus meiner Umgebung das gut funktionieren könnte, nehme diese auf und verbiege dann alles in der DAW und im Sampler.

Csound Tutorial #05 – Das Tempo eines Musikstücks…

In Csound hat man auch die Möglichkeit, das Tempo einer Komposition zu ändern. Dafür gibt es ein Statement, das speziell hierfür eingeführt wurde: das t (tempo) Statement. Die Syntax sieht folgendermaßen aus:

t    p1    p2    p3    p4    ...

wobei:

  • p1 (muss 0 sein (Beginn einer Komposition)
  • p2 gibt das Anfangstempo vor (in Beats per minute)
  • p3, p5, … Zeiten in Beats (in nicht-absteigender Reihenfolge)
  • p4, p6, … Tempi für die entsprechenden Beat-Zeiten (p4 ist der Tempowert zur Action-Zeit p3, p6 ist der Tempowert zur Action-Zeit p5, etc…

Csound Tutorial #04 – Frequenzen in Oktaven und Halbtönen, sowie Amplitude in dB…

Wie wir bisher gesehen haben, benötigt ein Oszillator die Frequenz immer in Hertz-Angaben (Hz), genauso muss die Amplitude immer in einer rohen Form (von 0 bis 32.767) angegeben werden. Das ist nicht gerade sehr komfortabel, denn wir drücken unsere Noten nun mal selten in Frequenzen aus, sondern eher in Oktaven und Halbtönen. Csound besitzt dafür einen Tonhöhen Konverter (pitch converter), der die Hertz-Zahl aus einer gegebenen Oktave und Tonhöhenklasse ermittelt (octave point pitch class).

Diese octave point pitch class Darstellung (pch) besteht aus einer Integer-Zahl, die die Oktave angibt und einem Dezimalteil, der die Halbtöne angibt. Die Oktave, die das mittlere C (261,63 Hz) enthält, wurde mit der Zahl 8 festgelegt. Deshalb:

8.00=middle C (261,63Hz)
8.01=C# (277,63Hz)
8.02=D (293,67Hz)
8.03=D# (311,13Hz)
7.09=A below middle C (220Hz)
8.09=A above middle C (440Hz)
9.00=C an octave higher than middle C (523,25Hz)
5.00=the lowest C of a piano (32,7Hz)

Csound Tutorial #03 – Envelopes

Im letzen Teil habe ich schon etwas zu Kontrollvariablen geschrieben. Ich habe gezeigt, wie man den Opcode line dazu benutzen kann, die Tonhöhe über die Zeit zu ändern. Dasselbe können wir natürlich auch mit der Lautstärke machen.

Amplitude Envelopes

instr 1
      kenv line 0, p3, 10000      ;linear ramp from 0 zo 10000
      aone oscil kenv, 320, 1     ;amplitude envelope (kenv)
      out aone
endin

Diese line Kontrollvariable ändert die Lautstärke des Tons, indem sie einen Amplitude Envelope erzeugt. Wenn man sich schon vorher ein wenig mit Synthesizern beschäftigt hat, dann ist einem solch ein Envelope Generator sicherlich schon einmal über den Weg gelaufen. Das klassische ADSR-Modul kann dafür benutzt werden. In unserem Fall lassen wir die Lautstärke von 0 auf 10.000 ansteigen. Das wäre ein Attack (A) Wert von 3 Sekunden, wobei D, S und R auf 0 gedreht wären.

ADSR in VCV Rack

Csound Tutorial #02 – Mehr über Instrumente, Funktionen und Routinen…

Im letzten Teil habe ich Grundlegendes zu Instrumenten und deren Kompositionen (Scores) geschrieben, diesmal möchte ich auf ein paar weitere Details hierzu eingehen.

Die GEN10 Routine

Das letzte mal habe ich die GEN10 Routine benutzt, um eine simple Sinuswelle zu erzeugen. Man kann aber noch viel mehr mit dieser Routine anstellen. Ich könnte beispielsweise ein Funktion mit fünf harmonisch verknüpften Sinuswellen erstellen, einfach indem ich die 1 fünf mal hinter den GEN Typen schreibe.

f1  0  4096  10   1    1    1    1    1

Alle Partiellen haben dieselbe Amplitude. GEN10 erstellt ausschließlich harmonische Komponenten, somit müssen wir der Routine nicht extra sagen, dass die Relationen harmonisch sein sollen. Wenn ich im Instrument also die Grundfrequenz ändere, werden automatisch alle Partiellen angepasst. Z.B. wenn die Grundfrequenz 220Hz beträgt, dann wird die zweite Harmonische 440 und die dritte 660 sein. Wenn wir die Fundamentale nun auf 100Hz ändern, wird die zweite zu 200 und die dritte zu 400 geändert.

Csound Tutorial #01 – Von Orchestern und Kompositionen…

Um in Csound Sound zu generieren, muss der Programmierer eine Textdatei erstellen. Die .csd Datei. In dieser Datei sind zwei grundlegende Bestandteile enthalten:

  1. Das Orchester (Orchestra)
  2. Die Komposition (Score)

In älteren Versionen der Programmiersprache wurde diese beiden Komponenten in zwei unterschiedliche Dateien geschrieben (.orc und .sco), aber mittlerweile sind es einfach zwei verschiedene Abschnitte in der Csound Datei. Sie beschreiben zum einen aus welchen Komponenten unser virtuelles Instrument (Orchestra) besteht und zum anderen die Operationen, die wir mit ihm ausführen wollen (Score). Es bestünde aber immer noch die Möglichkeit, die Teile in zwei unterschiedliche Dateien unterzubringen.

Das Grundgerüst einer .csd Datei besteht also aus einem oder mehreren Instrumenten und einem Score. Außerdem gibt es vorher noch einen Abschnitt, in dem gewisse Einstellungen vorgenommen werden können. Diese drei Bestandteile werden in den <CsoundSynthesizer> Block geschrieben. Alles was innerhalb dieses Blocks beschrieben wird, wird nachher auch verarbeitet.

Renoise Tutorial #01 – Ein Rundgang durch die DAW

Version 3.2.1 steht im Startbildschirm der neuesten Version der Tracker DAW Renoise. Lange war es still um die Software, die in erster Linie mit Samples hantiert. Im August 2019 gab es ein Lebenszeichen. Renoise und der kleine Bruder Redux (Renoise als VST Plugin) bekamen ein kleines Update. Die Community kann wieder hoffen, denn die Entwickler haben angekündigt, dass auch in Zukunft weiter an Renoise gearbeitet wird.

Aber auch wenn keine Updates mehr kommen sollten, ist die Software auch in ihrem jetzigen Zustand mehr als zu gebrauchen. Meine Meinung zu dem Updatewahn habe ich an anderer Stelle ja bereits erwähnt. In meinen Augen stellt Renoise die perfekte DAW dar, für alle die einfach etwas fokussierter arbeiten wollen. Renoise ist ohne Frage umfangreich und kommt mit Gimmicks daher, von denen die Tracker aus den 90ern nur hätten träumen können.

Renoise – nach dem Start komplett jungfräulich…

VCV Rack als Sequenzer in der DAW nutzen…

Ich habe ja hier und hier und auch hier schon über die Integration von VCV Rack in der DAW geschrieben. Allerdings habe ich noch nicht erwähnt, dass man das Rack mit seinem netten Sequenzer-Modulen eben auch als solch einen in der DAW nutzen kann. Falls man Zufallssequenzen erzeugen will, euklidische Rhythmen oder einfach lieber einen Step-Sequenzer anstatt der Piano-Roll zum Programmieren nutzen will, bietet das virtuelle modulare System ganz hervorragende Möglichkeiten.

Euklidischer Sequenzer sendet Midi Daten an DAW…

Csound – Eine Programmiersprache für Sound Design, Synthese und Komposition…

Csound wurde in 80ern des letzten Jahrhunderts von Barry Vercoe am Massachusetts Institute of Technology (MIT) entwickelt. Im Grunde ist Csound ein direkter Nachfahre der ersten Programmiersprache für elektronische Musik von Max Mathews: Music N. Csound ist kostenlos und wird unter der LPGL Lizenz verbreitet. Das System wird von einer Handvoll Entwickler gepflegt und erweitert und außerdem von einer großen Community unterstützt.

Es gibt nur wenige Dinge, die man mit Csound in Bezug auf Audio nicht anstellen kann. Csound kann Audiomaterial offline rendern oder in Echtzeit eingesetzt werden. Es kann mithilfe von MIDI oder OSC gesteuert werden und es gibt eine riesige Sammlung an Tools zur Sound Synthese und zum Verbiegen von Sounds.

CsoundQT – Ein Frontend für Csound (Quelle: csound.com)

Seite 4 von 8

Präsentiert von WordPress & Theme erstellt von Anders Norén