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

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

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


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


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

 1 var box, drum, myPart;
 2 var boxPat = [1,0,0,2,0,2,0,0];
 3 var drumPat = [0,1,1,0,2,0,1,0];
 4 var msg = 'click to play';
 5       //  'кликните, чтобы начать проигрывание'
 6 
 7 function preload() {
 8   box = loadSound('assets/beatbox.mp3');
 9   drum = loadSound('assets/drum.mp3');
10 }
11 
12 function setup() {
13   noStroke();
14   fill(255);
15   textAlign(CENTER);
16   masterVolume(0.1);
17 
18   var boxPhrase = new p5.Phrase('box', playBox, boxPat);
19   var drumPhrase = new p5.Phrase('drum', playDrum, drumPat);
20   myPart = new p5.Part();
21   myPart.addPhrase(boxPhrase);
22   myPart.addPhrase(drumPhrase);
23   myPart.setBPM(60);
24   masterVolume(0.1);
25 }
26 
27 function draw() {
28   background(0);
29   text(msg, width/2, height/2);
30 }
31 
32 function playBox(time, playbackRate) {
33   box.rate(playbackRate);
34   box.play(time);
35 }
36 
37 function playDrum(time, playbackRate) {
38   drum.rate(playbackRate);
39   drum.play(time);
40 }
41 
42 function mouseClicked() {
43   if (mouseX > 0 && mouseX < width && mouseY > 0 && mouseY < height) {
44     myPart.start();
45     msg = 'playing part';
46       //  'проигрывание объекта p5.Part'
47   }
48 }

№2

№3

См.также

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