JavaScript:Библиотеки/p5.sound/Класс p5.Delay

Материал из Онлайн справочника
Перейти к навигации Перейти к поиску

Перевод: Максим Кузьмин (Cubewriter) Контакты:</br>* Skype: cubewriter</br>* E-mail: cubewriter@gmail.com</br>* Максим Кузьмин на freelance.ru
Проверка/Оформление/Редактирование: Мякишев Е.А.


Pixel Art Mini Meow Animated.gif Черновик


Класс 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

 1 var noise, env, delay;
 2 
 3 function setup() {
 4   background(0);
 5   noStroke();
 6   fill(255);
 7   textAlign(CENTER);
 8   text('click to play', width/2, height/2);
 9    //  'кликните, чтобы начать проигрывание'
10 
11   noise = new p5.Noise('brown');
12   noise.amp(0);
13   noise.start();
14 
15   delay = new p5.Delay();
16 
17   // функция delay.process() принимает 4 параметра:
18   // исходный звук, время задержки между эхо-волнами, 
19   // изменение громкости между эхо-волнами и фильтр низких частот;
20   // попробуйте поиграть с ними, чтобы посмотреть, что получится:
21   delay.process(noise, .12, 3, 2300);
22 
23   // задаем ADSR-огибающую для звука:
24   env = new p5.Env(.01, 0.2, .2, .1);
25 }
26 
27 // функция для запуска звука при помощи клика мышкой:
28 function mouseClicked() {
29   // находится ли курсор мышки над холстом?
30   if (mouseX > 0 && mouseX < width && mouseY > 0 && mouseY < height) {
31     env.play(noise);
32   }
33 }

№2

№3

См.также

Внешние ссылки