チュートリアル 1 : 基礎
テストトーン

チュートリアルの各章のサンプルプログラムを開くためには、Max の File メニューからOpen...を選んで、読んでいる章と同じ番号のドキュメントをMSP Tutorial フォルダから探し出して下さい。該当のチュートリアル用のサンプルプログラムの パッチャーウィンドウだけが開いていることがベストです。

・ Tutorial01 Test toneというファイルを開いて下さい。

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メッセージの start および、stop(または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 のオーディオ入出力