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

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску
Нет описания правки
 
Нет описания правки
Строка 14: Строка 14:
Чтобы использовать эту функцию, нужно подключить библиотеку 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>
Строка 20: Строка 20:
==Синтаксис==
==Синтаксис==


<syntaxhighlight lang="javascript" enclose="div">
<syntaxhighlight lang="javascript">
ramp(unit, secondsFromNow, v, [v2])
ramp(unit, secondsFromNow, v, [v2])
</syntaxhighlight>
</syntaxhighlight>
Строка 26: Строка 26:
==Параметры==
==Параметры==


<syntaxhighlight lang="javascript" enclose="div">
<syntaxhighlight lang="javascript">
unit – объект из библиотеки p5.sound или объект AudioParam из Web Audio API, громкость которого нужно изменить при помощи ADSR-огибающей. Тип данных – объект
unit – объект из библиотеки p5.sound или объект AudioParam из Web Audio API, громкость которого нужно изменить при помощи ADSR-огибающей. Тип данных – объект
secondsFromNow – время (в секундах) после вызова функции, спустя которое нужно запустить звуковой объект с заданной ADSR-огибающей. Тип данных – number
secondsFromNow – время (в секундах) после вызова функции, спустя которое нужно запустить звуковой объект с заданной ADSR-огибающей. Тип данных – number
Строка 35: Строка 35:
==Возвращаемое значение==
==Возвращаемое значение==


<syntaxhighlight lang="javascript" enclose="div">
<syntaxhighlight lang="javascript">


</syntaxhighlight>
</syntaxhighlight>
Строка 43: Строка 43:
===№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 env, osc, amp, cnv;
var env, osc, amp, cnv;


Строка 84: Строка 84:
===№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>
Строка 90: Строка 90:
===№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:05, 23 мая 2023

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


Черновик


ramp() [1]

Описание

Обратно-логарифмически (т.е. с плавным уменьшением скорости возрастания/убывания) меняет громкость во время стадий атаки и спада ADSR-огибающей, используя значения в параметрах attackTime (длительность атаки) и decayTime (длительность спада), заданные с помощью функции setADSR().

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

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

Синтаксис

ramp(unit, secondsFromNow, v, [v2])

Параметры

unit  объект из библиотеки p5.sound или объект AudioParam из Web Audio API, громкость которого нужно изменить при помощи ADSR-огибающей. Тип данных  объект
secondsFromNow  время (в секундах) после вызова функции, спустя которое нужно запустить звуковой объект с заданной ADSR-огибающей. Тип данных  number
v  громкость после завершения стадии атаки. Тип данных  number
v2  громкость после завершения стадии спада. Опциональный параметр. Тип данных  number

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

Пример

№1

var env, osc, amp, cnv;

var attackTime = 0.001;
var decayTime = 0.2;
var attackLevel = 1;
var decayLevel = 0;

function setup() {
  cnv = createCanvas(100, 100);
  fill(0,255,0);
  noStroke();

  env = new p5.Env();
  env.setADSR(attackTime, decayTime);

  osc = new p5.Oscillator();
  osc.amp(env);
  osc.start();

  amp = new p5.Amplitude();

  cnv.mousePressed(triggerRamp);
}

function triggerRamp() {
  env.ramp(osc, 0, attackLevel, decayLevel);
}

function draw() {
  background(20,20,20);
  text('click me', 10, 20);
   //  'кликни меня'
  var h = map(amp.getLevel(), 0, 0.4, 0, height);;

  rect(0, height, width, -h);
}

№2

№3

См.также

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