Интерактивный полифонический синтезатор с графическим интерфейсом, построенный на алгоритме Karplus-Strong для физического моделирования струн. Проект написан на C с использованием SDL2.
Этот синтезатор эмулирует звучание струн с помощью алгоритма Karplus-Strong. Инструмент поддерживает полифонию (до 5 голосов одновременно), имеет встроенные эффекты.
- Полифоническая клавиатура — 12 клавиш (A, S, D, F, G, H, J + черные клавиши W, E, T, Y, U)
- Смена октав — клавиши Z (октава вниз) и X (октава вверх)
- Фильтр — резонансный LPF с управлением частотой среза и резонансом
- Waveshaper — с регулировкой драйва
- Reverb — стерео-реверберация на основе комб- и allpass-фильтров
- Glitch-эффект — случайные искажения с управлением вероятностью и диапазоном
- Шум
| Элемент | Назначение |
|---|---|
| Cutoff | Частота среза фильтра (50–2000 Гц) |
| Filer's resonans level | Резонанс фильтра (0–2) |
| Damping | Затухание струны (0–1.03) |
| Waveshaper Drive | Уровень усиления (0–1) |
| Glitch | Вероятность глитча (0–1) |
| Glitch range | Диапазон смещения для глитча (-100–100) |
| Noise level | Уровень добавляемого шума (0–1) |
| Reverb mix | Баланс сухой/мокрый (0–1) |
| Filter / Reverb / Waveshaper | Кнопки включения/выключения эффектов |
- macOS / Linux / Windows (с небольшими изменениями)
- SDL2 — графический ввод/вывод и аудио
- SDL2_ttf — рендеринг текста
- Компилятор с поддержкой C99 (gcc, clang)
# Установка Homebrew (если ещё не установлен)
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
# Установка SDL2 и SDL2_ttf
brew install sdl2 sdl2_ttfsudo apt update
sudo apt install libsdl2-dev libsdl2-ttf-dev build-essentialВ проекте есть Makefile, поэтому сборка максимально простая:
#Обычная сборка
make
#Сборка с последующим запуском
make runЗапуск
./synth