Я никогда не слышал термин «пэд», который здесь применяется, но он звучит как синтезаторный звук, играющий мажорные аккорды.
В качестве начала, чтобы представить одну ноту, вы могли бы генерировать синусоидальные волны на основной частоте ноты (скажем, 440 Гц, если мы говорим о мажоре), и следующие несколько кратных этого (880, 1760, 3520) и суммируйте их с некоторыми (уменьшающимися) весами.Затем добавьте другие ноты аккорда (C # и E), воспроизводимые таким же образом.
Если это покажется вам полезным, я могу расширить при необходимости.
РЕДАКТИРОВАТЬ:Под «некоторыми (уменьшающимися) весами» я имел в виду добавление обертонов, умноженных на некоторое усиление, например,
F = 440; // Hz
tone[t] = A * sin(t/F) + B * sin(t/(2*F)) + C * sin(t/(3*F)); // + etc, perhaps
, где, возможно,
A = 1.0;
B = 1.0/2.0;
C = 1.0/3.0;
или что-то подобное.
Для фильтра ADSR (посмотрите вверх), вы умножите сгенерированную форму волны на усиление, которое увеличивается от 0 до 1 в течение периода «атаки», который вы выбираете, а затем уменьшается в течение периода «затухания» до некоторого числа, которое вы выбираете.(возможно, 0,7), затем линейно падает до 0, когда вы «отпускаете» устойчивую ноту.
Для эха / реверберации вы можете добавить сигнал обратно в себя с некоторой задержкой, например,
D = 4410; // 10 msec at 44.1 kHz., as an example value
tone[t] += 0.5 * tone[t-D];