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

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

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



Класс p5.Phrase [1]

Описание

Это класс для создания так называемых «фраз». Фраза – это паттерн музыкальных событий, происходящих в течение определенного времени (т.е. серия нот и пауз между ними).

Чтобы воспроизвести фразу, ее нужно добавить в объект p5.Part. Один объект p5.Part может проигрывать одновременно несколько фраз. К примеру, один объект p5.Phrase может быть бас-барабаном, второй – малым барабаном, третий – бас-партией и т.д.

Первый параметр объекта p5.Phrase – это «name», т.е. название фразы (чтобы в дальнейшем ее можно было модифицировать или удалить). Второй параметр – это «callback», т.е. функция обратного вызова, которую будет вызывать эта фраза с каждым новым «шагом». К примеру, она может вызывать функцию playNote(value). Третий параметр – это «sequence», т.е. массив, который задает, какие значения будут передаваться функции обратного вызова на разных «шагах» фразы. Это могут быть данные типа «number», объект с несколькими данными типа «number» или ноль (0), что будет означать, что в этом месте нужна пауза (поэтому функция обратного вызова запущена не будет).

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

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

Синтаксис

new p5.Phrase(name, callback, sequence)

Параметры

name  название для объекта p5.Phrase. Тип данных  String
callback  функция, которая будет вызываться объектом p5.Phrase. Она, как правило, проигрывает звук и принимает два параметра: время, когда нужно проиграть звук (в секундах от текущего момента) и значение из массива «sequence». Точности ради время также нужно передать методу play() или start(). Тип данных  функция
sequence  массив со значениями, которые будут передаваться функции обратного вызова с каждым новым «шагом» фразы. Тип данных  массив

Поля

  • sequence – массив значений, передаваемых функции обратного вызова с каждым новым «шагом» фразы. В зависимости от требований функции обратного вызова, это могут быть числа (number), строки (String), или объект с несколькими значениями. Ноль (0) означает паузу.

Пример

№1

var mySound, myPhrase, myPart;
var pattern = [1,0,0,2,0,2,0,0];
var msg = 'click to play';
      //  'кликните, чтобы начать проигрывание'

function preload() {
  mySound = loadSound('assets/beatbox.mp3');
}

function setup() {
  noStroke();
  fill(255);
  textAlign(CENTER);
  masterVolume(0.1);

  myPhrase = new p5.Phrase('bbox', makeSound, pattern);
  myPart = new p5.Part();
  myPart.addPhrase(myPhrase);
  myPart.setBPM(60);
}

function draw() {
  background(0);
  text(msg, width/2, height/2);
}

function makeSound(time, playbackRate) {
  mySound.rate(playbackRate);
  mySound.play(time);
}

function mouseClicked() {
  if (mouseX > 0 && mouseX < width && mouseY > 0 && mouseY < height) {
    myPart.start();
    msg = 'playing pattern';
      //  'воспроизведение паттерна'
  }
}

№2

№3

См.также

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