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