Kategorie: Tutorial Seite 3 von 8

Abenteuer Sound Design #04 – Claps mit Bitwig’s Grid und Found Sounds

Kick, Snare, Hihat … heute kommen dann wohl die obligatorischen Claps dran. Claps sind ja einfach zwei Hände, die zusammengeklatscht werden 🙂 Da werden wir uns wohl auch noch eine gesampelte Version ansehen, denn nichts ist einfacher als ein Händeklatschen aufzunehmen.

Für die Synthesizer-Version würde ich mich an die klassischen 808-Claps anlehnen, diese sind nämlich recht raffiniert umgesetzt. Die Wellenform zeigt, dass es sich um fünf klatschende Hände handelt, die alle etwas zeitversetzt tönen. D.h. man könnte 5 mal Noise nehmen und die Hüllkurven alle etwas im Attack versetzen und das letzte Klatschen etwas länger ausklingen lassen.

D.h. wir benötigen 5 Noise Generatoren und 5 ADSR Envelope Generatoren. Diese werden an einen Mixer angeschlossen und dieser an ein Audio-Out Modul. Das Sustain des ADSR drehe ich bei allen Hüllkurven auf 0ms, das Attack zunächst auch auf 0ms und das Decay so ungefähr auf 30-40ms. Das Decay der letzten Hüllkurve stelle ich aber auf ca. 200ms.

5 Claps …

Bitwig Tutorial #02 – Audiobearbeitung und Samples exportieren

Die Vorteile von Bitwig für’s Sound Design habe ich an anderer Stelle schon in den höchsten Tönen gelobt. Aber Bitwig hat nicht nur Instrumente, Modulatoren und Effekte, die den Sound Designer unterstützen. Die DAW eignet sich auch hervorragend um Audiomaterial grundlegend zu bearbeiten.

Audio in Bitwig editieren …

Bitwig Studio behandelt Audiomaterial etwas anders, als die meisten anderen DAWs. Während man bei Ableton oder Waveform im Arrangement oder Clip-Launcher direkt mit den Samples arbeitet, werden in Bitwig alle importierten oder aufgenommenen Samples in einem Container verpackt. In Bitwig ist dies ganz allgemein ein Clip. Die eigentlichen Samples befinden sich in diesem Clip. Ein Clip kann aber auch Midi-Noten enthalten. Nach außen hin ist es immer ein Clip, egal welcher Inhalt drin steckt. Aus diesem Grund kann man in Bitwig auch „Audioclips“ und „Midiclips“ zusammen auf einem Track einsetzen.

Audio Programmierung #03 – C++ Grundlagen: Arrays und Zeichenketten

Was ist ein Array?

Ein Array ist quasi eine Gruppe von Elementen, die eine Einheit ergeben. Diese Elemente müssen alle vom selben Typ sein (z.B. Integer Zahlen) und der Speicher der einzelnen Elemente liegt fortlaufend hintereinander. Somit kann ich mithilfe eines Indexes auf ein bestimmtes Element des Arrays zugreifen.

Angenommen wir schreiben ein Programm, bei dem der Benutzer fünf Zahlen eingeben muss. Eine Möglichkeit wäre es für diese fünf Zahlen einzelne Variablen zu deklarieren:

int firstNum = 0;
int secondNum = 0;
int thirdNum = 0;
int fourthNum = 0;
int fifthNum = 0;

Falls der Benutzer nun 500 Zahlen eingeben müsste, hätten wir ein Problem. Mit viel Zeit und Geduld könnte man das so machen, aber es geht auch einfacher. Der bessere Weg wäre es, ein Array mit fünf Zahlen zu deklarieren und diese mit 0 zu initialisieren.

VST-Plugin Programmierung #01 – JUCE installieren und „Hello Word“ – Plugin generieren…

Ja, auch wenn ich noch total am Anfang bin mit den C++ Tutorials, will ich schon mal so langsam in das JUCE Framework schauen und so langsam die ersten Gehversuche machen. Ich habe vor zwei Jahren schon mal damit angefangen und es wieder verworfen. Es wird Zeit für einen zweiten Versuch 😉

Quelle: juce.com

Was ist JUCE?

JUCE ist ein C++-Application Framework, dass teilweise Open Source ist. Dieses Framework unterstützt den Programmierer beim Erstellen von Multiplattform-GUI-Anwendungen. JUCE ist in erster Linie für die Entwicklung im Bereich Audio-Anwendungen (Standalone oder Plugins) bekannt.

Abenteuer Sound Design #03 – HiHat mit Bitwig’s Grid

Nach Kick Drum und Snare kommt natürlich ein HiHat an die Reihe. Ich benutze wieder Bitwig’s Grid hierfür. Normalerweise könnten wir das HiHat in wenigen Zeilen abfrühstücken, denn wenn man ganz schnell den typischen Sound eines typischen 808 HiHats generieren möchte, nimmt man sich einen Noise-Generator, einen ADSR und schon wäre man fast fertig. Der typische HiHat Sound einer 808 Drum Machine ist einfach nur Noise.

Typische HiHat (Quelle: keymusic.com)

Aber wir machen uns das nicht ganz so einfach. Mithilfe der Frequenzmodulation und 3 oder mehreren Sinuswellen-Oszillatoren läßt sich auch ein nettes Ergebnis erzielen, mit dem man den Klang noch etwas mehr variieren kann.

SOUL – Könnte diese Sprache das ’nächste große Ding‘ im Bereich Audio Programmierung werden?

Julian Storer ist kein unbeschriebenes Blatt … JUCE, Tracktion und Kopf der Software-Abteilung bei ROLI. Vielbeschäftigter Mann. Trotzdem hat er die letzten Jahre an einer neuen Programmiersprache für Audio und Sound gearbeitet, die seit dem November letzten Jahres im Beta-Stadion ist. Echt jetzt? Noch eine neue Programmiersprache für den Bereich Audio? Jepp.

Quelle: soul.dev

SOUL heißt das Wunderkind und will die Audio-Programmierlandschaft umkrempeln. Aber SOUL ist keine generelle Sprache um Audio-Applikationen oder Plugins zu bauen. Diese Sprache ist speziell entwickelt worden, um Echtzeit-DSP Code zu entwickeln und ist gleichzeitig eine API, um diesen Code in alle möglichen Anwendungen und auch Hardware einzubinden.

Audio Programmierung #02 – C++ Grundlagen: Variablen und grundlegende Datentypen

Variablen helfen dem Programmierer Daten temporär für eine bestimmte Zeit zu speichern. Konstanten sind Variablen, die nach der Initialisierung (nach der Zuweisung mit einem Wert) nicht mehr geändert werden dürfen. Sie bleiben halt konstant.

Alle Computer haben einen Microprozessor und einen Speicher, der für die temporäre Speicherung von Daten zuständig ist (Random Access Memory: RAM). Zusätzlich gibt es noch den Speicher, der Daten ständig speichert, oder zumindest könnten sie permanent gespeichert bleiben (Festplatte). Der Microprozessor führt das Programm aus und arbeitet mit dem RAM zusammen, um auf das Programm und eventuell gespeicherte Daten für das Programm zuzugreifen.

Der RAM Speicher ist eine große Lagerhalle mit einzelnen Räumen, auf die man über eine bestimmte Adresse zugreifen kann … zumindest kann man sich das so vorstellen. Angenommen man schreibt ein Programm, dass zwei Zahlen addiert, die der User vorher über die Tastatur eingegeben hat. In C++ (und auch in anderen Programmiersprachen) definiert man hierfür Variablen, die diese Werte dann speichern. Somit muss man sich nicht komplizierte Speicheradressen merken. Man kann diese einfach mithilfe der Namen der Variablen erreichen und darauf zugreifen.

Eine Variable zu definieren ist denkbar einfach und sieht in etwa so aus:

VariableType VariableName

oder

VariableType VariableName = InitialValue

Abenteuer Sound Design #02 – Snare Drum mit Bitwig’s Grid

Das letzte mal ging es um ein Kick Drum, heute versuchen wir mal ein Snare Drum mithilfe eines Synthesizers zu designen. Die Found Sound Variante lasse ich heute mal weg, weil das für ein Snare Drum nicht allzu interessant ist. Ich will heute auch mal Bitwig’s Grid benutzen, weil ich das gerade mal wieder für mich entdeckt habe. Ich möchte mich bei der Wahl des Software Synths nicht so festlegen, es kann sein dass ich das nächste mal wieder VCV Rack oder auch Max/MSP (darauf hätte ich mal wieder richtig Lust…) benutze, mal sehen…

Ein Snare Drum lässt sich eigentlich ähnlich wie ein Kick Drum bewerkstelligen, nur dass hier der Noise Anteil etwas wichtiger ist. Wenn man sich mal ein akustischen Snare ansieht und anhört, kann man unten ein kleines Netz aus Metallspiralen sehen und hören, dass dieses typische Schnarren erzeugt.

Den Körper des Snares ahmen wir wieder mit einem Sinus Oszillator nach, für das Schnarren nehmen wir ein Noise Modul.

Oszillator und Noise im Grid…

Audio Programmierung #01 – C++ Grundlagen: Hello World…

Ok, im letzten Teil habe ich kurz ein paar Bücher, Editoren und Compiler bzw Entwicklungsumgebungen für die C++ Programmierung aufgezählt. Am Ende habe ich noch das erste kleine Programm in den Editor getippt und übersetzt. Genau an der Stelle will ich heute wieder ansetzen und anhand des Hello World Programms erläutern, was der Compiler / Linker beim Übersetzen so macht und was die einzelnen Teile des simplen Programms zu bedeuten haben.

Ja, das klingt noch nicht spannend … und soviel kann ich schon mal sagen. Bis zur Programmierung eigener VST-Plugins wird es noch etwas dauern. Die C++ Grundlagen werden so einige Artikel umfassen und für den ein oder anderen die ganze Zeit nicht allzu spannend sein. Für mich sind sie das schon und darum kann ich es kaum abwarten anzufangen…

Hello, C++-world!

// helloworld.cpp
// This program outputs the message "Hello, C++-world!" 
// on the screen
#include <iostream>

using namespace std;
// C++ programs starts by executing the function main
int main() {    
    // output "Hello, C++-world!"
    cout << "Hello, C++-world!" << endl;    
    return 0;
}

Csound Tutorial #07 – Additive Synthese

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.

Seite 3 von 8

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