Skip to content

tanukiichii/KarplusStrong

Repository files navigation

🎹 Karplus-Strong Synthesizer

Интерактивный полифонический синтезатор с графическим интерфейсом, построенный на алгоритме 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-эффект — случайные искажения с управлением вероятностью и диапазоном
  • Шум

GUI-элементы

Элемент Назначение
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)

macOS

# Установка Homebrew (если ещё не установлен)
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

# Установка SDL2 и SDL2_ttf
brew install sdl2 sdl2_ttf

Ubuntu/Debian

sudo apt update
sudo apt install libsdl2-dev libsdl2-ttf-dev build-essential

Компеляция

В проекте есть Makefile, поэтому сборка максимально простая:

#Обычная сборка
make
#Сборка с последующим запуском 
make run

Запуск

./synth

About

Polyphonic Karplus-Strong string synthesizer with GUI, real-time effects (filter, waveshaper, reverb, glitch) and MIDI-like keyboard control. Built in C with SDL2.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages