これまでは、音の出だし(アタック)と、音の余韻(リリース)のみの、簡易的なエンベロープをつくってきました。
一般的に、エンベロープは4つのパラメータを持ち、アタック、ディケイ、サスティン、リリース、があります。
4つのパラメータの意味を知るには、Abeltonのシンセ解説のサイトが参考になります。
Pdでも、エンベロープをつくるのに便利なオブジェクトがあります。
4つのパラメータがあるので、役割をわかっておきましょう。少し変えただけなのに、音が聞こえなくなるパラメータもあります。
[ vline~ ]を使いますが、パラメータの受け渡しの順番や、そのパラメータでどのように変化するのは、少しわかりにくいので、[ vline~ ]の使い方から解説します。
[ vline~ ]に、メッセージが送られています。
0.7 1000,
0.4 300 1000,
0 1000 4000
コンマで区切られて3種類あります。
1つめは「0.7になるまで、1000ミリ秒かける」という意味です。アタックを作り出します。
2つめは「0.4になるまで、300ミリ秒かけるイベントを1000ミリ秒後に開始する」という意味です。
最後の「1000ミリ秒」が、1000ミリ秒に満たない場合はアタックが上がりきらず、1000ミリ秒より大きい場合はアタックを保持したまま待ちます。アタックと関係しますが、設定したアタックのパラメータが反映されるよう、アタックと同じ時間にすると良いと思います。
3つめは「0になるまで1000ミリ秒かけるイベントを、4000ミリ秒後に開始する」ものです。
実用的なエンベロープのパッチを作ります。
外部パッチの「my_osc.pd」と置き換えられるように、同じ入出力をもつパッチにしてみました。
[ vline~ ]のところがわかりにくいかもしれませんが、
スライダーで調整できる上限下限が異なるのでメモしておきます。