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();
}