Eine GUI ist eine fantastische Idee … Aber welche soll es sein – SDL, wxWidgets oder Qt?
Die Wahl eines GUI-Frameworks für ein C++-Audio-Projekt ist ein „Fork in the Road“-Moment. Jede dieser Optionen lenkt das Projekt in eine völlig andere architektonische Richtung.
Da dein Kurs derzeit SDL verwendet, ist es der natürliche Favorit. So sieht der Vergleich im Kontext eines Synthesizer-Projekts aus:
SDL (Simple DirectMedia Layer) – Die „Low-Level“-Wahl
C++-Einführungskurs (Teil 2)
Einführung in C++ (Teil 2)
In diesem nächsten Beispiel bzw. Tutorial sehen wir uns ein Programm zur Klangerzeugung (auch bekannt als Synthesizer) an, für das wir die SDL-Bibliothek (Simple Direct Media Library) verwenden. Wir gehen das Programm Zeile für Zeile durch und erklären die verschiedenen Elemente.
Fangen wir an…
Zunächst haben wir die Includes für die SDL-Bibliothek; die Header-Datei werden wir uns später ansehen. Außerdem inkludieren wir cmath für mathematische Funktionen und iostream für Ein- und Ausgabe (in diesem Beispiel jedoch nur für die Ausgabe).
C++-Einführungskurs (Teil 3)
Einführung in C++ (Teil 3)
C++ OOP-Meisterschaft: Die Kraft der Komposition (Has-A)
In der Softwarearchitektur gibt es zwei grundlegende Möglichkeiten, Objekte miteinander zu verbinden: Vererbung (Is-A) und Komposition (Has-A). Während Anfänger oft versuchen, alles durch Vererbung zu lösen („Ein Oszillator ist ein Hüllkurvenmodul“), bevorzugen Profis die Komposition: „Ein Synthesizer hat ein Hüllkurvenmodul.“
1. Warum Komposition?
Stellen Sie sich unseren Synthesizer als modulares Rack vor. Jedes Modul (Oszillator, Hüllkurvenmodul) ist eine eigenständige Klasse. Die SynthEngine fungiert
als Chassis, in das diese Module eingesteckt werden.
C++-Einführungskurs (Teil 4)
Von zustandslos zu zustandsbehaftet: Filter & Komposition
In den vorangegangenen Teilen haben wir einen Oszillator gebaut. Er war „zustandslos“ – man gibt ihm eine Phase vor, und er liefert einen Wert. Es ist ihm egal, was vor einer Mikrosekunde passiert ist. Damit Musik jedoch „warm“ oder „organisch“ klingt, brauchen wir Objekte, die über ein Gedächtnis verfügen.
1. DSP allgemein: Das Konzept des Zustands
In der digitalen Signalverarbeitung (DSP) ist ein Filter zustandsbehaftet. Um den aktuellen Ausgangswert zu berechnen, muss ein Filter den vorherigen Ausgangswert kennen.
C++-Einführungskurs (Teil 5)
Mehr als nur eine Note: Polyphonie implementieren
In unseren bisherigen Tutorials war unser Synthesizer darauf beschränkt, jeweils nur eine Note zu spielen. Wenn man eine neue Taste drückte, verschwand der alte Klang einfach. Heute ändern wir das, indem wir Polyphonie implementieren – die Fähigkeit, Akkorde zu spielen und mehrere „Stimmen“ gleichzeitig zu verwalten.
1. Was ist eine „Stimme“?
Im professionellen Synthesizer-Design verwenden wir die Voice-Architektur. Eine „Voice“ ist eine in sich geschlossene Einheit, die alles enthält, was zur Erzeugung eines Klangs benötigt wird: einen Oszillator und eine Hüllkurve.
C++-Einführungskurs (Teil 6)
Einführung in die Themen Datenstrukturen, Algorithmen und Komplexität / Berechenbarkeit in C++
Achtung – dieses Tutorial ist sehr theorielastig – wir werden ein wenig über die Grundlagen von Datenstrukturen, Algorithmen und Komplexität sprechen – all das vor allem im Zusammenhang mit C – also fangen wir mit den Datenstrukturen in C an
Listen, Wörterbücher und Warteschlangen
Wir beginnen mit einigen grundlegenden Datenstrukturen, die wir bereits verwendet haben, ohne tief in die Themen einzusteigen; diese beiden sind std::vector (im Grunde Listen) und std::map (im Grunde Wörterbücher).
C++-Einführungskurs (CMake Zwischenspiel)
Einführung in effiziente Build-Tools für C++-Projekte
Wir erreichen nun einen wichtigen Meilenstein, indem wir von einem Make-basierten Build-Prozess zu einem CMake-basierten Workflow wechseln.
Die traditionelle „Rule of Three“ (die in vielen klassischen Open-Source-Projekten zu finden ist) — ./configure && make && sudo make install
— wird nach und nach durch den CMake-Ansatz ersetzt. Dieser moderne Workflow beinhaltet typischerweise das Anlegen eines separaten
Build-Verzeichnisses, um den Quellbaum sauber zu halten (sogenannte „Out-of-Source Builds“):
Build your own synthesizer modules
Einleitung
Hallo, heute möchte ich Ihnen das Grundwissen über den Selbstbau Ihrer eigenen Synthesizermodule vermitteln – diese benötigen nicht den Eurorack-Standard, obwohl sie in meinem Fall dazugehören.
Wenn Sie mit eurorack format oder einem anderen modularen Synthesizer-Standard beginnen, insbesondere aber mit dem Eurorack-Standard, werden Sie höchstwahrscheinlich von die schiere Anzahl der Hersteller und verfügbaren Produkte überwältigt sein. Einen einfachen Überblick erhalten Sie hier auf ModularGrid. Sie brauchen ein paar Wochen oder sogar Monate, um sich durch einige Testberichte auf Amzona.de zu lesen oder Synthesizer-Läden wie SchneidersLaden besuchen, um sich einen groben Überblick über die Vielfalt des Marktes zu verschaffen.
Eurorack Synthesizer - Noise Floor
On my mobile setup, the NiftyVCase I have collected my diy modules (with excepition to the Doepfer A-124, I had to include for its great sound). It features a kick-drum from erica synths, an even VCO, Sampling Modulator, A*B+C and Rampage from Befaco. As well as the Divebomb III for some delay. Last but not least a Zlon skew lfo and a BCM086 Diode Ladder High pass filter.

Eurorack Synthesizer - Jam Session
This time, we have a convoluted patch, featuring a new member, the random sequencer from rat-king, which,as the name suggests, delivers nice randomly sequences. Also we have a new mixer module, self-build. We also utilize both VCOs and both LFO modules…
