About this project

thinksynth is a modular synthesizer that generates sound through a graph of DSP nodes, including oscillators, filters, envelopes, delays, and arithmetic operations. These graphs are described in a custom language and rendered in real time. The system uses a plugin-based architecture where each node is a plugin, supporting subtractive and FM synthesis, resonators, and waveshaping. New nodes can be added as shared libraries. Key features include: - Audio and MIDI Support: Utilizes RtAudio and RtMidi to provide cross-platform compatibility with ALSA, JACK, CoreAudio, WASAPI, CoreMIDI, and WinMM. - Algorithmic Composition: Includes a composition engine using `.gen` files to describe musical pieces as graphs. It features composer plugins such as Euclidean rhythms, L-systems, Markov chains, cellular automata, and genetic algorithms. - Integrated Workflow: The line between synthesis and composition is fluid; DSP nodes can act as composition stages, and composers can dynamically modify instrument parameters. - Visual Interface: Built with GTK4, featuring a node editor and visualizers. - Flexible Patching: Patches assign DSP graphs to MIDI channels, allowing a single instrument to layer multiple voices.