JavaScript:Библиотеки/p5.sound/Класс p5.Envelope/ramp()
Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску
Перевод: Максим Кузьмин
Проверка/Оформление/Редактирование: Мякишев Е.А.
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);
}