チュートリアル 1
テストトーン

・ チュートリアルを開いて下さい。

MSPオブジェクトはMAXオブジェクトとよく似ています

MSPオブジェクトは、コンピュータによって演奏されるディジタルオーディオ(すなわちサウンド)を処理します。MSP オブジェクトは、Max オブジェクトとまったく同じような外観をし、同じようにインレット、アウトレットを持っています。そして、Maxオブジェクト同様、パッチコードで接続されます。MSPオブジェクトは、Maxオブジェクトと同じ方法(パッチャーウィンドウにオブジェクトボックスを置き、その中にオブジェクト名をタイプする方法)で作ることができ、同じパッチャーウィンドウでMAXオブジェクトと全く問題なく共存します。

...しかし、ちょっと違います

相互に接続されたMSPオブジェクトによるパッチは、通常のMaxオブジェクトによるものと少し違った動作をします。

この違いを考える一つの方法は、MSPオブジェクトが通常のMaxオブジェクトに比べ非常に速く動作しているものと考えることです。MSPオブジェクトはハイファイ・オーディオシグナルを生成するのに十分な数値(一般に、1秒につき44,100個の数値)を作り出す必要があるため、通常のMaxオブジェクトによって使用されるミリ秒単位のスケジュールより速く動作しなればなりません。

違いについて考える有益なもう一つの方法はこうです。MSPオブジェクトによるパッチを(標準的なMAXパッチのように)イベントが特定の瞬間に発生するプログラムとして考えるのではなく、シンセサイザ、サンプラ、またはエフェクトプロセッサの設計の記述として捉えることです。各MSPオブジェクトは、そのアウトレットに接続されている他のオブジェクトに絶えず数値を送りだしている「数式」のようなものです。時間内のどのような瞬間においてもこの「式」は結果を持ち、その結果はオーディオシグナルの瞬間的な振幅になります。相互接続するMSPオブジェクトの一群をを、「シグナル・ネットワーク」と呼ぶことが多いのはこのためです。。

通常のMaxオブジェクトで作られたパッチが、あるオブジェクトから他のオブジェクトにメッセージを送るきっかけになる何か(マウスクリック、入力MIDIメッセージ、その他)が発生するまで動作せず、何もしないのに対して、MSPオブジェクトによるシグナル・ネットワークは常に(オンの瞬間からオフの瞬間まで)アクティブで、すべてのオブジェクトは、その瞬間瞬間のサウンドのための適切な振幅を計算するために絶えず情報をやりとりしています。

...そのため、それらの外見はちょっと違います

すべてのMSPオブジェクトの名前は、ティルド文字(~)で終わります。この文字は正弦波のサイクルのように見えるため、MSPオブジェクトを他のMaxオブジェクトと区別するのを助けるインジケータのような役目を果します。

MSPオブジェクト間のパッチコードにはストライプがあります。これにより、MSPシグナル・ネットワークを、残りのMaxパッチの部分から区別しやすくなっています。


MSPオブジェクトはストライプのパッチコードで接続されます

デジタル・アナログコンバータ:dac~

デジタル・アナログコンバータ(DAC)は、一連のデジタルオーディオシグナルの「離散的な数値」を、スピーカを働かせるための「連続的に変動する電圧」に変換する、コンピュータの一部分です。

コンピュータでサウンドを生成するためにデジタル信号の計算が終わったら、DACに数値を送り出さなければなりません。そのためにMSPには dac~ と呼ばれるオブジェクトがあり、通常、どのようなシグナル・ネットワークの場合でも終端のオブジェクトになります。このオブジェクトは、聞こうとするシグナルを入力として受取ります。dac~ は、オーディオ出力に利用可能なチャンネルと同じ数のインレットを持っています。Core Audio(あるいは、Windows 上の WWWW )を使用してコンピュータのオーディオハードウェアから直接サウンドを出力する場合、出力チャンネルは2つであるため、dac~ のインレットも2つあります。(より高性能なサウンド出力ハードウェアを使用している場合、それ以外のオーディオチャンネルを指定するためのアーギュメントを入力することができます。)



dac~はシグナルを演奏します

重要!何かを聞くためには、dac~がゼロ以外の振幅のシグナルを受信していなければなりません。dac~ は-1.0〜1.0の範囲での値の受信を前提にしています。サウンドが演奏される場合、その範囲を超える値はディストーション(波形の歪み)を引き起こします。

ウェイブテーブル・シンセシス:cycle~

周期的な波形を作るための最も良い方法は、cycle~ を使うことです。このオブジェクトは、「ウェイブテーブルシンセシス」と呼ばれる技術を利用します。cycle~ は指定された速さで512個の数値から成るリストを読み通し、最後まで読み終えるとまたリストの最初に戻ってループします。これは、周期的に反復する波形をシミュレートします。

cycle~ に対して、(オーディオファイルの形式で)あらかじめ用意した値のリストを読むように指定することができます。また、何も指定しない場合、cycle~ は振幅1のコサイン波の1サイクルを表す自分自身のテーブルを読みます。チュートリアル3では、独自に用意した波形を用いる方法を紹介します。ここでは、コサイン波の波形を使用します。


振幅1によるコサイン波の1サイクルを表している512の数のグラフ

cycle~ は、左のインレットで周波数値(Hz)を受け取り、要求された周波数でシグナルを送り出すためにどれくらい速くリストを読まなければならないかを決定します。

技術的な詳細:連続する各々のサンプルに対して、どのくらいのステップ幅でリストを読み通す必要があるかを計算するために、cycle~は次の基本式を利用します。

I=fL/R

Iがリストを進む時に増加する量、fはシグナルの周波数、Lはリストの長さ(この場合512)、Rは、オーディオ・サンプリングレートです。cycle~は”補間オシレータ”であると言えますが、これは、Iが与えられたサンプルのリストの整数インデックスに正確に一致しない場合、cycle~ が該当する出力値を得るために、リストの中の最も近い2つの数値の間での補間を行うということを意味します。ウェーブテーブル・オシレータで補間を実行することは、オーディオ品質の実質的な改良になります。他のMSPオブジェクトが非常に高品質の(そして、より多くの計算を要する)多項式補間を利用するのに対して、cycle~ オブジェクトは線形補間を利用します。

デフォルトでは、cycle~ は0Hzの周波数を持っています。そのため、シグナルを聞くには、オーディオ領域の周波数値を与える必要があります。これは、サンプルパッチの場合のように数値をアーギュメントとして入力するか、左インレットに数値を送ることによって、あるいは左インレットに他のMSPオブジェクトを接続することによって可能になります。

シグナル処理のスタートとストップ

オーディオのオンとオフを切り替えるには、dac~オブジェクト(またはadc~オブジェクト- 後の章で説明します)の左インレットに Maxメッセージ startstop (あるいは、1と 0)を送ります。任意の dac~ オブジェクトや adc~ オブジェクトに startstop を送ることによって、すべてのシグナルネットワークが有効または無効になります。


可能な限りシンプルなシグナルネットワーク

dac~ はシグナル・ネットワークの一部分ですが、start stop のような特定のMaxメッセージを理解します。MSPオブジェクトの多くはこのように機能し、オーディオシグナルと同じように特定のMaxメッセージを受け取ります。

テストトーンを聴く

最初に Max/MSP を起動した場合には、オーディオ入出力に、コンピュータのデフォルトのサウンドカードとドライバ(Macintosh 上では Core Audio、Windows 上では MME )を使ってみて下さい。コンピュータのオーディオ出力がヘッドフォン、あるいはアンプに接続されている場合、それを通して MSP の出力が聞こえるはずです。コンピュータにオーディオケーブルが接続されていない場合には、コンピュータの内蔵スピーカからサウンドが聞こえます。

MSP を起動して正しく動作させるために、コンピュータのビルトイン(組み込み)サウンドハードウェアを使ってチュートリアルをスタートさせることを推奨します。外部オーディオインターフェイスやサウンドカードを使用したい場合には、オーディオハードウェアで MSP を動作させるための設定に関する詳細が書かれている「オーディオ入出力」の章を参照して下さい。

・オーディオアンプ(またはアンプ内臓スピーカ)を最小のセッティングにして、start と書かれたメッセージボックスをクリックして下さい。オーディオアンプを、適当と思われる最大のセッティングまで調節したら、stop と書かれたメッセージボックスをクリックして、うるさいテストトーンをオフにして下さい。

トラブルシューティング

このサンプルパッチで dac~ をスタートさせてもコンピュータから出力される音が何も聞こえない場合には、アンプまたはミキサのレベルセッティング、オーディオ機器の接続をチェックして下さい。また、サウンド出力がミュートされたままになっていないかどうかをチェックして下さい。Macintosh では、サウンド出力レベルは、「システム環境設定」アプリケーションの中の「サウンド」を使って設定します。Windows では、サウンド出力レベルは、「サウンドとオーディオデバイス」(スタート - コントロールパネル - サウンドとオーディオデバイス)を使って設定します。

それでもまだ何も聞こえない場合には、Options メニューから DSP Status を選び、Driver ポップアップメニューで、Macintosh では「Core Audio Built in Controller」、Windows では「MME driver」が選択されているかどうかを確認し、そうなっていない場合にはそのドライバを選択して下さい。

まとめ

MSPオブジェクトが接続されたシグナルネットワークは、オーディオインストゥルメントを記述します。インストゥルメントのデジタル・アナログコンバータは、dac~ オブジェクトによって実装されます。dac~ が音を出力するためには、ゼロ以外の振幅(-1.0〜1.0の範囲で)のシグナルを受信していなければなりません。cycle~ オブジェクトは、与えられた周波数値によって決定される速さで、512の振幅のリストから周期的に値を読み通すウェイブテーブル・オシレータです。シグナル処理は、任意の dac~ あるいは adc~ オブジェクトに start メッセージや stop メッセージを送信することによって、オンとオフの切り替えを行ないます。

・次の章へ進む前にパッチャーウィンドウを閉じて下さい。

参照

cycle~ テーブルルックアップ・オシレータ
dac~ オーディオの出力、およびオン/オフ
オーディオ I/O MSP によるオーディオ入出力の I/O