Skip to content

Romariok/virtual_synthesizer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

29 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🎹 Виртуальный Синтезатор

📝 Описание проекта

Виртуальный синтезатор с аддитивным синтезом звука, разработанный на языке 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

About

Виртуальный синтезатор с аддитивным синтезом

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •