Процедурный малый барабан
-
22-09-2019 - |
Вопрос
Итак, у меня есть что-то вроде:
void createSinewave( short * array, int duration, int startOffset, float freq, float amp ) ; void createSquarewave( short * array, int duration, int startOffset, float freq, float amp ) ;
Другие функции "сдвигают" форму волны с некоторой низкой частоты на некоторую высокую частоту и принимают два частотных параметра.
Используя только эти функции, я смог создавать разнообразные звуки..ударный барабан, олдскульный звук лазерного огня и куча вещей, которые звучат как шаги.Мне не удалось синтезировать звук типа малого барабана.
Есть какие-нибудь предложения о том, как его сгенерировать?Какие частоты смешивать и в каких количествах их смешивать?Использовать другие типы формы волны, кроме синусоидальной, квадратной и треугольной?
Отчасти вдохновленный 64 k исполняемый файл Конкурсы.
Решение
Барабаны часто синтезируются короткими всплесками шума, например Белый, Розовый или Коричневый шум.
Из них легче всего генерировать белый шум:просто заполните свой массив случайными выборками, независимо выбранными с одинаковой вероятностью.Коричневый шум тоже довольно прост.
Другие советы