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

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

Перевод: Максим Кузьмин
Проверка/Оформление/Редактирование: Мякишев Е.А.


Черновик


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

№2

№3

См.также

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