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

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

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


Черновик


Класс p5.Oscillator [1]

Описание

Создает сигнал, колеблющийся между значениями «-1.0» и «1.0». По умолчанию этот сигнал имеет синусоидальную форму («sine»). Но его также можно сделать треугольным («triangle»), пилообразным («sawtooth») и прямоугольным («square»). По умолчанию частота сигнала составляет 440 колебаний в секунду (то есть 440 Гц, что эквивалентно высоте ноты ля).

Тип осцилляции задается либо с помощью функции setType(), либо при помощи создания объекта, соответствующего нужному осциллятору: p5.SinOsc, p5.TriOsc, p5.SqrOsc или p5.SawOsc.

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

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

Синтаксис

new p5.Oscillator([freq], [type])

Параметры

freq  частота колебаний. Значение по умолчанию  «440». Тип данных  number
type  тип осциллятора. Возможные значения: «sine» (по умолчанию), «triangle», «sawtooth» и «square». Тип данных  String

Методы

  • start() – запускает осциллятор. Принимает опциональный параметр, задающий то, сколько времени (в секундах) должно пройти между запуском функции и, собственно, запуском осциллятора.
  • stop() – останавливает осциллятор. Принимает опциональный параметр, задающий то, сколько времени (в секундах) должно пройти между запуском функции и, собственно, остановкой осциллятора.
  • amp() – задает громкость осциллятора в диапазоне между «0.0» и «1.0». В параметре «vol» можно задать либо просто значение, либо объект (вроде p5.Oscillator) для регулирования громкости при помощи аудиосигнала.
  • freq() – задает частоту осциллятора. В параметре «frequency» можно задать либо просто значение, либо объект (вроде p5.Oscillator), чтобы менять частоту с помощью аудиосигнала.
  • setType() – задает тип осциллятора. Его можно сделать синусоидальным («sine»), треугольным («triangle»), пилообразным («sawtooth») и прямоугольным («square»).
  • connect() – подключает объект p5.Oscillator к другому объекту из библиотеки p5.sound или к объекту из Web Audio API
  • [[JavaScript:Библиотеки/p5.sound/Класс p5.Oscillator/disconnect() – отключает объект p5.Oscillator от всех «выходов».
  • pan() – задает стерео-позицию звука, генерируемого осциллятором, между левым («-1») и правым («1») стерео-каналами.
  • phase() – задает фазу колебаний в диапазоне между «0.0» и «1.0». В этой функции изменение фазы реализовано в виде задержки на основе текущей частоты осциллятора.
  • add() – добавляет к выходной амплитуде объекта p5.Oscillator заданное значение и возвращает получившийся объект p5.Oscillator. Если вы вызываете эту функцию не в первый раз, то она перезапишет свое старое значение.
  • mult() – умножает выходную амплитуду объекта p5.Oscillator на заданное фиксированное значение и возвращает получившийся объект p5.Oscillator. Если вы вызываете эту функцию не в первый раз, то она перезапишет свое старое значение.
  • scale() – масштабирует амплитуду объекта p5.Oscillator к заданному диапазону значений и возвращает получившийся объект p5.Oscillator. Если вызываете эту функцию не в первый раз, то она перезапишет свое старое значение.

Пример

№1

var osc;
var playing = false;

function setup() {
  backgroundColor = color(255,0,255);
  textAlign(CENTER);

  osc = new p5.Oscillator();
  osc.setType('sine');
  osc.freq(240);
  osc.amp(0);
  osc.start();
}

function draw() {
  background(backgroundColor)
  text('click to play', width/2, height/2);
   //  'кликните, чтобы начать проигрывание'
}

function mouseClicked() {
  if (mouseX > 0 && mouseX < width && mouseY < height && mouseY > 0) {
    if (!playing) {
      // увеличиваем громкость на «0.5» через 0.05 секунд:
      osc.amp(0.5, 0.05);
      playing = true;
      backgroundColor = color(0,255,255);
    } else {
      // снижаем громкость до нуля через 0.5 секунд:
      osc.amp(0, 0.5);
      playing = false;
      backgroundColor = color(255,0,255);
    }
  }
}

№2

№3

См.также

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