Процедурный малый барабан - PullRequest
6 голосов
/ 22 февраля 2010

Итак, у меня есть что-то вроде:

    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 исполняемых конкурсы.

Ответы [ 2 ]

4 голосов
/ 22 февраля 2010
2 голосов
/ 22 февраля 2010

Барабаны часто синтезируются короткими вспышками шума, например белый , розовый или коричневый шум.

Из них проще всего генерировать белый шум: просто заполните массив случайными выборками, независимо выбранными с одинаковой вероятностью. Коричневый шум также довольно прост.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...