JavaScript:Библиотеки/p5.sound/Класс p5.EQ: различия между версиями

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


<syntaxhighlight lang="javascript" enclose="div">
<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>
Строка 24: Строка 24:
==Синтаксис==
==Синтаксис==


<syntaxhighlight lang="javascript" enclose="div">
<syntaxhighlight lang="javascript">
new p5.EQ([_eqsize])
new p5.EQ([_eqsize])
</syntaxhighlight>
</syntaxhighlight>
Строка 30: Строка 30:
==Параметры==
==Параметры==


<syntaxhighlight lang="javascript" enclose="div">
<syntaxhighlight lang="javascript">
_eqsize – количество полос. Возможные значения: «3» и «8». Значение по умолчанию – «3». Тип данных – number
_eqsize – количество полос. Возможные значения: «3» и «8». Значение по умолчанию – «3». Тип данных – number
</syntaxhighlight>
</syntaxhighlight>
Строка 36: Строка 36:
==Возвращаемое значение==
==Возвращаемое значение==


<syntaxhighlight lang="javascript" enclose="div">
<syntaxhighlight lang="javascript">
Тип данных – объект p5.EQ.
Тип данных – объект p5.EQ.
</syntaxhighlight>
</syntaxhighlight>
Строка 52: Строка 52:
===№1===
===№1===


<syntaxhighlight lang="javascript" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS" enclose="div">
<syntaxhighlight lang="javascript" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS">
var eq;
var eq;
var band_names;
var band_names;
Строка 116: Строка 116:
===№2===
===№2===


<syntaxhighlight lang="javascript" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS" enclose="div">
<syntaxhighlight lang="javascript" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS">


</syntaxhighlight>
</syntaxhighlight>
Строка 122: Строка 122:
===№3===
===№3===


<syntaxhighlight lang="javascript" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS" enclose="div">
<syntaxhighlight lang="javascript" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS">


</syntaxhighlight>
</syntaxhighlight>

Версия от 20:04, 23 мая 2023

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


Черновик


p5.EQ [1]

Описание

Этот класс – это звуковой эффект, выполняющий функцию многополосного аудио-эквалайзера. Эквалайзеры используются для настройки баланса между частотными компонентами аудиосигнала. Эта техника часто используется при создании и записи звука, чтобы изменить волну аудиосигнала до того, как он достигнет устройства вывода аудиоданных. Класс p5.EQ можно использовать как звуковой эффект для создания интересных искажений, отфильтровывая определенные части спектра частот.

Класс p5.EQ создан при помощи цепочки интерфейсов BiquadFilterNode из Web Audio API, и его можно создать с 3 или 8 полосами частот. Полосы частот можно удалять и добавлять из объекта p5.EQ, напрямую модифицируя его поле «bands» (это массив, хранящий фильтры).

Класс p5.EQ является расширением класса p5.Effect, поэтому для него также доступны методы amp(), chain(), drywet(), connect() и disconnect().

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

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

Синтаксис

new p5.EQ([_eqsize])

Параметры

_eqsize  количество полос. Возможные значения: «3» и «8». Значение по умолчанию  «3». Тип данных  number

Возвращаемое значение

Тип данных  объект p5.EQ.

Поля

  • bands – класс p5.EQ создан при помощи объектов p5.Filter. Чтобы модифицировать какие-либо полосы частот, используйте методы класса p5.Filter – особенно gain() и freq(). Полосы частот хранятся в массиве, и позиции в нем могут быть либо «0-3», либо «0-7».

Методы

  • process() – обрабатывает входной аудиосигнал, подключая его к объекту p5.EQ

Пример

№1

var eq;
var band_names;
var band_index;

var soundFile, play;

function preload() {
  soundFormats('mp3', 'ogg');
  soundFile = loadSound('assets/beat');
}

function setup() {
  eq = new p5.EQ(3);
  soundFile.disconnect();
  eq.process(soundFile);

  band_names = ['lows','mids','highs']; 
            //  'нижние', 'средние', 'высокие' (частоты)
  band_index = 0;
  play = false;
  textAlign(CENTER);
}

function draw() {
  background(30);
  noStroke();
  fill(255);
  text('click to kill',50,25);
   //  'кликните, чтобы игнорировать'

  fill(255, 40, 255);
  textSize(26);
  text(band_names[band_index],50,55);

  fill(255);
  textSize(9);
  text('space = play/pause',50,80);
   //  'пробел = проигрывание/пауза'
}

// если курсор мыши над холстом, кликните, 
// чтобы поменять, какой диапазон частот будет игнорироваться:
function mouseClicked() {
  for (var i = 0; i < eq.bands.length; i++) {
    eq.bands[i].gain(0);
  }
  eq.bands[band_index].gain(-40);
  if (mouseX > 0 && mouseX < width && mouseY < height && mouseY > 0) {
    band_index === 2 ? band_index = 0 : band_index++;
  }
}

// используйте пробел для включения/выключения музыки:
function keyPressed() {
  if (key===' ') {
    play = !play
    play ? soundFile.loop() : soundFile.pause();
  }
}

№2

№3

См.также

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