Kategorie: Tutorial Seite 3 von 8

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.

Up To Date – News und Kurioses für Audio Enthusiasten KW15

News

Wenn man Musik macht, sollte man sich dabei auch wohlfühlen. The Wellness Starter Pack ist ein Werkzeugkasten für’s Wohlbefinden und beinhaltet Themen, wie Ernährung, Schlaf, Bewegung und eine positive Einstellung.

Die Programmierer von Audio Plugins kennen das: Man schaut den halben Tag auf Quellcode und muss sich ständig im Kopf die Zusammenhänge klar machen. Man kann natürlich mit Zettel und Stift Notizen anfertigen, aber ich mag die Idee, dass der Autor einer Software direkt im Quellcode Skizzen macht. Explaining Code using ASCII Art

Quelle: github.com

Der Synthmaster One Synthesizer für iPad und iPhone ist nun kostenlos erhältlich. Allerdings nur noch bis zum 15. April. Synthmaster One ist ein mächtiger Wavetable Synth mit mehr als 650 Presets…

Quelle: kv331audio.com

Chocolatey – der süße Paketmanager für Windows

Wer schon einmal mit Linux oder MacOS gearbeitet hat, der kennt das Terminal. Der kennt auch die Möglichkeit mit Paketmanagern wie Homebrew (MacOS) oder Apt / Pacman / Yum (Linux) Software zu installieren, deinstallieren oder aktuell zu halten.

Pakete … (Quelle: pexels.com)

Seit ein paar Wochen besitze ich wieder ein Windows Notebook und nach einigen Versuchen mit Linux (meine Musiksoftware wollte nicht so wie ich will…) bin ich zu Windows 10 gewechselt. Wenn ich unter Windows Software installieren will, browse ich zur entsprechenden Seite im Netz, lade die Datei herunter und später installiere ich dann alles. Unter Unix Systemen geht das wesentlich einfacher.

Audio Programmierung: Der Einstieg mit C++

Ziemlich genau vor zwei Jahren habe ich einige Artikel zur VST-Entwicklung mit C++ und JUCE geschrieben und kurze Zeit später aus Zeitmangel nicht fortgesetzt. Ein Jahr später schrieb ich wieder einen ähnlichen Artikel, diesmal ging es um die Entwicklung von eigenen Modulen für das modulare Synthesizer-System VCV Rack. Auch das habe ich nicht wirklich weiter verfolgt.

Vor ein paar Wochen habe ich angefangen Python zu lernen und das hat meine Programmierlust wieder so richtig geweckt. Als ich dann vor ein paar Tagen eine Email von einem Leser des Blogs bekam, der ein paar Fragen zum Thema VST-Programmierung mit C++ und JUCE hatte, war das Feuer wieder entfacht.

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.

Seite 3 von 8

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