DreamSynth — это приложение на C# для синтеза звука и редактирования MIDI-композиций с визуализацией аудиосигналов в реальном времени. Оно предоставляет инструменты для создания и настройки звуковых волн, редактирования нот и анализа сигналов, что делает его полезным для композиторов, звуковых дизайнеров и исследователей. Построено с использованием WPF, NAudio и OxyPlot для современного интерфейса и высокой производительности.
- Генератор сигналов: Создание синусоидальных, прямоугольных и треугольных волн с настройкой частоты и амплитуды (NAudio).
- MIDI-редактор: Интерактивный интерфейс для создания, редактирования и воспроизведения нот с временной шкалой.
- Визуализация сигналов: Отображение аудиоданных в реальном времени с помощью графиков (OxyPlot).
- Настройка темпа: Регулировка BPM через слайдер для синхронизации воспроизведения.
- Многопоточная обработка: Оптимизированное воспроизведение звука с минимальными задержками.
- Интуитивный интерфейс: Построен на WPF с использованием XAML для удобного взаимодействия.
- ОС: Windows 10 или новее.
- IDE: Visual Studio 2022 с поддержкой .NET 4.7.2.
- NuGet-пакеты:
- NAudio (
2.2.1
) — для работы со звуком. - OxyPlot (
2.1.2
) — для визуализации графиков. - MathNet.Numerics (
5.0.0
) — для математических вычислений. - Microsoft.Win32.Registry (
4.7.0
) — для работы с реестром. - System.Security.Principal.Windows (
4.7.0
) — для управления доступом. - System.ValueTuple (
4.4.0
) — для поддержки кортежей.
- NAudio (
- Клонируйте репозиторий:
git clone https://github.com/alex-pyslar/DreamSynth.git
- Откройте проект:
- Запустите Visual Studio 2022.
- Откройте файл
DreamSynth.csproj
.
- Восстановите NuGet-пакеты:
- Перейдите в
Tools > NuGet Package Manager > Restore NuGet Packages
.
- Перейдите в
- Соберите проект:
- Выберите
Build > Build Solution
.
- Выберите
- Убедитесь, что аудиоустройство подключено и настроено.
- Запустите приложение через Visual Studio (
F5
) или из папкиbin\Debug\DreamSynth.exe
. - Используйте интерфейс для:
- Создания нот в MIDI-редакторе.
- Настройки параметров волн в генераторе сигналов.
- Визуализации сигналов в окне графика.
- Управления воспроизведением с помощью кнопок Play/Stop и слайдера BPM.
- MIDI-редактор:
- Кликните на холсте, чтобы добавить ноту.
- Перетаскивайте ноты для изменения времени или высоты.
- Используйте правый клик для изменения длительности.
- Генератор сигналов:
- Настройте тип волны (синус, прямоугольник, треугольник), частоту и амплитуду.
- Воспроизведение:
- Нажмите
Play
для начала воспроизведения MIDI и сигналов. - Нажмите
Stop
для остановки. - Регулируйте BPM слайдером для изменения темпа.
- Нажмите
- Визуализация:
- График в реальном времени показывает амплитуду сигнала.
- Аудиоустройства: Возможны конфликты с ASIO-драйверами; рекомендуется проверить настройки устройства.
- Производительность: При большом количестве нот может наблюдаться небольшая задержка (требуется оптимизация).
- FFT: Анализ спектра не реализован (планируется в будущих версиях).
- Реализация FFT для спектрального анализа сигналов.
- Добавление экспорта композиций в MIDI или WAV.
- Поддержка дополнительных типов волн (например, пилообразная).
- Оптимизация производительности MIDI-редактора для больших композиций.
- Добавление звуковых эффектов (фильтры, модуляция).
Проект распространяется под лицензией Apache. Подробности см. в файле LICENSE
.
Для вопросов или предложений:
- Email: [email protected]
- GitHub: github.com/alex-pyslar
Создано с ❤️ для музыкальных экспериментов и звукового дизайна