Sampling, Recording, Programmierung & Software

Kategorie: Programmierung Seite 2 von 6

Nun kann man seine Pure Data Patches auch in VCV Rack nutzen…

VCV Rack verfügt mittlerweile über eine nahezu unendliche Auswahl an Modulen – die meisten davon sind sogar kostenlos. Was aber, wenn ich meine eigenen Module erstellen will? Selbst für findige C++-Programmierer stellt das Rack eine komfortable Umgebung dar, seine eigenen Ideen relativ einfach umzusetzen. Und für alle, die in C++ nicht unbedingt zuhause sind, gibt es das Prototype-Modul.

Prototype kann man mit Skripten der Sprachen JavaScript, Lua oder SuperCollider füttern, neuerdings aber auch mit Vult’s eigener DSP Sprache und Pure Data Patches.

Seit Version 1.3.0 kann man also auch die visuelle Umgebung Pure Data nutzen, um Ideen für Module umzusetzen.

Man muss Prototype vorher mitteilen, wo auf dem Rechner sich die Pure Data Installation befindet und schon kann man seine Patches laden und ausführen. Prototype verfügt über 6 Ein- und Ausgänge…

Der einzige Wermutstropfen: Man kann nur eine Instanz von Prototype inklusive PD-Patch gleichzeitig nutzen. Diese Einschränkung hat aber nichts mit VCV Rack oder Prototype zu tun, sondern mit Pure Data selbst.

Ok, wer also nicht gleich in die C++ Welt einsteigen will, der kann sich dank Prototype erstmal mit JS, Lua, SuperCollider, Vult oder Pure Data ein wenig die Hände schmutzig machen.

https://community.vcvrack.com/t/pure-data-added-to-vcv-prototype/10583

Voltage Modular geht in die zweite Runde und hat noch einen Leckerbissen für Java Entwickler parat…

Naja, das Leckerbissen gab es auch schon in der ersten Version … egal. Voltage Modular bietet ein modulares Eurorack System in Softwareform, genauso wie z.B. Softube Modular oder das VCV Rack. Wobei Voltage Modular eher mit VCV Rack vergleichbar ist, als mit Softube’s Synthesizer System.

Voltage Modular ermöglicht es dem Nutzer ebenfalls Module von Drittanbietern in seine eigene Sammlung aufzunehmen, wenn er diese denn vorher relativ kostengünstig erworben hat. Es gibt allerdings auch einige kostenlose Bausteine.

Der Unterschied zu VCV Rack ist der Preis der Grundsoftware. Es gibt zwar im Moment noch die kostenlose Nucleus Version, die mit einem sehr übersichtlichen Satz an Grundmodulen daher kommt. Allerdings sollte ein kompletter Neuling damit erstmal einige Zeit beschäftigt sein und kann sich hiermit in Ruhe in ein modulares System einarbeiten.

Max/MSP Tagebuch – Zweite Woche: Mach’s gut, Max…

Ich habe mir in meiner zweiten Woche mit Max erstmal ein paar Grundlagen gelernt. Ein vernünftiges Fundament ist wichtig, das hat mir mein Mathelehrer an der Fachoberschule schon immer gesagt … war’n guter Mann.

Allerdings habe ich nach Langem hin und her festgestellt, dass ich mich mit meinen Programmierkünsten zunächst nur auf C++ und JUCE beschränken will und MAX daher nicht erwerben werde. Die 30 Tage Demo ist nun schon einige Tage abgelaufen und ich werde die Software jetzt erstmal wieder deinstallieren … mach’s erstmal gut, MAX … war trotzdem nett.

Audio Programmierung #07 – C++ Grundlagen: Schleifen…

Bisher haben wir gesehen, dass man den Programmablauf ändern kann und der Benutzer entscheiden kann, ob er beispielsweise eine Multiplikation oder eine Addition durchführen will. Was aber, wenn er nach der ersten Addition eine weitere ausführen möchte, oder dann vielleicht doch mal eine Multiplikation? Was, wenn das Programm nicht einfach nach der ausgeführten Berechnung enden soll?

In diesem Fall müssen wir den Code immer wieder ausführen, bis eine Bedingung nicht mehr erfüllt ist und das Programm dann beendet. D.h. das Programm müsste in einer Schleife laufen. Iterative Anweisungen, auch Schleifen genannt, führen einen Codeblock solange aus, wie eine Bedingung true ist. Es gibt drei verschiedene Varianten von Schleifen. Die while und for Anweisungen prüfen zunächst eine Bedingung, bevor ein Codeblock ausgeführt wird und die do ... while Anweisung führt erst den Codeblock aus und prüft dann die Bedingung.

Die while Anweisung

Eine while Anweisung wiederholt einen Codeblock genau solange, wie eine gegebene Bedingung true ist. Die Syntax sieht so aus:

while (condition) {
    statements ...
}

Audio Programmierung #06 – C++ Grundlagen: Die Kontrolle des Programmablaufs (switch-case)

Das Ziel eines switch-case Konstrukts ist es, einen Ausdruck gegen eine größere Auswahl von Konstanten zu vergleichen und dann dementsprechend für jede Möglichkeit etwas anderes auszuführen. Die C++ Schlüsselwörter, die wir in diesem Zusammenhang oft sehen werden, sind switch, case, default und break.

Die allgemeine Syntax sieht so aus:

switch(expression) {

    case LabelA:
        DoSomething;
        break;

    case LabelB:
        DoSomethigElse;
        break;

    // and so on ...
    default:
        DoStuffWhenExpressionIsNotHandledAbove;
        break;
}
    

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:

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:

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.

Seite 2 von 6

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