ПрограммированиеФорумЗвук

Программа-синтезатор позволяет играть на миди-клавиатуре

#0
19:04, 7 фев 2020

Это программа синтезатор синусоидальных звуков с возможностью добавления гармоник.
Через виртуальный миди-кабель может управляться секвенсером (например, Cubase).
Вывод звука идет с минимальной задержкой через библиотеку ASIO (используется дополнительно bass.dll)

Программа синтезатор позволяет играть на миди-клавиатуре.
Решил выложить на гитхаб, также чтобы не пропала.

Кому-то пригодиться как пример использования вывода звука через ASIO, вообще генерации звука как такового.

https://github.com/wiz3267/ASIOSynthesizer


Изображение

#1
23:42, 7 фев 2020

Вот так выглядит настройка ASIO
Изображение
Изображение

#2
0:57, 8 фев 2020

Блок ползунков внутри с надписями  ... -2, -1, base, 1, 2,... это как бы эквалайзер, base - амплитуда базовой частоты, а остальные это гармоники. Если гармоник нет, то в поле Actual Freq отображается реальная частота воспроизводимого звука. В более новой версии, лежащей в репозитории, отображается также длина получаемой волны из рассчета 330 метров в секунду. Для чего я это сделал? Сейчас например тестирую один басовый динамик, зажимаю Ля 110 Герц, длина волны 3 метра, в комнате раздается звук в разных частях разной амплитуды из-за интерференции.

Правее ползунков отображается информация, принимаемая с миди-клавиатуры, к примеру с картинки,
9 - это код нажатия клавиши, 17 это номер (Фа, F) клавиши миди-клавы, 102 это параметр, относящейся к скорости нажатия клавиши velocity или просто условно амплитуда нажатия. Когда клавиша отпускается посылается тоже самое с амплитудой 0.

Звуковая волна получается сложением синусов разной амплитуды и частоты.

Блок Release sound содержит ползунок, влияющий на затухание волны после отпускания клавиши.

Поле A(La)_Note содержит базовую частоту ноты Ля, обычно 440 Герц, но можно поменять строй.

После Scale 12 задает строй как равномерно темперированный, октава делится на 12 равных частей. Можно изменить, например на 24, поэкспериментировать.

Если нет миди-клавиатуры играть можно на буквенных из ряда QWERTYUIOP и цифровых клавишах, стрелки влево-вправо меняют привязку к общему пианороллу.

Изменять значения параметров можно только после нажатия кнопки "Stop Generate Mode", затем запустить вновь звук кнопкой "Generate Sound Mode".

ПрограммированиеФорумЗвук

Тема в архиве.