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

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

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


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


Класс p5.Envelope [1]

Описание

Огибающая – это предварительно заданный паттерн, состоящий из нескольких изменений амплитудных значений в течение некоторого периода времени. Как правило, огибающие используются для управления громкостью звука в объекте. Они включают в себя несколько этапов изменения или удержания заданных уровней громкости – эти этапы называются «атакой» (attack), «спадом» (decay), «задержкой» (sustain) и «затуханием» (release), т.е. если собрать все вместе получается «ADSR» (в классе p5.Envelope реализованы только три – атака, спад и затухание). Кроме того, при помощи огибающих можно управлять другими параметрами Web Audio API, к примеру, частотой осциллятора при помощи конструкции osc.freq(env), где «env» – это объект огибающей.

Чтобы изменить уровни атаки и затухания, используйте функцию setRange(). Чтобы изменить периоды атаки, спада и затухания, а также уровень задержки, используйте функцию setADSR().

Чтобы воспроизвести всю огибающую, используйте функцию play(). Чтобы включить звук, воспользуйтесь функцией triggerAttack(), чтоб выключить его – функцией triggerRelease(). Чтобы воспроизвести стадии атаки и спада ADSR-огибающей с обратно-логарифмическими (т.е. таким, чья скорость плавно убывает) увеличением и уменьшением громкости, воспользуйтесь функцией ramp().

Чтобы использовать этот класс, нужно подключить библиотеку p5.sound. Для этого в заголовок своего файла «index.html» впишите следующее:

<script language="javascript" type="text/javascript" src="path/to/p5.sound.js"></script>

Синтаксис

new p5.Envelope()

Поля

  • attackTime – время, в течение которого ADSR-огибающая достигает уровня атаки (attackLevel).
  • attackLevel – уровень громкости, который будет задан после завершения стадии атаки (attackTime).
  • decayTime – время, в течение которого ADSR-огибающая достигает уровня спада (decayLevel).
  • decayLevel – уровень громкости, который будет задан после завершения стадии спада (decayTime). ADSR-огибающая останется на этом уровне, пока не будет запущена стадия затухания (releaseTime).
  • releaseTime – время, в течение которого ADSR-огибающая достигает уровня затухания (releaseLevel).
  • releaseLevel – уровень громкости, который будет задан после завершения стадии затухания (releaseTime).

Возвращаемое значение

  • set() – задает ADSR-огибающую при помощи 3 пар параметров «значение/время».
  • setADSR() – задает время атаки, спада и затухания, а также уровень спада ADSR-огибающей.
  • setRange() – задает уровни атаки и затухания ADSR-огибающей.
  • setInput() – задает объект, громкость которого будет управляться с помощью ADSR-огибающей. Если задать один объект, то ADSR-огибающая будет управлять только его громкостью. Если задать несколько объектов, ADSR-огибающая будет управлять громкостью всех этих объектов.
  • setExp() – задает то, как будет меняться громкость ADSR-огибающей: линейно (по умолчанию) или обратно-логарифмически. Второй способ лучше подходит для того, как человеческое ухо воспринимает изменение громкости.
  • play() – дает ADSR-огибающей команду начать работать с заданным объектом. Если заданный объект – это объект из библиотеки p5.sound (например, p5.AudioIn, p5.Oscillator, p5.SoundFile), то объект p5.Envelope будет управлять его уровнем громкости. Но вы также можете задать здесь объект AudioParam из Web Audio API.
  • triggerAttack() – запускает стадии атаки и спада объекта p5.Envelope. Действие этой функции аналогично нажатию на клавишу пианино и удержанию ее в таком состоянии. В параметре «unit» можно задать любой объект из библиотеки p5.sound или объект из Web Audio API.
  • triggerRelease() – запускает стадию затухания объекта p5.Envelope. Действие этой функции аналогично отпусканию клавиши пианино и последующему затуханию звука.
  • ramp() – обратно-логарифмически меняет громкость в стадиях атаки и спада ADSR-огибающей, используя значения в параметрах attackTime и decayTime из функции setADSR().
  • add() – добавляет к выходному значению громкости объекта p5.Envelope заданное значение и возвращает получившийся объект p5.Envelope. Если вы вызываете эту функцию не в первый раз, то она перезапишет свое старое значение.
  • [[JavaScript:Библиотеки/p5.sound/Класс p5.Envelope/mult()|mult()] – умножает выходное значение громкости объекта p5.Envelope на заданное значение и возвращает получившийся объект p5.Envelope. Если вы вызываете эту функцию не в первый раз, то она перезапишет свое старое значение.
  • scale() – масштабирует диапазон значений громкости объекта p5.Envelope к заданному диапазону значений и возвращает получившийся объект p5.Envelope. Если вы вызываете эту функцию не в первый раз, то она перезапишет свое старое значение.

Пример

№1

№2

№3

См.также

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