JavaScript:Библиотеки/p5.sound/Класс p5.Delay: различия между версиями
Myagkij (обсуждение | вклад) Нет описания правки |
Нет описания правки |
||
Строка 16: | Строка 16: | ||
Чтобы использовать этот класс, нужно подключить библиотеку p5.sound. Для этого в заголовок своего файла «index.html» впишите следующее: | Чтобы использовать этот класс, нужно подключить библиотеку p5.sound. Для этого в заголовок своего файла «index.html» впишите следующее: | ||
<syntaxhighlight lang="javascript | <syntaxhighlight lang="javascript"> | ||
<script language="javascript" type="text/javascript" src="path/to/p5.sound.js"></script> | <script language="javascript" type="text/javascript" src="path/to/p5.sound.js"></script> | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Строка 22: | Строка 22: | ||
==Синтаксис== | ==Синтаксис== | ||
<syntaxhighlight lang="javascript | <syntaxhighlight lang="javascript"> | ||
new p5.Delay() | new p5.Delay() | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Строка 46: | Строка 46: | ||
===№1=== | ===№1=== | ||
<syntaxhighlight lang="javascript" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS | <syntaxhighlight lang="javascript" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS"> | ||
var noise, env, delay; | var noise, env, delay; | ||
Строка 84: | Строка 84: | ||
===№2=== | ===№2=== | ||
<syntaxhighlight lang="javascript" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS | <syntaxhighlight lang="javascript" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS"> | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Строка 90: | Строка 90: | ||
===№3=== | ===№3=== | ||
<syntaxhighlight lang="javascript" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS | <syntaxhighlight lang="javascript" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS"> | ||
</syntaxhighlight> | </syntaxhighlight> |
Текущая версия от 19:53, 23 мая 2023
Черновик |
Класс p5.Delay [1]
Описание
Эффект «дилэй» – это эффект эхо. Этот класс обрабатывает исходный звук таким образом, что на выходе получается тот же самый звук, но с эффектом эхо. Разные функции класса p5.Delay позволяют разнообразить эффект эхо, меняя период между эхо-волнами, затухание громкости звука между эхо-волнами и тип эффекта эхо, а также применяя фильтр низких частот. В примере ниже коэффициент затухания выставлен на «0.5» (это значение по умолчанию), и это даст эхо, громкость каждой волны которого будет уменьшаться на 50%. Фильтр низких частот обрезает частоты выше заданного порога, чтобы эхо не было просто копией исходного звука.
Этот класс наследует у класса p5.Effect, поэтому для него доступны функции amp(), chain(), drywet(), connect() и disconnect().
Чтобы использовать этот класс, нужно подключить библиотеку p5.sound. Для этого в заголовок своего файла «index.html» впишите следующее:
<script language="javascript" type="text/javascript" src="path/to/p5.sound.js"></script>
Синтаксис
new p5.Delay()
Параметры
- leftDelay – класс p5.Delay конструируется из двух узлов DelayNode из Web Audio API (по одному для каждого стерео-канала). Это поле – для левого канала
- rightDelay – класс p5.Delay конструируется из двух узлов DelayNode из Web Audio API (по одному для каждого стерео-канала). Это поле – для правого канала
Возвращаемое значение
- process() – задает эффект эхо для заданного аудиосигнала в соответствии с несколькими параметрами.
- delayTime() – задает время между эхо-волнами (в секундах). Как правило, это значение с плавающей точкой в диапазоне между «0.0» и «1.0».
- feedback() – задает, насколько будет меняться громкость звука при каждом новом проходе через эхо-цикл. Ставить значение выше «1.0» нежелательно, т.к. в результате общая громкость исходного звука с каждым эхо-циклом будет увеличиваться, создав бесконечный цикл. Значение по умолчанию – «0.5».
- filter() – задает фильтр низких частот для эффекта эхо. Он обрезает все частоты, находящиеся выше заданной пороговой частоты.
- setType() – задает тип эффекта эхо. Если задать в параметре значение «pingPong», то звук будет с каждой эхо-волной перепрыгивать из правого стерео-канала в левый и обратно, тем самым создавая стерео-эффект. Любое другое значение вернет стандартный тип эффекта эхо.
- amp() – задает громкость эффекта эхо.
- connect() – подключает объект p5.Delay к объекту из библиотеки p5.sound или Web Audio API. В дальнейшем этому объекту будут отправляться все данные, сгенерированные объектом p5.Delay.
- disconnect() – отключает объект p5.Delay от всех «выходов».
Пример
№1
var noise, env, delay;
function setup() {
background(0);
noStroke();
fill(255);
textAlign(CENTER);
text('click to play', width/2, height/2);
// 'кликните, чтобы начать проигрывание'
noise = new p5.Noise('brown');
noise.amp(0);
noise.start();
delay = new p5.Delay();
// функция delay.process() принимает 4 параметра:
// исходный звук, время задержки между эхо-волнами,
// изменение громкости между эхо-волнами и фильтр низких частот;
// попробуйте поиграть с ними, чтобы посмотреть, что получится:
delay.process(noise, .12, 3, 2300);
// задаем ADSR-огибающую для звука:
env = new p5.Env(.01, 0.2, .2, .1);
}
// функция для запуска звука при помощи клика мышкой:
function mouseClicked() {
// находится ли курсор мышки над холстом?
if (mouseX > 0 && mouseX < width && mouseY > 0 && mouseY < height) {
env.play(noise);
}
}