Kategorie: Programmierung Seite 1 von 2

Das nächste Jahr wird etwas tiefer…

Der Weihnachtswahnsinn ist geschafft. Obwohl es in den letzten Wochen hier etwas ruhiger war, habe ich trotzdem so einiges an neuer Software ausprobiert. Ich muss aber zugeben, dass mich 80% der neuen Instrumente und Effekte eher gelangweilt haben. Viele neue polierte und grafisch aufwendige, aufgeblasene Produkte, die manche Dinge sicherlich leichter machen … aber nicht besser.

Aus diesem Grund habe ich über die Feiertage beschlossen mal wieder etwas zurück zu treten. Ich will mein persönliches Setup etwas herunterzufahren, mehr experimentieren, Dinge besser verstehen und wieder etwas mehr in die Tiefe gehen. Dazu passt hervorragend der großartige Artikel von vor zwei Jahren, der auf David Cain’s Blog zu finden ist.

Dort geht es um ein tiefes Jahr. Ein Jahr in dem keine neuen Dinge angefangen, keine Bücher gekauft, keine neuen Hobbies begonnen und kein weiteres Equipment angeschafft wird. Es geht darum, dass man wieder Nutzen in den Dingen sucht, die man bereits besitzt und die Dinge zu Ende bringt oder voran bringt, die man bereits angefangen hat.

Endlich besser an der Gitarre werden, anstatt mit dem Piano anzufangen, Die Bücher zu Ende lesen oder erneut durchzuarbeiten, die seit langem im Regal stehen und die Vinylsammlung wirklich mehr zu schätzen lernen, anstatt ständig neue Platten zu sammeln.

Genau wie David es in seinem Artikel ausdrückt, soll es darum gehen „tiefer zu gehen, anstatt breiter“. Man kehrt den neuen angepriesenen Dingen, denen man eventuell im Netz begegnet einfach mal den Rücken zu, ignoriert sämtliche Software Updates und beschäftigt sich mit der Vielzahl an Möglichkeiten, die man bereits um sich hat. Wenn man sich solch ein „tiefes“ Jahr einfach mal vorstellt … eine Handvoll Interessen, die eventuell gemeistert wurden, anstatt dutzende von halbherzig neu begonnenen Dingen, die nach kurzer Zeit liegen gelassen werden und abgelöst wurden. Man müsste wieder lernen ohne die kleinen Dopamin-Spritzen auszukommen, die man sich verabreicht, wenn etwas Neues ausprobiert oder gekauft wird.

Für mich persönlich bedeutet das konkret, dass ich wirklich wieder intensiver Gitarre spielen will, mich mit nur einer DAW beschäftige und keine weiteren Plugins anschaffen will. Außerdem will ich mich endlich weiter mit der Programmierung von Effekten befassen und dazu tiefer in Pure Data eintauchen.

Ich gehe sogar noch einen Schritt weiter und beschränke mich mit Tropone nur noch auf Bitwig (plus Pure Data, VCV Rack und meine Gitarren-Amp-Emulation). Ich schränke mich also bewusst ein, damit ich genötigt bin mich mit den vorhandenen, einfacheren Mitteln intensiver zu beschäftigen. 2020 kann also kommen…

Pure Data #01 – Wie funktioniert Pure Data?

Die Programmierung mit Pure Data kann man sich als eine Art Datenfluss vorstellen, weil die Daten mithilfe von Verbindungen von Objekt zu Objekt fließen. Der Ausgang eines Objekts mündet im Eingang eines anderen… usw.

Die Hilfe-Datei eines OSC~ Objektes…

Objekte

Objekte in Pure Data sind einfache Boxen. Daten oder Signale geht hinein und ebenso wieder hinaus. Damit das funktioniert benötigen diese Objekte Eingänge (Inlets) und Ausgänge (Outlets). Inlets befinden sich oben am Objekt und die Outlets dementsprechend unten. Sie werden als klitzekleine Rechtecke and den Kanten der Objekte dargestellt.

Weiterlesen

Pure Data – Visuelle Open Source Audioprogrammierung

Ich habe hier schon öfters über verschiedene Programmierumgebungen zum Erstellen von Synths, Effekten oder Sequenzern geschrieben, ob es nun Max/MSP, SuperCollider, JUCE/C++ oder auch VCV Rack (obwohl das Rack keine wirkliche Programmierumgebung ist … naja) war. Eine Programmiersprache habe ich aber noch nie aufgegriffen, und das ist Pure Data.

Pure Data oder Pd wurde Anfang der 90er Jahre von Miller Puckette entwickelt und sollte zur Erzeugung von interaktiver Computermusik dienen. Puckette hat ebenfalls Max entwickelt, dass später dann zu MSP und kommerziell wurde. Pd ist immer ein freies Open Source Projekt geblieben und wurde seitdem stets erweitert.

Pure Data – Beispielpatch (Quelle: YouTube)

Weiterlesen

Audio Programmierung – Teil 01: Ein Einstieg mithilfe von VCV Rack

VCV Rack habe ich hier des öfteren schon erwähnt, gelobt und gefeiert. Auch habe ich damals etwas dazu geschrieben, wie man das Rack selbst kompiliert und das Template-Modul verwendet, um eventuell eigene Module zu programmieren.

Da ich im letzten Jahr endlich mein Hochschulkurs in C++ erfolgreich abgeschlossen habe, wird es jetzt mal höchste Zeit das Erlernte anzuwenden und zu vertiefen. Aus diesem Grund starte ich in diesem Jahr mit der Audio Programmierung – Serie. Ziel soll hier sein, eigene VST Plugins mithilfe des JUCE-Frameworks zu entwickeln.

Zunächst einmal will ich aber VCV Rack nutzen. Denn ich denke das Rack ist ein hervorragendes Framework für den Einstieg in die Audio Programmierung. Leider gibt es nicht allzu viele Tutorials, die einem hierzu an die Hand nehmen. Und auch wenn Andrew Belt, der Hauptentwickler von VCV Rack einiges getan hat, damit C++ Entwickler möglichst unkompliziert eigene Module entwickeln können, fehlt es doch an echten Anleitungen. Genau hier setzt diese Blogserie an.

The Rack…

Weiterlesen

ORCA – Ein Sequenzer, der kryptischer nicht aussehen kann … und ein Versuch einer Anleitung

Vor ein paar Tagen schreibe ich noch etwas Minimalismus in Bezug auf die Auswahl der Tools und heute komme ich mit einem neuen Sequenzer daher. Aber ORCA hat mich dermaßen von den Socken gehauen, dass dieses Tool in meinen Werkzeugkasten muss.

Wenn man ORCA startet sieht man erstmal … nix!

Ich weiß garnicht wo ich anfangen soll. Ich starte mal ganz von vorne. ORCA wurde im Sommer letzten Jahres von dem Kreativduo Hundred Rabbits veröffentlicht. Dieses Duo sind Rekka und Devine, einer Illustratorin / Autorin und einem Programmierer / Musiker, die Hundred Rabbits auf See betreiben … sie sind nämlich mit dem Segelboot unterwegs und wohnen auch auf diesem. Ja, so schön kann ein Developer Leben sein…

Weiterlesen

Ungewöhnliche Wege Rhythmen zu programmieren – Teil 2: Beats (CL)

Beats ist eine Drum Machine … eine Kommandozeilen Drum Machine. Man beschreibt seinen Beat in YAML (Yet Another Markup Language), füttert Beat mit diesem Code und man bekommt eine Wav-Datei. Klingt einfach, isses auch.

recht übersichtlich…

Weiterlesen

SuperCollider – Eine musikalische Programmiersprache, die kein Teilchenbeschleuniger ist…

Warum sollte ich Musik programmieren wollen? Wie soll das funktionieren? Wie kann folgende Codezeile musikalisch sein?

{SinOsc.ar(LFSaw.ar(XLine.kr([0.01,0.02],[400,500],100)).range(1,2000).round(200))}.play;

SuperCollider ist eine freie, objektorientierte, Müll sammelnde (Garbage Collection), auf Smalltalk basierende Programmiersprache, die es einem ermöglicht Synthesizer, Sequenzer und Effekte zu entwickeln. Außerdem ist es möglich GUIs zu programmieren und SuperCollider eignet sich hervorragend für interaktive Programmierung und Live Coding

Wenn man möchte, kann man sogar eine komplette DAW inklusive einer GUI in SuperCollider bauen (lnxstudio.sourceforge.net)

SuperCollider wurde 1996 von James McCartney (nicht zu verwechseln mit dem Sohn des Fab Four Bassisten) entwickelt und veröffentlicht. Damals war es nur auf dem Mac verfügbar und musste bezahlt werden. Seit 2002 ist SuperCollider eine freie Software unter der GNU License und wird mittlerweile von einer riesigen Community gepflegt und weiter entwickelt.

Weiterlesen

Tracktion Engine – Eine Open Source Engine zum Entwickeln von Musik- und Audio-Tools

Erst vor Kurzem hat Tracktion die komplette DAW T7 für den freien, uneingeschränkten Download freigegeben und jetzt gleich die nächste Überraschung: Die Tracktion Engine wird Open Source und kann frei verwendet werden, wenn man eigene Musik-Tools bauen will.

Das Lizenzmodell funktioniert ähnlich wie das des JUCE-Frameworks. Wenn man mit seinen Tools nicht mehr als 50.000 Dollar im Jahr verdienen will, kann man den kompletten Code umsonst einsetzen.  Falls man doch etwas größer in das Software Geschäft einsteigen will, gibt es verschiedene Modelle, bei denen man monatlich bezahlen muss.

Die komplette Engine ist als JUCE-Modul verfügbar. Somit kann man Teile der Engine auch in seinen bisherigen JUCE-Projekten verwenden.

Die Tracktion Engine unterstützt einen Haufen Plattformen (Mac, Linux, Win, Android, iOS, Raspberry Pi). Hier die Links zur offiziellen Tracktion Developer Website und zur GitHub Page:

Tracktion Engine

Tracktion Engine (GitHub)

Max For Live – Ein eigener Sampler: 03 Ich spiele mein Sample mit dem Midi-Controller…

Zumindest konnte man im letzten Beitrag schon etwas hören … aber eigentlich will ich ja nicht ständig mit der Maus auf einen Button klicken, um das zu erreichen. Nein, ich will meinen Sampler mit dem Midi-Controller bedienen!

Im ersten Artikel habe ich mithilfe eines midiin Objekts und einigen anderen Objekten meine Tonhöhe und die Anschlagstärke ermittelt. Das will ich an dieser Stelle nochmal ändern. Ich habe nämlich Probleme den Note-Off Wert auszufiltern und mein Sample würde immer zweimal getriggert werden: Nämlich wenn ich die Taste drücke und wenn ich sie wieder loslasse.

Etwas aufgeräumter…

Weiterlesen

Max For Live – Ein eigener Sampler: 02 Man bekommt etwas zu hören!

Im letzten Teil haben wir ganz langsam angefangen und zunächst einmal versucht unserem Patch mitzuteilen, welche Tasten ich auf meinem Midi-Keyboard drücke. Mithilfe des print Objekts haben wir sichtbar gemacht, welche Note ich spiele und wie stark ich diese anschlage.

Einmal Pitch und einmal Velocity…

Heute will ich endlich mal ein Audiofile laden und dieses auch abspielen können. Max kennt eine schier unendliche Zahl an Objekten und auch gibt es verschiedene Möglichkeiten eine Audiodatei zu importieren und diese dann wiederzugeben. Ich entscheide mich zunächst für das buffer~ Objekt. buffer~ ist quasi ein kleiner Bereich im RAM, den ich mit Audiomaterial füllen kann.

Weiterlesen

Seite 1 von 2

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