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

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

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


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


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

 1 var click;
 2 var looper1;
 3 
 4 function preload() {
 5   click = loadSound('assets/drum.mp3');
 6 }
 7 
 8 function setup() {
 9   // в функцию обратного вызова объекта «looper1» 
10   // передается значение «timeFromNow», 
11   // которое используется в качестве точки отсчета 
12   // для расчета времени для проигрывания звуков:
13   looper1 = new p5.SoundLoop(function(timeFromNow){
14     click.play(timeFromNow);
15     background(255 * (looper1.iterations % 2));
16     }, 2);
17 
18   // останавливаемся после 10 итераций:
19   looper1.maxIterations = 10;
20   // запускаем зацикленное проигрывание:
21   looper1.start();
22 }

№2

№3

См.также

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