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

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

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


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


Класс p5.Signal [1]

Описание

Это класс для создания постоянного сигнала с частотой, соответствующей частоте аудиосигналов. Он используется объектами p5.Oscillator и p5.Envelope для расчета модуляции сигнала.

Это необходимо, потому что задачи Web Audio API обрабатываются при помощи отдельного таймера. К примеру, блок draw() в p5 повторяется около 60 раз в секунду. Но аудио-таймер должен обрабатывать отсчеты 44100 раз в секунду. Таким образом, если мы хотим работать со всеми этими отсчетами, мы не можем сделать это в цикле draw(), но мы можем сделать это, используя постоянный сигнал с частотой как у аудиосигналов.

Класс p5.Signal в основном функционирует «за кулисами» библиотеки p5.sound и возвращает объект Tone.Signal из библиотеки Tone.js, разработанной Йотамом Манном. Если вы хотите работать с аудиосигналами напрямую (например, для модульного синтеза звука), рекомендуем заглянуть на GitHub-репозиторий этой библиотеки.

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

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

Синтаксис

new p5.Signal()

Параметры

void

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

Объект Tone.Signal из библиотеки Tone.js.

Методы

  • fade() – выполняет затухание значения (для плавных переходов)
  • setInput() – подключает объект библиотеки p5.sound или узел Web Audio API к текущему объекту p5.Signal, чтобы мы могли модифицировать его значения
  • add() – добавляет текущему аудиосигналу постоянное значение и возвращает получившийся в результате аудиосигнал. Не меняет значение исходного сигнала, возвращая новый объект p5.SignalAdd
  • mult() – умножает текущий аудиосигнал на постоянное значение и возвращает получившийся в результате аудиосигнал. Не меняет значение исходного сигнала, возвращая новый объект p5.SignalMult
  • scale() – масштабирует значения текущего сигнала к заданному диапазону и возвращает получившийся в результате аудиосигнал. Не меняет значение исходного сигнала, возвращая новый объект p5.SignalScale

Пример

№1

 1 function setup() {
 2   carrier = new p5.Oscillator('sine');
 3   carrier.amp(1); // задаем громкость
 4   carrier.freq(220); // задаем частоту
 5   carrier.start(); // запускаем генерирование колебаний
 6 
 7   modulator = new p5.Oscillator('sawtooth');
 8   modulator.disconnect();
 9   modulator.amp(1);
10   modulator.freq(4);
11   modulator.start();
12 
13   // По умолчанию диапазон амплитудных значений 
14   // объекта «modulator» составляет от «-1» до «1». 
15   // Умножаем эти значения на «-200», 
16   // чтобы получить диапазон от «-200» до «200»,
17   // а потом прибавляем к ним «220», чтобы получить от «20» до «420»:
18   carrier.freq( modulator.mult(-200).add(220) );
19 }

№2

№3

См.также

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