エンベロープとモジュレーション
生のオシレーターは静的です。キーを押せば、1 つの音量・1 つの音色で延々と鳴り続けます。しかし実際の楽器は生きています — ノートは膨らみ、明るくなり、減衰し、消えていきます。モジュレーションは「何かが時間とともに変化すること」を表す総称で、平板なシンセ音を音楽的な音に変えるものです。
本ページでは、最もよく出会う 2 種類のモジュレーション源(エンベロープと LFO)、同じくモジュレーションとして働く演奏入力(ベロシティとキートラッキング)、そして源と行き先を配線するモッドマトリクスを説明します。概念のみで、コードはありません。変調される側のブロックについては、先に シンセシスの基礎 を読んでください。
ADSR アンプエンベロープ
エンベロープは、ノートごとに 1 回だけ展開する形(カーブ)です。古典的なエンベロープは 4 段階 — Attack(アタック)・Decay(ディケイ)・Sustain(サステイン)・Release(リリース) = ADSR — を持ち、最も重要なものはノートの一生にわたる音量を制御します。
| 段階 | 制御するもの | 長い値の聞こえ方 | 短い値の聞こえ方 |
|---|---|---|---|
| アタック | 無音から最大まで立ち上がる時間 | ゆっくり膨らむ(パッド、ストリングス) | 瞬時の打音(撥弦、ピアノ) |
| ディケイ | ピークからサステインの高さまで下がる時間 | じわじわ落ち着く | 素早く下がる |
| サステイン | キーを押している間に保持される高さ(時間ではない) | 大きく保たれる本体(高い値) | 押していても小さい/消える(低い・ゼロの値) |
| リリース | キーを離した後に消えるまでの時間 | 長い余韻、残響のよう | 唐突に途切れる |
撥弦的な音は、速いアタック・速いディケイ・サステインゼロ・短いリリースです。パッドは、遅いアタック・高いサステイン・長いリリースです。同じオシレーターでも、エンベロープだけでまったく別の楽器になります。
アタック・ディケイ・リリースは時間、サステインは高さ
ADSR の 4 つのうち 3 つは継続時間(ミリ秒)です。サステインだけが例外で、音量の高さ、つまりキーを押し続けている限り保持される量です。だから「サステインゼロ」のパッチは、キーを押したままでも無音になります。
独立したフィルターエンベロープ
アンプエンベロープは音量を整形します。これとは別の独立したエンベロープがフィルターカットオフを整形し、音色を独自のスケジュールで変化させられます。速いフィルターアタックがすぐに下がると、シンセベースの明るい「プラック」になります。遅いフィルターアタックはパッドを開花させます。2 つのエンベロープは独立しているため、ノートが暗くなりながら大きくなる、といった任意の組み合わせが可能です。
LFO — ゆっくり繰り返す動き
LFO(低周波オシレーター)は、ピッチとして聞こえないほど遅いオシレーターです — 典型的には 1 Hz 未満から数 Hz 程度。直接聞かせるのではなく、そのゆるやかな上下の波で何かを変調します。
- LFO → ピッチ = ビブラート(保持したノートの小さな揺れ)。
- LFO → 音量 = トレモロ(脈打つ音量)。
- LFO → フィルターカットオフ = ベースやエレクトロニックな質感のゆっくりした「ワブル」。
LFO の主要なつまみは レート(周期の速さ)と デプス(行き先をどれだけ押すか)の 2 つです。
ベロシティとキートラッキング
2 つのモジュレーション源は、シンセ自体ではなくどう弾くかから来ます。
- ベロシティ — キーをどれだけ強く叩いたかで、0〜127 の数値で送られます(MIDI の基礎 を参照)。ベロシティを音量へ配線すると弱打は小さく強打は大きくなり、フィルターへ配線すると強打ほど明るくなって、実際に強く弾いた楽器のように振る舞います。
- キートラッキング — どの鍵を弾いたか。弾いたピッチをフィルターカットオフへ配線すると、高音も低音と同じ明るさに保てます(これがないと、高音は倍音が固定カットオフより上に出てしまい、こもって聞こえがちです)。
モッドマトリクス
モッドマトリクスは、すべてをつなぐパッチベイです。各ルーティングは 3 つの選択からなります。
| 要素 | 意味 | 例 |
|---|---|---|
| ソース(源) | 動かす側 | LFO 1、LFO 2、アンプエンベロープ、フィルターエンベロープ、ベロシティ、キートラッキング、モッドホイール、ランダム |
| デスティネーション(行き先) | 動かされる側 | ピッチ(セント)、フィルターカットオフ(セント)、音量(ゲイン)、パン(位置) |
| デプス(深さ) | どれだけ、どちら向きに | 大きな正のデプス = 強く上向きに押す、負 = その逆 |
つまり「LFO 1 → ピッチ、小さなデプス」はビブラート、「ベロシティ → カットオフ、大きなデプス」はダイナミックな明るさ、「フィルターエンベロープ → カットオフ」は定番のシンセプラックです。同じわずかな源と行き先を組み替えるだけで、膨大な表現の幅が生まれます。
libsonare での実装
NativeSynth では、モジュレーションは SynthPatch の中にあります。アンプエンベロープは ampAttackMs・ampDecayMs・ampSustain・ampReleaseMs、独立したフィルターエンベロープは対応する filterAttackMs / filterDecayMs / filterSustain / filterReleaseMs の組です。2 つの LFO は lfoRateHz と lfo2RateHz で設定し(lfoToPitchCents は直接ビブラートを掛けるショートカット)。自由なルーティングは modRoutings にあり、{ source, destination, depth } の配列です — source は 'lfo1'・'lfo2'・'amp-env'・'filter-env'・'velocity'・'key-track'・'mod-wheel'・'random' のいずれか、destination は 'pitch-cents'・'cutoff-cents'・'amp-gain'・'pan-units' のいずれかです。空でない modRoutings はベースプリセットのマトリクスを置き換え、マトリクスは最大 8 ルーティングを保持します。