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

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

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


Черновик


Класс p5.SoundLoop [1]

Описание

Это класс для создания зацикленных звуковых фрагментов.

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

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

Синтаксис

new p5.SoundLoop(callback, [interval])

Параметры

callback  функция, которая будет вызываться с каждой новой итерацией. Тип данных  функция
interval  время или количество тактов для одной итерации. Значение по умолчанию  «1». Тип данных  number, String

Поля

  • musicalTimeMode – задает то, какой тип данных будет использоваться для определения длительности итерации. Если задать «false», то «number», а если «true», то «String». В этом поле используется правило работы со временем из библиотеки Tone.js.
  • maxIterations – задает лимит на количество итераций. По умолчанию их задано бесконечное количество.
  • bpm – любой заданный здесь параметр изменит частоту таймера. Новая настройка вступит в силу со следующим вызовом функции обратного вызова. Значение по умолчанию – «60».
  • timeSignature – тактовый размер, т.е. количество четвертных (1/4) нот в такте. Значение по умолчанию – «4».
  • interval – продолжительность одного цикла.
  • iterations – то, сколько раз к текущему моменту была вызвана функция обратного вызова

Методы

  • start() – запускает объект p5.SoundLoop
  • stop() – останавливает объект p5.SoundLoop
  • pause() – ставит на паузу объект p5.SoundLoop
  • syncedStart() – синхронизирует объекты p5.SoundLoop. Используйте этот метод, чтобы синхронизировать запуск двух или более объектов p5.SoundLoop. Его также можно использовать, чтобы синхронизировать новый объект p5.SoundLoop с тем, что уже был запущен. В коде это выглядит следующим образом:
LoopToStart.syncedStart(LoopToSyncWith)

, где «LoopToStart» – это синхронизируемый цикл, а «LoopToSyncWith» – это цикл, с которым его нужно синхронизировать.

Пример

№1

var click;
var looper1;

function preload() {
  click = loadSound('assets/drum.mp3');
}

function setup() {
  // в функцию обратного вызова объекта «looper1» 
  // передается значение «timeFromNow», 
  // которое используется в качестве точки отсчета 
  // для расчета времени для проигрывания звуков:
  looper1 = new p5.SoundLoop(function(timeFromNow){
    click.play(timeFromNow);
    background(255 * (looper1.iterations % 2));
    }, 2);

  // останавливаемся после 10 итераций:
  looper1.maxIterations = 10;
  // запускаем зацикленное проигрывание:
  looper1.start();
}

№2

№3

См.также

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