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);
}
}
}