You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Виртуальный синтезатор с аддитивным синтезом звука, разработанный на языке Rust. Проект позволяет генерировать и воспроизводить различные музыкальные звуки с помощью компьютерной клавиатуры.
✨ Возможности
Генерация различных типов звуковых волн
Интерактивное пианино с двумя октавами
Переключение между различными звуковыми профилями
Визуализация пианино с графическим интерфейсом
🎮 Управление
Нижняя половина клавиатуры - первая октава
Верхняя половина клавиатуры - вторая октава
Стрелки влево/вправо - переключение между звуковыми профилями
🔊 Звуковые профили
Базовые формы волн (Преобразование Фурье)
Тип волны
Описание
Визуализация
Синусоидальная
Классическая чистая волна
Пилообразная
Резкий тембр с богатыми гармониками
Квадратная
Насыщенный звук с нечетными гармониками
Треугольная
Мягкий звук с ослабленными гармониками
Тангенциальная
Сложный спектр с нелинейными характеристиками
Комплексные звуки (Сложение нескольких волн)
Профиль
Описание
Визуализация
Орган
Имитация звучания органа
Колокол
Имитация звона колокола
Внешние библиотеки
Библиотека
Описание
Визуализация
Lancer (wavegen)
Библиотека генерации волн
🧩 Структура проекта
virtual_synthesizer/
├── src/ # Исходный код
│ ├── data/ # Модели данных и коллекции звуков
│ ├── services/ # Сервисы генерации и обработки звука
│ ├── utils/ # Вспомогательные функции
│ └── main.rs # Главный файл приложения
├── resources/ # Ресурсы приложения
│ └── piano.jpg # Изображение пианино
├── docs/ # Документация и графические материалы
└── Cargo.toml # Конфигурация проекта и зависимости
🛠️ Технологии
Rust - основной язык программирования
rodio - библиотека для работы со звуком
winit - создание окон и обработка событий
softbuffer - рендеринг графики
wavegen - генерация звуковых волн
flacenc - кодирование звука в формат FLAC
🚀 Запуск проекта
# Клонирование репозитория
git clone https://github.com/your-username/virtual_synthesizer.git
# Переход в директорию проектаcd virtual_synthesizer
# Сборка и запуск проекта
cargo run