Sobre el proyecto

thinksynth es un sintetizador modular que genera sonido a través de un grafo de nodos DSP, que incluye osciladores, filtros, envolventes, retardos y operaciones aritméticas. Estos grafos se describen en un lenguaje personalizado y se renderizan en tiempo real. El sistema utiliza una arquitectura basada en plugins donde cada nodo es un plugin, que admite síntesis sustractiva y FM, resonadores y modelado de ondas. Los nuevos nodos pueden añadirse como bibliotecas compartidas. Características principales: - Soporte de audio y MIDI: Utiliza RtAudio y RtMidi para ofrecer compatibilidad multiplataforma con ALSA, JACK, CoreAudio, WASAPI, CoreMIDI y WinMM. - Composición algorítmica: Incluye un motor de composición que usa archivos `.gen` para describir piezas musicales como grafos. Presenta plugins de composición como ritmos euclidianos, sistemas L, cadenas de Markov, autómatas celulares y algoritmos genéticos. - Flujo de trabajo integrado: La línea entre síntesis y composición es fluida; los nodos DSP pueden actuar como etapas de composición, y los compositores pueden modificar dinámicamente los parámetros de los instrumentos. - Interfaz visual: Construida con GTK4, presenta un editor de nodos y visualizadores. - Parcheado flexible: Los parches asignan grafos DSP a canales MIDI, permitiendo que un solo instrumento superponga varias voces.