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

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

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



Класс p5.PolySynth [1]

Описание

Класс p5.AudioVoice – это один генератор звуковой частоты («голос»), а класс p5.PolySynth содержит массив классов p5.AudioVoice. Он управляет тем, какие генераторы будут проигрывать какие ноты, а также тем, какие именно ноты нужно проиграть. Кроме того, с его помощью задаются параметры ADSR-огибающей для проигрывания нот.

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

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

Синтаксис

new p5.PolySynth([synthVoice], [polyValue])

Параметры

synthVoice  объект для генерирования монофонического синтетического звука, наследующий у класса p5.AudioVoice. По умолчанию используется класс p5.MonoSynth. Тип данных  объект
polyValue  количество генераторов звуковой частоты. Значение по умолчанию  «8». Тип данных  number

Поля

  • notes – объект, содержащий информацию о том, какие ноты были проиграны, и о том, какие ноты проигрываются в данный момент. Новые ноты добавляются в виде клавиш в реальном времени. Если у ноты была запущена стадия атаки, но еще не была запущена стадия затухания, то значением для этой клавиши будет объект p5.AudioVoice, генерирующий эту ноту. Если для ноты была запущена стадия затухания, значение для этой клавиши становится неопределенным.
  • polyvalue – объект p5.PolySynth должен иметь по крайней мере один генератор звуковой частоты. По умолчанию их 8.
  • AudioVoice – объект p5.MonoSynth, генерирующий звук для каждой запущенной им ноты. Объект p5.PolySynth по умолчанию использует в качестве генератора звуковой частоты объект p5.MonoSynth.

Методы

  • play() – проигрывает ноту с заданной задержкой при помощи функций noteAttack() и noteRelease().
  • noteADSR() – задает ADSR-огибающую для заданной ноты, которая только что была запущена. Использование этого метода модифицирует параметры ADSR-огибающей объекта p5.AudioVoice, используемого для проигрывания нужной ноты. Перед вызовом noteRelease() параметры ADSR-огибающей нужно сбросить, чтобы эта модифицированная ADSR-огибающая не использовалась на других нотах.
  • setADSR() – задает глобальную ADSR-огибающую. То есть он модифицирует ADSR-огибающие всех объектов p5.MonoSynth, благодаря чему все ноты будут проигрываться с заданной с помощью этой функции ADSR-огибающей.
  • noteAttack() – запускает стадии атаки (attack) и спада (decay) при проигрывании ноты объекта p5.AudioVoice. То есть действие этой функции аналогично нажатию на клавишу пианино и удержанию ее в таком состоянии.
  • noteRelease() – запускает стадию затухания (release) при проигрывании ноты объекта p5.AudioVoice. То есть действие этой функции аналогично отпусканию клавиши пианино и последующему затуханию звука.
  • connect() – подключает объект p5.PolySynth к объекту библиотеки p5.sound или Web Audio API.
  • disconnect() – отключает объект p5.PolySynth от всех «выходов».
  • dispose() – удаляет объект p5.PolySynth и освобождает его ресурсы/память

Пример

№1

var polysynth;
function setup() {
  polysynth = new p5.PolySynth();
  polysynth.play(53,1,0,3);
  polysynth.play(60,1,0,2.9);
  polysynth.play(69,1,0,3);
  polysynth.play(71,1,0,3);
  polysynth.play(74,1,0,3);
}

№2

№3

См.также

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