시간에 따라 timeConstant 값 계산하기

2942 단어 WebAudioAPIJavaScript
AudioParam#setTargetAtTime는 세 번째 매개 변수timeConstant로 지정함으로써 지수적으로 목표치에 점점 가까워진다.큰 값으로 바꾸면 변화가 서서히 느려지지만, 몇 초 정도 이 값에 근접하는 느낌으로 값을 결정하려는 경우도 있다.
매개 변수의 값은 아래 공식에서 구할 수 있으며, 변환하면 시간과 목표 값에서timeConstant 값을 계산하는 함수를 생성할 수 있습니다.
v(t) = V1 + (V0 - V1) * exp(-(t - T0) / timeConstant)
/**
 * calcTimeConstant
 * @param {number} v0  現在の値
 * @param {number} v1  目標の値
 * @param {number} dur 変化の時間(秒)
 * @param {number} precision 精度 (0.0-1.0)
 * @return {number} timeConstant
 */
function calcTimeConstant(v0, v1, dur, precision) {
  var vT = v0 + (v1 - v0) * precision;
  return -dur / Math.log((vT - v1) / (v0 - v1));
}
네 번째 매개변수 정밀도는 지정된 시간 내에 목표 값에 근접하는 것을 의미합니다.1.0에 가까울수록 목표치에 가까워진다.0.99 정도면 돼요.

1.0에서 0.1까지 500밀리초로 변화하는 그림.
이 사이트에서 실제 값이 어떠한지 테스트할 수 있다.
  • http://the.mohayonao.com/web-audio-api/audioparam/
  • 참조: Web Audio API-4.5 AudioParam 커넥터

    좋은 웹페이지 즐겨찾기