オーディオ入出力

イントロダクション

MSPでのオーディオ入出力

MSPは、デフォルトでは、オーディオ入出力にサウンドマネージャを使用し、「モニタ&サウンド」コントロールパネルで指定してあるカレント(現在)のセッティングによってスタートします。

また、オーディオ・インターフェースカードでMSPを使用することもできます。

いくつかのカードは、そのカードのサウンドマネージャ・ドライバを提供しています。;しかし、もしMSPがMSPオーディオ・ドライバで直接オーディオ・カードをサポートしているなら、カードのサウンドマネージャ・ドライバを使用しないで下さい。

サウンドマネージャとオーディオ・インタフェースカードのダイレクトなサポートのどちらを使用するかは、Maxフォルダにオーディオドライバが存在するかどうかによって決定されます。オーディオドライバのファイルは、Maxフォルダの中の"audiodrivers"というフォルダにあります。特定のインターフェースカードを使用するためには、Maxを開始する前に、オーディオドライバ・ファイルを、"audiodrivers"フォルダからMaxフォルダの中に移動させて下さい。

MSPがMaxフォルダでオーディオドライバを見つけられない場合には、サウンドマネージャを使用します。オーディオドライバが見つかっても、初期化に問題がある場合(例えば、コンピュータにインタフェースカードをインストールしていないか、インタフェースカードのために必要なINITが拡張機能フォルダにインストールされていない場合)、MSPはサウンドマネージャを使用します。オーディオドライバのファイルがあり、正しく初期化されると、MSPは完全にサウンドマネージャをバイパスし、直接、特定のインタフェースカード上で動作します。

あるオーディオ入出力システムから、他のシステムにスイッチしたい場合は、一度Maxを終了して、Maxフォルダのオーディオドライバ・ファイルを変更する必要があります。

この章の残りの部分では、さらに詳しくオーディオ入出力について説明します。

最初に、すべてのグローバルなオーディオのパラメータを変更することができるステータスウィンドウ(音楽の演奏中でも変更できます。)について、説明します。このウィンドウでは、CPUがサウンドを生成するためにどのくらいハードに働いているかをリアルタイムな表示で見ることができます。次に、MSPでのサウンドマネージャの使用について詳しく説明し、さらに、オーディオ・インターフェースカードの使用について詳しく見ていきます。現在サポートされている特定のオーディオ・インタフェースカードについての情報は章の最後で述べます。

DSPステータスウィンドウ

MSPのすべてのグローバルなオーディオ・パラメーターは、DSPステータスウィンドウで表示されます。 DSPステータスウィンドウをオープンするには、ロックされたパッチャーウィンドウでdac~またはadc~オブジェクトをダブルクリックします。

MSPについての情報はDSPステータスウィンドウで見ることができます

DSPステータスウィンドウの最初の項目は、MSPオーディオ処理のオン/オフを切り替えるスイッチです。オーディオは、Maxパッチの中でもオン/オフの切り換えができるので、このスイッチは、カレントのオン/オフ状態のインジケータとしても働きます。

MSPの未登録のコピーを使用している場合、オーディオのオン/オフを一回切り替えると、これはDisabledを表示します。

第2の項目は、何がMSPのオーディオ入出力をコントロールしているかを示しています。デフォルトでは、オーディオはMacintoshのサウンドマネージャで扱われます。この場合、2つの利用可能な出力チャネルと2つの入力チャネルがあります。オーディオ・インタフェースカードがあり、そのドライバをインストールしてある場合には、サウンドマネージャの代わりにそのドライバの名前が表示されます。

次の項目は、サウンドの入力ソースを指定します。サウンドマネージャを使用している場合、コンピューターで利用可能な入力ソースを示すポップアップメニューを見ることができます。オーディオ・インターフェースカードの場合は、入力ソースの選択はできません。マルチプル入力は、adc~オブジェクトの別々のチャンネルとして扱われます。

次の3つの項目は、コンピューターがMSPによるサウンドを生成するためにどの程度ハードに働いているかを示しています。CPU Utilizationは、コンピュータの全処理能力の内のどの程度が、オーディオ処理に費やされているかを示しています。Signals Usedは、カレントのシグナルネットワークのシグナル・オブジェクトを接続するためにMSPで必要な内部バッファの数を示しています。そして、Function Callsはオーディオの各サンプルにどのくらいの演算が必要とされるかの概数予測を示しています。

Sampling Rateポップアップメニューでは、オーディオ・サンプリングレートをセットすることができます。フルレンジのオーディオで推奨されるサンプリングレートは、44.1kHzです。低いレートを使用すると、MSPが計算するサンプル量は減り、コンピュータの負荷を軽くしますが、周波数のレンジを狭めることになります。もし、コンピュータが44.1KHzでは処理が「重い」ようであれば、低いレートにしてみる必要があります。サウンドマネージャを使用している場合、Input SourceとSampling Rateは「モニタ&サウンド」(または「サウンド」)コントロールパネルでも設定できることに注意して下さい。しかし、MSPは、Maxが実行されている間、「モニタ&サウンド」コントロールパネルで設定されたサンプリングレートを無視します。

Vector Sizeは、MSPが一度に計算するオーディオサンプルの数です。コントロールできるベクタサイズは2つあります。I/O Vector Size(I/Oは入出力を表します。)は、出力装置(サウンドマネージャのアウトプット、または、オーディオ・インタフェースカード)に伝えられる、1回のサンプル数をコントロールします。Signal Vector Sizeは、MSPオブジェクト全体で1度に計算されるサンプル数をセットします。これは、I/Oベクタサイズと同じか、より小さい値に設定できますが、より大きくはできません。シグナルベクタサイズがI/Oベクタサイズより小さい場合、MSPは、各I/Oベクタのために、連続して2つ以上のシグナルベクタを計算します。I/Oベクタサイズが256で、サンプリングレートが44.1KHzの場合、MSPはおよそ5.8ミリ秒のサウンドデータを1回に計算します。

I/Oベクタサイズはレーテンシ(シグナル処理によって起ってしまう遅延−訳注)、および全体のパフォーマンスに影響します。小さいベクタサイズはオーディオのインプットとアウトプットの間に内在する遅延を減少させます。これは、MSPがより小さい時間のチャンク(かたまり)を計算するためです。一方で、MSPが次のベクタ(オーディオの次のチャンク)の計算の準備をするために毎回コンピュータに余分な負荷がかかるため、プロセッサにとっては、より大きなベクタを計算する方が、全体として楽になります。しかし、これに関してはもう一つの面があります。MSPがオーディオのベクタを計算する時には、「割り込み」として知られる処理によって行われます。MSPがコンピュータで実行されている場合、他に行われている処理があれば(例えばワープロ等)、それは割り込みをされ、オーディオのI/Oベクタ分が計算されて演奏されます。その後、コンピュータは通常にスケジュールされたプログラムに戻ります。もし、ベクタサイズがかなり大きいと、コンピュータに僅かな遅れが生じ、処理にコンピュータが期待するよりも長い時間がかかるため、オーディオ出力にクリック音を生じる可能性があります。

I/O Vector Sizeを減らすことは、この問題を解決できるかも知れませんが、そうでない場合もあります。CPUの能力の限界に近い状態では、どんな特定のシグナルネットワークのパフォーマンスの最適化も、試行錯誤によるしかありません。そのために、MSPはベクタサイズの選択を可能にしているのです。

いくつかのオーディオ・インタフェースカードでは、I/Oベクタサイズの選択ができないので注意して下さい。

ベクタサイズの変更は実際のオーディオ自体の質には影響しません。サンプリングレートのように高周波のレスポンスに影響するものとは違います。シグナル・ベクタサイズの変更はレーテンシには全く影響しません。全体のパフォーマンスに僅かに影響を及ぼすだけです。(より大きなサイズは、よりよいパフォーマンスを期待できます。)しかし、特定のタイプのアルゴリズムでは、小さなシグナル・ベクタサイズの恩恵を受けます。例えば、MSPのディレイライン・オブジェクトtapin~とtapout~での最も小さなディレイタイムが、カレントのサンプリングレートでの1つのシグナルベクタのサンプル数に等しい場合です。シグナル・ベクタサイズが64で、44.1KHzのサンプリングレートの場合、これは1.45ミリ秒になります。シグナル・ベクタサイズが1024ならば、23.22ミリ秒になります。

MaxのOptionメニューでOverdriveをイネーブルにしている時、サウントマネージャによって「オーディオ割り込みスケジューラ」機能を利用できます。これは、オーディオのI/Oベクタ分の処理の後、直ちにMaxのコントロールスケジューラを実行します。コントロールスケジューラはmetroオブジェクトが繰り返し送信するトリガとしてのbangのように、最も最近受取ったMIDIデータを送信します。「オーディオ割り込みスケジューラ」オプションをチェックすることで、コントロール処理や外部MIDI入力からのトリガによるオーディオイベントのタイミングを大いに改善することができます。しかし、これはスケジューラを実行するタイミングを決定するので、タイミングの改善は直接I/Oベクタサイズの選択と関係します。例えば、I/Oベクタサイズが512の場合、スケジューラは512サンプル毎に実行されます。44.1KHzでは、これは11.61秒毎になるので、これが受信するタイミングの限界になります。小さなI/Oベクタサイズ(256、128、64)では、タイミングは「よりタイト」になります。演奏中であっても、これらすべてのパラメータは変更が可能なので、使えるサウンドを見つけるための実験をすることができます。

もし、コントロールとオーディオの間の明確な同期が重要な処理をしないならば、「オーディオ割り込みスケジューラ」をチェックしないで下さい。CPU全体としてのシグナル処理のパフォーマンスは、僅かに良くなります。

「オーディオ割り込みスケジューラ」にはMaxのバージョン3.5.9か、それ以降が必要なので注意して下さい。もし、この機能をサポートするドライバを使用していないか、この機能の使用ができないMaxのバージョンを使っている場合、DSP ステータスウィンドウに表示されません。また、OptionメニューでOverdriveがチェックされていない場合、この機能は使用禁止にされます。

<-前の章 次の章->