Max MSP ビギナーズ ガイドのこのチュートリアルでは、MIDI キーを放すとモノフォニック シンセサイザーによって生成されるノートの再生が停止するように、オシレーターに接続するエンベロープ システムを構築する方法を学びます。
- 続きを読む:Max MSP 初心者ガイド:モノフォニック ソフトウェア シンセサイザーの構築方法
Max MSP の基本ツールと、入出力とオシレーターの構築方法を説明する前の 2 つのチュートリアルをまだ理解していない場合は、このチュートリアルを開始する前に確認してください。
作業を始める前に、最後のチュートリアルのパッチを開き、ページが正しく設定されていることを確認してください。残念ながら、これらは保存されないため、Max MSP を開くたびにリセットする必要があります。ガイダンスが必要な場合は、このチュートリアル シリーズのパート 1 を参照してください。
次に、パッチ上に Envelope という名前の新しいサブヘッダーを作成します。その機能上、入力の下に配置するのが最適です。
封筒
前回のチュートリアルで MIDI デバイスから送信されたベロシティ情報を覚えていますか?これがエンベロープの基礎になります。これにより、シンセサイザーにノートの再生を開始および停止するタイミングが指示されます。
エンベロープには、アタック、サステイン、ディケイ、リリースという 4 つの典型的なコンポーネントがあります。幸いなことに、これらの各変数を非常に簡単な方法で設定できるオブジェクトがあります。
オブジェクト「adsr~」を作成します。 (alt/option を押しながらオブジェクトをクリックして) ヘルプ ファイルを開くと、エンベロープをトリガーする複数の方法と、アタック、サステイン、ディケイ、リリースの引数を設定する方法があることがわかります。まず、単純なエンベロープを作成してから、メッセージやバンによってエンベロープがどのようにトリガーされるかを学びます。
物体が赤いことに気づくかもしれません。これは、Max MSP がオブジェクトを理解できないため、修正する必要があることを意味します。これはパッチの右側にある Max コンソールにもポップアップ表示され、Max MSP が作成したものを読み取れない理由がわかります。
現時点では単純なエンベロープを作成したいだけなので、変数をオブジェクトに直接挿入します。これは、エンベロープの設定を 1 つだけ設定したい場合に便利なオプションです。任意の数値を選択できますが、ここでは 20、80、0.5、2 を使用します。
エンベロープの接続
これでエンベロープ オブジェクトが作成されました。これをパッチの残りの部分に接続する必要があります。前述したように、「notein」オブジェクトによって受信される速度情報を受信する必要があります。これを行うには、「Kslider」の速度アウトレットから、左側の入口である「asdr~」トリガーにワイヤーを接続する必要があります。速度が変化すると、エンベロープをトリガーしてオンにする必要があるためです。
次に、エンベロープの魔法の働きを聞くことができるように、エンベロープを出力に接続する必要があります。
今後のプロセスをわかりやすくするために、乗算オブジェクト インレットの左側にエンベロープを追加することをお勧めします。
ただし、ノートを再生すると、ノートを放したときに再び再生される可能性があります。このような場合でも、心配する必要はありません。これは、エンベロープが「ノートオン」と「ノートオフ」の両方でトリガーされていることを意味します。これを簡単に修正するには、新しいオブジェクトの左側のインレットを使用して、Kslider アウトレットと「asdr~」インレットの間にオブジェクト「<0」を追加します。
これにより、エンベロープは受信した数値を 0 と比較するため、エンベロープに渡されるすべての数値が 0 より大きいことが保証されます。そのため、キーを放してもノートはトリガーされません。
この時点で、パッチは次のようになります。
エンベロープを Max MSP に接続する 信号を視覚的に表現したい場合は、シンセサイザーの出力の信号乗算アウトレットのアウトレットにオブジェクト「meter~」を追加できます。ここでは、エンベロープが信号をどのように変化させるかを確認できます。
メッセージとプリセット
これで、オシレーターによって生成されるノートをオフにする作業エンベロープ システムが作成されました。
プリセットの作成については今後のチュートリアルで詳しく説明しますが、メッセージとバンはエンベロープの設定を調整する簡単な方法であり、毎回手動で設定を調整する必要はありません。
これを行うには、サブパッチを作成する必要があります。これは基本的にパッチ内のパッチであり、ページ上の煩雑さを軽減します。これを作成するには、オブジェクトを作成し、文字「p」に続いてサブパッチの名前を入力します。この場合、「p ENVELOPE」という名前を付けました。
作成すると、サブパッチャーに移動します。最初に作成する必要があるのは、サブパッチャーをエンベロープ オブジェクトにアタッチできるようにするためのインレットとアウトレットです。制御する必要がある変数が 4 つあり、4 つの異なるプリセット オプションを作成する必要があるため、4 つの「インレット」オブジェクトと 4 つの「アウトレット」オブジェクトを作成する必要があります。
メインパッチに戻ると、サブパッチオブジェクトのアウトレットは、「asdr~」オブジェクトの関連するアタック、ディケイ、サステイン、リリースに接続する必要があります。各インレットの上にカーソルを置くと、どれがどれであるかを確認できます。
サブパッチャーは、特にシンセサイザーなどのソフトウェア音源でパッチを適用する簡単な方法です。ただし、メイン パッチのバンによってサブパッチ内のメッセージをトリガーすることはできません。
したがって、サブパッチの内側に 4 つのバングを作成してインレットに接続し、サブパッチの外側にも 4 つのバングを作成してオブジェクトのインレットに接続する必要があります。これは、メイン パッチで bang がトリガーされると、サブパッチ内で bang がトリガーされ、オブジェクト内の変数を変更するようにメッセージに伝えることを意味します。
この段階でのメイン パッチのエンベロープは次のようになります。
メインパッチのエンベロープ エンベロープの変化をリアルタイムで確認したい場合は、サブパッチャーと「asdr~」オブジェクトの間にナンバー ボックスを追加し、強打をトリガーすると数値が変化するのを確認できます。
サブパッチャーに戻ると、メッセージと、メッセージがオブジェクトに何をすべきかを伝える方法について前述しました。したがって、これらの強打は、エンベロープ オブジェクトに書き込まれた 1 つの設定ではなく、エンベロープ オブジェクトを希望の設定に設定するメッセージをトリガーします。
4 つのプリセットはそれぞれ、強打によってトリガーする必要がありますが、アタック、ディケイ、サステイン、リリースの 4 つの異なる変数にルーティングされます。これは、4 つのプリセットにグループ化された 16 個の個別のメッセージを作成する必要があることを意味します。
前のセクションで使用したエンベロープ設定の例を使用すると、サブパッチャー内のプリセットの 1 つは次のようになります。
サブパッチャー内のプリセットの 1 つ 最初のインレットからの bang がトリガーされると、変数は「adsr~」オブジェクトの各インレットにアタッチされているため、エンベロープをこれらの変数に設定する必要があります。他の 3 つのインレットに対してこの手順を繰り返し、毎回変数を好みの設定に変更する必要があります。
エンベロープがスムーズなサウンドから、短く、軽快に、そして長く変化するように、4 つのプリセットを作成しました。このステップが完了したら、サブパッチャーを閉じることができます。
これは、すべてのメッセージが正しいアウトレットに接続された、完成したサブパッチの例です。
完成したサブパッチ これで、シンセサイザーを再生し、メイン パッチでバン メッセージをトリガーすると、エンベロープ設定が自動的に変更されるはずです。
Max MSP でプリセットを作成する方法はたくさんあります。これは 1 つの例にすぎませんが、チュートリアル 5 では、パッチにさまざまな設定をプリセットする他の簡単な方法をいくつか取り上げます。
これで、オシレーターとエンベロープを備えたシンセサイザーが完成しました。自由にさまざまな設定を試し続け、プラットフォームを把握してください。
まだ Max MSP をダウンロードしていない場合、Cycling 74 は 4 週間の無料トライアルを提供しています