Kategorie: DIY Seite 2 von 5

Audio Programmierung #04 – C++ Grundlagen: Anweisungen, Ausdrücke und Operatoren…

Im Grunde ist ein Programm, sei es in C++ geschrieben oder in einer anderen Programmiersprache, nichts anderes als Kommandos, die nacheinander abgearbeitet werden. Diese Kommandos bestehen aus Ausdrücken und Anweisungen und nutzen Operatoren um bestimmte Berechnungen oder andere Aktionen auszuführen.

Anweisungen

Die erste wichtige Anweisung, die wir gelernt haben:

cout << "Hello World!"  << endl;

Eine Anweisung mit cout gibt Text im Terminal auf dem Bildschirm aus. In C++ enden alle Anweisungen mit einem Semikolon (;). Das Semikolon markiert die Grenze oder das Ende einer Anweisung, vergleichbar mit dem Punkt (.) in der deutschen Sprache. Die nächste Anweisung könnte direkt hinter dem Semikolon beginnen, aber aus Gründen der Übersichtlichkeit ist es ratsamer eine neue Anweisung auch in einer neuen Zeile zu beginnen.

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 …

Klevgränd’s Ting macht die kleinen Dinge zu einem wunderbaren Percussion Instrument … und mir stellt sich die Frage, ob man das nicht auch selbst machen kann?

Klevgränd hat wieder ein neues Instrument raus gebracht. Einen Sample-Player, mit 12 gesampleten Sounds von Dingen, die eigentlich fast jeder zuhause rumliegen hat. Natürlich ist das GUI der Schweden wieder herzallerliebst und die Sounds klingen super.

Unter den einzelnen Samples finden wir u.a. Autoschlüssel, Besteck, eine Tasse, ein geschlagenes Sofa, Papier und ein paar Körperteile. Dazu gibt es einen einfachen Equalizer, Hall und einen Kompressor. Zusätzlich lässt sich bei jedem einzelnen Instrument das Panning, die Lautstärke, Dynamiken, Reverb (mehrere Rooms und einen einige algorithmische Reverbs), sowie die Tonhöhe individuell einstellen.

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.

Max/MSP – Ich habe Max wiederentdeckt und mich erneut verknallt.

Ich hab vor zwei Jahren schon mal etwas mit Max For Live herumprobiert und dann wieder links liegen gelassen … wie so oft. Jetzt, wo ich seit ein paar Wochen wieder Hals über Kopf in die Programmierung eingestiegen bin (C++, Csound, Python) und ich nicht genug davon kriegen kann, habe ich mir überlegt mich nochmal mit Max anzufreunden. Ich fand Pure Data schon spannend, aber das läuft bei mir unter Win und MacOS so unstabil, dass es einfach keine Freude macht damit zu arbeiten.

Ich habe ein paar Artikel und Videos über Max gelesen und gesehen … und bin begeistert. Besonders die Möglichkeiten mit gen~ gehen mir nicht mehr aus dem Kopf. Ja, kann sein, dass ich im Moment zu viele Baustellen offen habe, aber die 30tägige Testversion von Cycling74 kommt mir gerade recht. 😀 Außerdem gibt es ein Subscription Modell für unter 10 Euro im Monat.

Quelle: cycling74.com

Was ist Max und was bedeutet MSP?

Max ist eine Programmierumgebung, in der man verschiedene Objekte mit eine Art Patchkabel verbindet. Jedes dieser Objekte hat eine andere Aufgabe, vergleichbar mit Funktionen in herkömmlichen Programmiersprachen. Der Name Max soll an Max Mathews (Entwickler der Audio-Programmiersprache MUSIC) erinnern. Max wurde für die Echtzeitkontrolle von Midi-Daten entwickelt, kann aber auch einfach Zahlen und Zeichen verarbeiten.

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: 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.

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.

Wenn man zuhause bleiben muss, kann man die Zeit auch nutzen und einfach mal eine Programmiersprache erlernen … 6 Gründe um Python zu lernen

Die aktuelle Situation aufgrund von Covid-19 zwingt uns zuhause zu bleiben. Auch wenn viele Menschen noch regelmäßig zur Arbeit gehen, bleibt ein Großteil der Freizeitaktivitäten erstmal aus. Was tun, wenn man das Haus möglichst nicht verlassen sollte? Langweilig wird uns sicherlich nicht, im Zeitalter von Streaming und Smartphones. Aber ist das eine gute Wahl, den Großteil des Tages Simpsons zu schauen? (Eventuell…)

Ich für meinen Teil nutze das Plus an eingeschränkter Freizeit mit dem Erlernen einer neuen Programmiersprache: Python! Zuletzt habe ich mit Csound eine spezielle Sprache für Sound und Synthese in Angriff genommen, aber ich vermisse eine nette Sprache für die „breite“ Programmierung. Eine „breite“ Sprache ist eine, die auf keine besondere Spezialisierung abzielt. Csound, Pure Data und SuperCollider sind Sprachen speziell für Sound- und Audio-Anwendungen; PHP und JavaScript sind für’s Web und LaTeX und HTML sind speziell entwickelt worden um Texte zu verarbeiten oder darzustellen.

Zu den allgemeinen, „breiten“ Sprachen zählen C++, Java, C#, Visual Basic, Perl, Assembler und viele mehr. Warum dann ausgerechnet Python lernen?

Python (Quelle: morioh.com)

Seite 2 von 5

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