JavaScript:Библиотеки/p5.sound/Класс p5.SoundLoop: различия между версиями
Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску
Myagkij (обсуждение | вклад) Нет описания правки |
Нет описания правки |
||
Строка 14: | Строка 14: | ||
Чтобы использовать этот класс, нужно подключить библиотеку p5.sound. Для этого в заголовок своего файла «index.html» впишите следующее: | Чтобы использовать этот класс, нужно подключить библиотеку p5.sound. Для этого в заголовок своего файла «index.html» впишите следующее: | ||
<syntaxhighlight lang="javascript | <syntaxhighlight lang="javascript"> | ||
<script language="javascript" type="text/javascript" src="path/to/p5.sound.js"></script> | <script language="javascript" type="text/javascript" src="path/to/p5.sound.js"></script> | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Строка 20: | Строка 20: | ||
==Синтаксис== | ==Синтаксис== | ||
<syntaxhighlight lang="javascript | <syntaxhighlight lang="javascript"> | ||
new p5.SoundLoop(callback, [interval]) | new p5.SoundLoop(callback, [interval]) | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Строка 26: | Строка 26: | ||
==Параметры== | ==Параметры== | ||
<syntaxhighlight lang="javascript | <syntaxhighlight lang="javascript"> | ||
callback – функция, которая будет вызываться с каждой новой итерацией. Тип данных – функция | callback – функция, которая будет вызываться с каждой новой итерацией. Тип данных – функция | ||
interval – время или количество тактов для одной итерации. Значение по умолчанию – «1». Тип данных – number, String | interval – время или количество тактов для одной итерации. Значение по умолчанию – «1». Тип данных – number, String | ||
Строка 47: | Строка 47: | ||
* [[JavaScript:Библиотеки/p5.sound/Класс_p5.SoundLoop/syncedStart()|syncedStart()]] – синхронизирует объекты p5.SoundLoop. Используйте этот метод, чтобы синхронизировать запуск двух или более объектов p5.SoundLoop. Его также можно использовать, чтобы синхронизировать новый объект p5.SoundLoop с тем, что уже был запущен. В коде это выглядит следующим образом: | * [[JavaScript:Библиотеки/p5.sound/Класс_p5.SoundLoop/syncedStart()|syncedStart()]] – синхронизирует объекты p5.SoundLoop. Используйте этот метод, чтобы синхронизировать запуск двух или более объектов p5.SoundLoop. Его также можно использовать, чтобы синхронизировать новый объект p5.SoundLoop с тем, что уже был запущен. В коде это выглядит следующим образом: | ||
<syntaxhighlight lang="javascript | <syntaxhighlight lang="javascript"> | ||
LoopToStart.syncedStart(LoopToSyncWith) | LoopToStart.syncedStart(LoopToSyncWith) | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Строка 57: | Строка 57: | ||
===№1=== | ===№1=== | ||
<syntaxhighlight lang="javascript" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS | <syntaxhighlight lang="javascript" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS"> | ||
var click; | var click; | ||
var looper1; | var looper1; | ||
Строка 84: | Строка 84: | ||
===№2=== | ===№2=== | ||
<syntaxhighlight lang="javascript" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS | <syntaxhighlight lang="javascript" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS"> | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Строка 90: | Строка 90: | ||
===№3=== | ===№3=== | ||
<syntaxhighlight lang="javascript" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS | <syntaxhighlight lang="javascript" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS"> | ||
</syntaxhighlight> | </syntaxhighlight> |
Текущая версия от 19:53, 23 мая 2023
Перевод: Максим Кузьмин
Проверка/Оформление/Редактирование: Мякишев Е.А.
Черновик |
Класс 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();
}