Kategorie: Tutorial Seite 3 von 9

VST-Plugin Programmierung #04 – Eine JUCE GUI Anwendung kann mehr als nur Text darstellen…

Im letzten Artikel haben wir unserer GUI Anwendung mithilfe einer Komponente (main component) etwas Inhalt geschenkt. Dieser Inhalt bestand aber nur aus einfachem Text. Das geht natürlich noch besser. Wir machen zunächst ungefähr da weiter, wo wir das letzte mal aufgehört haben. Dazu öffnen wir das letzte Projekt MainComponentTutorial nochmal und ändern die paint() Methode wieder so ab, dass uns das beliebte „Hello World!“ wieder angezeigt wird. Außerdem können wir dann auch die Member-Variable currentSizeAsString wieder entfernen (auch deren Nutzung in der resize() Methode).

Damit sieht unsere paint() Methode wieder so aus:

void MainComponent::paint (Graphics& g)
{
    g.fillAll(Colours::darkgrey);
    g.setColour (Colours::orange);
    g.setFont (28.0f);
    g.drawText ("Hello World!", getLocalBounds(),
                Justification::centred, true);  
}

Wenn wir das Projekt nun kompilieren und ausführen, haben wir wieder unser dunkelgraues Fenster mit dem orangen „Hello World!“ Text in der Mitte.

Mithilfe der Graphics Klasse können wir nun noch andere Dinge in unsere MainComponent „zeichnen“.

Audio Programmierung #05 – C++ Grundlagen: Die Kontrolle des Programmablaufs (if … else)

Die meiste Software verhält sich den Eingaben des Nutzers entsprechend. D.h. der Nutzer kontrolliert den Ablauf des Programms. Damit eine Applikation sich dementsprechend verhält, muss man Bedingungen erfüllen oder nicht erfüllen, um verschiedene Verzweigungen im Code zu betreten.

Bedingte Ausführung mit if ... else

Bisher haben wir nur Programme geschrieben, die seriell abliefen, d.h. es wurde eine Anweisung nach der anderen abgearbeitet – von oben nach unten. Jede Zeile wurde ausgeführt und keine Zeile wurde ignoriert. Aber die meisten Anwendungen funktionieren so nicht. Angenommen ein Programm soll zwei Zahlen multiplizieren, wenn der Nutzer ein m eingibt, oder sie addieren, wenn der Nutzer irgendwas anderes eingibt.

Dieses Szenario ist im folgenden Flußdiagramm dargestellt:

Abenteuer Sound Design #05 – Der Klang von Tape und Vinyl (Tape’n’Vinyl Colors)

Ich mag Tape und ich mag Vinyl, nicht nur den Sound sondern auch die Medien an sich. Aber darum soll es hier nicht gehen. Es geht hier um Sound und da sind Tape und Vinyl gerade wieder gefragt. Digitale Reproduktionen der Unzulänglichkeiten von analogen Techniken vergangener Tage rufen derzeit unzählige Entwickler auf den Plan, die haufenweise Plugins raushauen, um diese schönen Klänge in der digitalen Audio Workstation nachzuahmen.

mein geliebtes Tapedeck…

Ich selber habe auch schon so einige Plugins ausprobiert und fand manche davon richtig gut. Derzeit befindet sich aber nur das Slate’s Virtual Tape Machines in meiner Sammlung.

VST-Plugin Programmierung #03 – Die JUCE GUI Anwendung mit Leben füllen…

Das letzte mal haben wir uns eine minimale GUI Anwendung geschrieben, die zunächst ein einfaches Fenster darstellt. Wir haben etwas mit einigen Einstellungen herumgespielt, aber mehr auch nicht. Heute wollen wir diese Anwendung einmal mit Inhalt füllen.

Auch hier möchte ich mich wieder an den offiziellen JUCE Tutorials orientieren und nenne unser heutiges JUCE-Projekt MainComponentTutorial. Also starte ich wieder den Projucer, erstelle eine GUI Applikation, benenne mein Projekt und lasse wieder nur die Main.cpp generieren (create a Main.cpp only) und öffne meine IDE (Visual Studio).

Genau wie das letzte mal erstelle ich mir zunächst eine MainWindow Klasse und fülle die initialise() und shutdown() Methode mit Leben. So dass meine Main.cpp jetzt so aussieht:

Musiktheorie #01: Muss das sein? Fünf Linien und eine Reihe von Kringeln, sowie weiße und schwarze Tasten…

Zuletzt habe ich mich mit Musiktheorie in der neunten Klasse beschäftigt und auch nur, weil ich es musste. Zwei Jahre später habe ich angefangen Gitarre zu spielen und ich war mir damals sicher, dass ich niemals wieder irgendwelche Noten lesen müsste.

In den letzten Jahren habe ich mich viel mit elektronischer Musik beschäftigt und habe da so Einiges an Theorie aufgeschnappt. Und jetzt merke ich, dass es vielleicht doch besser gewesen wäre, wenn ich im Musikunterricht der neunten Klasse etwas besser zugehört hätte.

Quelle: digitaldefynd.com

Mit einem Laptop und einer Handvoll Software kann man heute so viel unglaubliches Zeugs anstellen, dass einem ganz schwindelig wird. Aus diesem Grund ist die Zahl der ambitionierten Musikproduzenten auch enorm angestiegen in den letzten 10 Jahren. Allerdings wird man kein guter Produzent oder Songwriter, wenn man sich ein paar gute Beispiele eines Genres nur oft genug anhört.

VST-Plugin Programmierung #02 – Eine grundlegende JUCE GUI Anwendung (Application window)

In der Regel verfügen Audio-Plugins – egal ob Effekt oder Instrument – über eine grafische Benutzeroberfläche (GUI). Aus diesem Grund wollen wir heute mal damit anfangen, eine minimale Anwendung in einem Fenster zu generieren und ein wenig das Aussehen unserer App ändern. Diese Einführung ist an den offiziellen Tutorials der JUCE Website angelehnt, daher nutze ich die gleichen Namen für die Projekte.

Wir starten zunächst mal den Projucer und wählen die Option GUI Application. Das Projekt nennen wie MainWindowTutorial. Oben rechts im Projucer kann ich an dieser Stelle auswählen, welche Quellcode-Dateien erzeugt werden sollen. Hier wählen wir „Create a main.cpp file only„.

Ein Max/MSP Tagebuch – Erste Woche: Erstmal die Demoversion installieren und ein wenig mit der Software anfreunden…

Letzte Woche habe ich mir die Demoversion der aktuellen Max Software heruntergeladen und installiert. Bis Mitte Mai kann ich die Programmierumgebung nun testen und mich dann entscheiden Max zu kaufen oder mieten. Ich habe Max For Live vor zwei Jahren schon mal kennen gelernt, als ich noch intensiv Ableton Live genutzt habe, daher fand ich mich recht schnell zurecht.

Max ist eine Programmiersprache. Max unterscheidet sich von anderen Programmiersprachen, weil diese Sprache visuell ist. Die Objekte, die miteinander interagieren, sind tatsächlich Objekte auf dem Bildschirm, die mit virtuellen Patchkabeln miteinander verbunden werden. Max ist allerdings nicht die einzige Sprache, die diesen Ansatz verfolgt. Pure Data wäre ein weiteres Beispiel und Max und Pure Data sind sogar eng miteinander verwandt.

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 …

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.

Seite 3 von 9

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