JavaScript:Библиотеки/p5.sound/Класс p5.Part
Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску
Перевод: Максим Кузьмин
Проверка/Оформление/Редактирование: Мякишев Е.А.
Класс p5.Part [1]
Описание
Это класс для проигрывания одной или нескольких фраз (т.е. объектов p5.Phrase). Принимает два параметра – «steps» (количество «шагов») и «tatums» (длительность ноты). По умолчанию каждый «шаг» длится 1/16 ноты.
Более подробно о ритме и создании звуков читайте в статье о p5.Phrase.
Чтобы использовать этот класс, нужно подключить библиотеку p5.sound. Для этого в заголовок своего файла «index.html» впишите следующее:
<script language="javascript" type="text/javascript" src="path/to/p5.sound.js"></script>
Синтаксис
new p5.Part([steps], [tatums])
Параметры
steps – количество «шагов» в объекте p5.Part. Тип данных – number
tatums – длительность ноты. Значение по умолчанию – «1/16». Тип данных – number
Методы
- setBPM() – задает ритм (т.е. количество ударов в минуту) для объекта p5.Part.
- getBPM() – возвращает ритм (т.е. количество ударов в минуту) этого объекта p5.Part.
- start() – запускает проигрывание этого объекта p5.Part. В результате эта функция воспроизведет все фразы этого объекта p5.Part со скоростью, заданной при помощи setBPM().
- loop() – запускает зацикленное проигрывание этого объекта p5.Part. В результате эта функция циклически воспроизведет все фразы этого объекта p5.Part со скоростью, заданной при помощи функции setBPM().
- noLoop() – выключает зацикленное проигрывание объекта p5.Part.
- stop() – останавливает проигрывание объекта p5.Part и перемещает курсор проигрывания на шаг «0».
- pause() – ставит на паузу зацикленное проигрывание объекта p5.Part. При возобновлении проигрывание начнется с «шага», где оно было поставлено на паузу.
- addPhrase() – добавляет фразу (объект p5.Phrase) в объект p5.Part.
- removePhrase() – удаляет фразу (объект p5.Phrase) из объекта p5.Part. Удаляемая фраза задается с помощью названия, данного ей при создании.
- getPhrase() – считывает фразу (объект p5.Phrase) из объекта p5.Part. Считываемая фраза задается с помощью названия, данного ей при создании. В результате вы сможете отредактировать значения в массиве этой фразы.
- replaceSequence() – редактирует значения в массиве заданной фразы (объекта p5.Phrase). Редактируемая фраза задается с помощью названия, данного ей при создании.
- onStep() – с каждым «шагом» запускает заданную функцию.
Пример
№1
var box, drum, myPart;
var boxPat = [1,0,0,2,0,2,0,0];
var drumPat = [0,1,1,0,2,0,1,0];
var msg = 'click to play';
// 'кликните, чтобы начать проигрывание'
function preload() {
box = loadSound('assets/beatbox.mp3');
drum = loadSound('assets/drum.mp3');
}
function setup() {
noStroke();
fill(255);
textAlign(CENTER);
masterVolume(0.1);
var boxPhrase = new p5.Phrase('box', playBox, boxPat);
var drumPhrase = new p5.Phrase('drum', playDrum, drumPat);
myPart = new p5.Part();
myPart.addPhrase(boxPhrase);
myPart.addPhrase(drumPhrase);
myPart.setBPM(60);
masterVolume(0.1);
}
function draw() {
background(0);
text(msg, width/2, height/2);
}
function playBox(time, playbackRate) {
box.rate(playbackRate);
box.play(time);
}
function playDrum(time, playbackRate) {
drum.rate(playbackRate);
drum.play(time);
}
function mouseClicked() {
if (mouseX > 0 && mouseX < width && mouseY > 0 && mouseY < height) {
myPart.start();
msg = 'playing part';
// 'проигрывание объекта p5.Part'
}
}