T("env")
KR/AR Envelope
Description
エンベロープを定義し、bang()を受けて動作します。インプットがない場合はエンベロープ値のみを、インプットがある場合はインプットを加算したものにエンベロープ値を積算して出力します。
エンベロープの形状は table プロパティで指定します。table は 初期値 に続いて [次の値, 時間(ms), カーブの種類] の子配列を要素に持つ配列です。以下の例では 440Hzから 0.5秒かけて 880Hzに上昇し、0.25秒で 660Hzに遷移するエンベロープをオシレーターの周波数の入力として 3回動作させています。
releaseNode プロパティを指定すると、 release() メソッドをトリガするまで持続するエンベロープを作成できます。以下の例では 3番目の要素をリリースノードとすることで直前の値 0.6 まで遷移した後、持続して release() がトリガされてから 1秒かけて 0 に遷移するエンベロープを動作させています。
loopNode プロパティを指定すると、エンベロープの末尾まで到達した後、リリースノード以降を繰り返すエンベロープを作成できます。以下の例では 1番目の要素をループノードとすることで周期的に変化するエンベロープを作成して、オシレーターの周波数の入力とすることでビブラートを行っています。releaseNode と合わせて使用した場合、ループノードとリリースノードの間でループします。
Properties
table(Array)curve(String "lin" or "exp")releaseNode(Number)loopNode(Number)
Methods
bang()- エンベロープを起動します
release()- リリースフェーズに移行します
Events
sustained- エンベロープが持続フェーズに入ったときに発生します
released- リリースメソッドが呼ばれたときに発生します
ended- エンベロープが終了したときに発生します
Tips
- カーブの種類は
"lin"か"exp"を指定できます。 curveプロパティでデフォルトのカーブの種類を設定できます。plot()メソッドでエンベロープの形状を描画します。- 時間は timevalue形式の文字列でも指定できます。
Constructors
T("env") クラスには便利なコンストラクタが用意されています。それらを使えば、最小限のパラメータでエンベロープテーブルを作成することができます。
T("perc")
T("perc") はパーカッシブなエンベロープを作ります。
- a, attackTime: 10
- r, releaseTime: 300
- lv, level: 0
T("adsr")
T("adsr") はADSRタイプの持続エンベロープを作ります。
- a, attackTime : 10
- d, decayTime : 300
- s, sustainLevel : 0.5
- r, releaseTime : 1000
- lv, totalLevel : 1
T("adshr")
T("adshr") はADSHRタイプのエンベロープを作ります。
- a, attackTime : 10
- d, decayTime : 300
- s, sustainLevel : 0.5
- h, holdTime: 500
- r, releaseTime : 1000
- lv, totalLevel : 1
T("asr")
T("asr") はASRタイプの持続エンベロープを作ります。
- a, attackTime : 10
- s, sustainLevel : 0.5
- r, releaseTime : 1000
- lv, totalLevel : 1
T("dadsr")
T("dadsr") は DADSRタイプの持続エンベロープを作ります。
- dl, delayTime : 100
- a, attackTime : 10
- s, sustainLevel : 0.5
- r, releaseTime : 1000
- lv, totalLevel : 1
T("ahdsfr")
T("ahdsfr") は AHDSFRタイプの持続エンベロープを作ります。
- a, attackTime : 10
- h, holdTime : 10
- d, decayTime : 300
- s, sustainLevel : 0.5
- f, fadeTime : 5000
- r, releaseTime : 1000
- lv, totalLevel : 1
T("linen")
T("linen") は台形エンベロープを作ります。
- a, attackTime : 10
- s, sustainTime : 1000
- r, releaseTime : 1000
- lv, totalLevel : 1
T("env.tri")
T("env.tri") は三角エンベロープを作ります。
- dur, duration : 1000
- lv, totalLevel : 1
T("env.cutoff")
T("env.cutoff") はカットオフエンベロープを作ります。
- r, releaseTime : 100
- lv, totalLevel : 1
Source
https://github.com/mohayonao/timbre.js/blob/master/src/objects/env.js