Also, im Grunde wird das hier mein Fahrplan. Ich habe mir gestern Abend nochmal ein paar Notizen gemacht und einige Sachen durchgelesen und habe mir dann stichpunktartig eine mögliche Roadmap aufgeschrieben. Diese will ich an dieser Stelle mal darstellen …
Eine Sache ist klar: Das wird kein Sprint … eher ein zäher Marathon durch unwegsames Gelände. Ich habe zwar damals im Studium schon programmiert und mir auch ein gutes Grundlagenwissen in Mathematik angeeignet, aber das ist schon ein paar Jahre her. Außerdem wird das hier ein ambitioniertes Freizeitprojekt, für das ich mir Zeit freischaufeln muss. Ich arbeite in einem Tagesjob, habe Familie und und und … das Übliche.
01. Audio DSP / Mathematik und Pure Data
Ich beginne zuerst einmal mit der Theorie und gleichzeitig will ich Pure Data lernen, damit ich die Theorie auch gleich irgendwie ins Praktische umsetzen kann. Ich habe mir hierzu 6 Bücher rausgesucht, die ich teilweise sogar schon besitze, aber bisher immer nur überflogen habe
Lernmaterialien:
- Musimathics Volume 1 und 2 – Ein Rundumschlag zum Thema Musik und Mathematik. Volume 2 beschäftigt sich dann intensiver mit der digitalen Verarbeitung von Kangsignalen.
- Designing Sound – Eine Einführung in die Klangsynthese und gleichzeitig ein gutes Pure Data Lehrbuch.
- Electronic Music and Sound Design – Eigentlich wird hier Max/MSP für die praktischen Beispiele benutzt, aber ich danke das kann man leicht auf PD übertragen.
- Mathematik für Ingenieure und Naturwissenschaftler (Band 1 bis 3) – Meine Mathebücher aus dem Studium … zum Nachschlagen. Obwohl ich denke, dass Google hier ebenso hilfreich sein wird.
- Dspguide.com – Freies DSP Buch
- PD Tutorials von Cheetomoskeeto (YouTube)
- PD Tutorials von QCGInteractiveMusic (YouTube)
Wie lange bin ich hiermit beschäftigt? Gute Frage. Ich habe mir vorgenommen, irgendwie jeden Tag mindestens eine Stunde dafür freizuschaufeln … auch wenn es an vielen Tagen wohl nur eine halbe Stunde wird. Einige Grundlagen muss ich nur auffrischen, aber der Großteil ist Neuland. Ich hoffe, dass ich in einem Jahr die Grundlagen verstanden habe und in PD so sicher bin, dass ich all das Wissen recht problemlos in visuellen Code umsetzen kann.
Natürlich lernt man nicht nur aus Büchern. Ich muss mir viele verschiedene PD Patches ansehen und versuchen sie zu verstehen. Außerdem muss ich mir kleine Projekt ausdenken und diese dann in Pure Data umsetzen.
02. C++ und VCV Rack
Ich möchte mich nach der Theorie und Pure Data gleich auf C++ stürzen. C++ ist nunmal der Standard für die Audio Programmierung und das aus gutem Grund. Klar, die Sprache ist kompliziert und man kann sich die Zähne an ihr ausbeißen, aber das wird schon…
Sobald die Grundlagen einigermaßen aufgefrischt sind, würde ich gerne anfangen DSP Code in VCV Rack umzusetzen. VCV Rack ist eine modulare Open Source Synthesizer Umgebung für Linux, MacOS und Windows, die ein gutes Framework für die Programmierung eigener Module zu sein scheint.
Ich kenne die Software und freue mich darauf, irgendwann eigene Plugins zu bauen. Allerdings kommt hierbei dann auch das Entwickeln eines GUI hinzu. D.h. ich müsste mich dann auch mit dem Erstellen von Vektorgrafiken beschäftigen…
Lernmaterialien:
- C++ Primer – Mein Lieblings C++ Lehrbuch.
- Programming Principles And Practice Using C++ – Ein Lehrbuch vom C++ Erschaffer höchstpersönlich.
- Designing Audio Effect Plugins in C++ – Hier wird auch nochmal auf die DSP Theorie eingegangen und dann in C++ Code umgesetzt.
- Developing Virtual Synthesizers in VCV Rack – Interessantes Buch speziell für die Entwicklung eigener Module in VCV Rack.
- VCV Rack Plugin Development Tutorial – Offizielles Tutorial für das Entwickeln eigener Module.
- Inkscape Tutorials von TJ Free (YouTube) – Inkscape ist ein Open Source Vektorprogramm, dass man zum Erstellen von VCV Rack GUIs nutzen kann.
- Musicdsp.org – Eine Sammlung mit richtig vielen DSP Algorithmen in C++
Ok, das wird einige Zeit in Anspruch nehmen. C++ auffrischen, DSP Code in C++ umsetzen, Inkscape lernen, Lernen wie man GUIs designed … Ein Jahr wird da wohl nicht reichen, ich gehe mal von 1.5 Jahren aus, wenn ich immer am Ball bleibe.
Allerdings motiviert mich schon die Aussicht auf eigene Module in VCV Rack. Ich mag die Software und ich würde gerne einige Module beisteuern.
03. C++ und JUCE
JUCE hat sich in den letzten Jahren zum Standard Framework für die Entwicklung von VST– bzw. AU-Plugins gemausert. Das Framework ist gut dokumentiert und es gibt mittlerweile einige gute Tutorials dazu.
JUCE nimmt dem Entwickler viel Arbeit ab. Eigentlich will man ja nur DSP Code schreiben und sich mit einem GUI beschäftigen und nicht auch noch die Schnittstellen der verschiedenen Betriebssysteme implementieren etc… JUCE hilft genau hierbei.
Lernmaterialien:
- Learn Modern C++ By Building An Audio Plugin (YouTube) Dies ist ein kompletter Kurs, der 5 Stunden geht und in dem man einen 3-Band-EQ in C++/JUCE programmiert.
- Offizielle JUCE Tutorials
- Audio Programmer Channel (YouTube) – Ein Kanal mit vielen Tutorials, Talks und Interviews
Ich denke, wenn ich an dieser Stelle recht sicher in C++ bin und schon so einige DSP Algorithmen geschrieben habe, brauche ich nicht mehr allzu lange um JUCE zu lernen. Ich würde hier ein Jahr einplanen. Danach sollte ich schon recht nützliche Plugins mit einem ansprechenden GUI erstellen können.
Der Fahrplan kann sich natürlich noch ändern. Zu diesem Zeitpunkt wäre das für mich eine optimale Richtung. Derzeit interessiere ich mich mich am meisten für das Bauen von Effektplugins im Stil von Gitarren-Bodentretern. Aber wer weiß, zu was mich diese Reise sonst noch inspiriert. Wenn ich meine ungefähren Zeitangaben zusammen rechne, komme ich auf ca. 3,5 Jahre. Das ist ’ne lange Zeit, in der man immer am Ball bleiben muss … ich werde meine Schritte hier dokumentieren … 😉
2 Pingbacks