Windows2000を音楽制作用に最適化!

トピックス > Windows2000を音楽制作用に最適化!

最終更新日 2003年9月9日 

今あえて「Windows」で音楽制作をすると言えば、そのプラットフォームは安定した動作のWindowsNT系列、中でもXPに比べ動作も軽くサービスパック4まで出てきてこなれてきたWindows2000を使う方も多いと思います。Win2kを使うにあたり、OSやパソコンをどのようにチューンしたら良いかという記事を調べてみたら良いページに行き当たりました。でも英語だったので自分で使うためにも翻訳ソフトとかで訳した上で追記などしてみました。意味分からないところで直接の操作に関係無いところなどすっ飛ばしてしまってたりしますが、興味ある方は参考にしてみて下さい。

※このページに書かれている内容は、 ProRec.comの中の記事を自分なりに翻訳ソフトとかで翻訳してみたものを要約し、鈴木が追記などを行ったものです。主に赤い字の部分がチューン可能な箇所です。ここに挙げるチューンナップの内容は自己責任の元でお試し下さい。 また、有意義な情報を提供して下さった原文の著者Jose-Maria Catena氏に深く感謝致します。

■Windows2000の動作条件

最低32MBのメモリで動作することになっていますが、このままだとバーチャルメモリへのアクセス、つまりスワップが頻発しとても使えたものじゃありません。最低128MB、できるのであれば256〜512MBのメモリを搭載すると良いでしょう。

■Windows2000のインストールの前に…ACPI

BIOSの操作が可能であれば、ACPIをオフにしてインストールするのが良いでしょう。ACPIは追加の割り込み命令を使い、筆者の個人的な意見ではこの割り込みがあまり良い結果を生まないので、できるのならばACPIはオフで使いましょう(僕も以前DS2416というYAMAHAのオーディオカードを2枚同時に使っていたとき、IRQの共有のせいでノイズが乗ったりしました)。ただし、ACPIを単純にOFFにしただけだと、Windows2000の終了時に電源が自動的に切れなくなってしまうので、「コントロールパネル」>「電源オプション」でAPM(Advanced Power Management)をオンにしておくと良いと思います。

ただし、ACPIに関しては最近のコンピューターでACPIのバグが少ないと認められる場合、無理にオフにする必要は無いかも知れません。特にメーカー製のパソコンは標準でACPIはオンでインストールされています(ACPIのもと動かすことを前提に設計されている)から、これを後からOFFにするためにはシステムのデバイスマネージャーのコンピューター>ACPI PCをダブルクリックしてドライバの更新で無理矢理「標準PC」をインストールすることになります。これを行うと、一度VGAの16色画面表示になりほぼ全てのデバイスのドライバを自動的とはいえ読み直す必要が出てくるので逆に悪影響を与えるかもしれません。音のノイズなど気になる場合のみ試してみると良いでしょう。実際、僕のVAIOノートの場合はACPIオンでIRQ9に様々なデバイスが割り当てられている状態でも充分なパフォーマンスを発揮できました。ちなみにACPIをオフにしたらシステムが破綻しました(爆)こういうこともあるので最新鋭の機種をお持ちの方は逆にオススメできないかもしれません(^^;;

■ファイルシステムはFAT32とNTFSとどっちが良いか?

Windows2000ではWin9X系ではサポートされない「NTFS」というファイルシステムをサポートします。NTFSでパーティションをフォーマットした場合、様々な便利な付加機能を使うことができますが、これらは音声アプリケーションにおいては全く必要ないものです。アクセス速度もFAT32に比べ10%以上遅くなるケースもあり、また、デフラグにもより多くの時間を必要とします。以上により、オーディオ用にはFAT32が適し、なおかつオーディオ用に専用の別のハードディスクを用意することが最も望ましいでしょう。それが不可能でも、パーティションを分けてオーディオ用のパーティションをFAT32でフォーマットすることによりWin9X系との互換性も保つことができるのでオススメです。

しかし、1ファイル4GB以上あるような大きなビデオファイルなどを扱う場合はNTFSを利用しましょう。また、FAT32でフォーマットする際も、 format [ドライブ名] /z:64 のオプションをつけて32Kのクラスターサイズでフォーマットすることにより、最良のパフォーマンスを得ることができます。

Windows2000にはNTFSへのコンバーターが用意されていますが、これを利用する際も必ずバックアップをとった上で利用しましょう。

■デュアルブート

Windows2000はそれ以前のWin9XのOSに比べ過去に制作されたプログラムへの互換性に欠けるので、もし古いプログラムを動かすことがあるのならデュアルブートにすることをオススメします。デュアルブート環境を構築する方法は、まず最初に古いOS(Win98など)をインストールし、その後からWindows2000のセットアップを始めます。このとき、「Windows2000にアップグレードしますか?」と聞かれたら「新しいコピーをインストールする」(※日本語表記が微妙に違うと思います。スミマセン)を選び、別のパーティションを指定しそこに新しくWindows2000をインストールすると良いでしょう。このとき、同じパーティション内に2つ以上のOSをインストールしてしまうと、動作が不安定になったり、後でNTFSにドライブをアップデートすることができなくなってしまいます。

ここで一つ面白い裏技があります。Win9XのスワップファイルをWindows2000のそれと同じ名前に変更すると、無駄な領域を節約することができます。この2つのOSは同時に動作することはないので安全です。方法としては、Win9Xのディレクトリ内のSYSTEM.INIファイルを編集し、"PagingFile="と書いてある行を見つけ、その名前をPAGEFILE.SYSに変更します。そして再起動して古いWIN386.SWPファイルを削除します。以上です。これによって処理速度が速くなるわけではありませんが、ディスク上の無駄なスペースを節約できます。

■バーチャルメモリ

Windows2000はバーチャルメモリをオフにすることができません。しかし、これは大きな問題ではありません。なぜならWindows2000はWin9X系のそれよりも効率よく管理することが出来るからです。ただし、バーチャルメモリが置かれるであろうディスクを選択することはできます。このバーチャルメモリのファイル、つまりスワップファイル(ページングファイル)をオーディオ用のディスクに置いてはいけません。これは録音再生時にスワップファイルを大きくする必要が生じた際、パフォーマンスが大きく低下するからです。よって、スワップファイルが大きくならないように最小バーチャルメモリのサイズを指定しておくべきです。これは256MBから指定できますが、384MBから512MBの間にしておくのが良いでしょう。同時に最大サイズも1024MBか、もっと大きくしても良いくらいでしょう。

■視覚効果など

全部オフにしましょう。コントロールパネル>画面>効果タブで「メニューとヒントをアニメーション化する」をオフにしましょう。また、「ドラッグするときに画面の内容を表示する」もオフにしたほうが良いです。可能であれば、マイクロソフトからTwakUIの最新版をダウンロードしてきて、視覚効果やアニメーションの類を全部オフにするとさらに良いです。

原則として、CPUが(音声の処理のような)優先度が高く集中的なタスクを行っているとき、より優先度の高い処理にCPUの優先度を与えるために視覚効果はゆっくりと動作するべきなのです。しかし、マイクロソフトの一部ではこの考え方は受容されず、視覚効果こそ重要であるとオーディオよりも視覚効果により高い優先度を与えたのです。結果として、我々がより重要と考える他の処理よりも、ツールチップなどに多くのタスクの時間を割り当てられてしまうのです。なので、視覚効果をオフにすることによって、きれいなドロップダウンメニューが引き起こすフラストレーションと決別することができます。

もう1つ、システム音もオフにすると良いでしょう。コントロールパネル>サウンドとマルチメディアから「サウンドなし」を選択すると良いでしょう。

さらに、コントロールパネル>画面>Webの中身もオフにしておきましょう。デスクトップの背景とデスクトップテーマ、スクリーンセーバーも使わないようにしておくと良いです。その代わりに電源のオプションを操作して省電力になる設定にしておけば良いです。

もし24ビットや32ビットの色数を必要としないのであれば、これを16ビットにするのも良いでしょう。(コントロールパネル>画面>設定)

■バスマスタリングATAコントローラードライバー

Windows2000は標準でアクティブなDMAのモードを検出します。コントロールパネル>システム>ハードウェアタブ>デバイスマネージャー内の「IDE ATA/ATAPIコントローラー」の中にある各IDEチャンネルを見ることによって確かめることが出来ます。ここの詳細設定に「PIOのみ」または「DMA(可能な場合)」が選択できるようになっていて、現在アクティブなモードが表示されています。しかし、これが表示できないのであれば、きちんとコントローラーが認識されていない可能性があります。インテル製のチップセットであれば問題無いのですが、その他であれば速度が大きく変わるかもしれません。特に、VIA686Aチップセットは最悪です(注:僕が以前使っていたAMD761+VIA686Bのチップ構成のGA-7DXというマザーボードはAthlonながら非常に安定した動作をしていました)。いずれにせよ、DMAは全てのドライブにおいて、特にオーディオを扱うドライブは必ず使用可能にする必要があります。DMAを利用することにより100トラックを同時に走らせることが出来るシステムでも、PIOのみだと12トラックすら満足に動かすことができません。注意しておきたいのは、ATA66又はそれ以上のデバイスを接続する際には、専用の80線のATAケーブルを使う必要があります。もしATA33しか使っていないとしても、すぐに80線のケーブルに変えた方がいいでしょう。エラーが減りパフォーマンスが改善されます。

■ファイルI/Oの最適化

Windows2000はファイルのやりとりに関して非常に効率的で、Win98システムを最適化する際に必要だったVCACHEの設定など一切いりません。ただ1つ必要なのはディスクを適切にフォーマットすることです。上でも述べましたが、32KBクラスタでディスクをFAT32フォーマットするために FORMAT [drive-letter]: /z:64 と打ちましょう。また、ディスクパフォーマンスの統計もオフにすることができます。コマンドラインから diskpref?n と打ちましょう。これは再起動後に変更されます。もし再度オンにしたい場合は diskpref -y と打ちましょう。オフにすることによりほんの少しパフォーマンスが変わるかも知れません。

■電源のオプション

スクリーンセーバーをオフにして、コントロールパネル>電源の中で省電力に関する設定をするのが良いでしょう。さらにハードディスクの電源を自動的にオフにするオプションも利用しないようにしましょう。通常、スタートとストップの繰り返しがハードディスクのすり減りを助長します。バッテリーで動作するPCには効果的ですが、ACで動かす場合には必要とされません。

■さらに

Windows2000は2つのあまり使われないサービスを動作させている。これらは非常に少ないCPUパワーを消費しますが、メモリを占有し起動にかかる時間を長くします。なので、必要ないのであれば止めてしまいましょう。コントロールパネル>管理ツールのサービスで設定可能です。必要でないかも知れない典型的なサービスは以下の「Distributed Link Tracking Client」「DNS Client」「IPSEC Policy Agent」「Remote Registry Service」「Task Scheduler」の5つ。さらに、LANを使っていないのであれば「Computer Browser」「DHCP client」「TCP/IP NetBios helper」もオフにできます。「CD-ROM Auto-Play」も、Windows98では重要でしたが、Windows2000においてはあまり関係ありません。

既定の優先度の設定には触れてはいけません。あなたはどこかで優先度を増加させることを勧めているのを見たかも知れませんが、これは良くないことです。プログラムが適切に判断します。これらはプログラマーがきちんと設計したものであり、安易に変更することはオススメできません。

■ソフトウエアの互換性とWin32 API

Windows2000は基本的なAPIをWin9XシリーズやNT4と共有します。非常に高い互換性でアプリケーションが動作するが、まれに動作しないものもあるので、その時はアプリケーションの提供元に連絡を取るべきです。

■マルチメディアと他の新しいAPI

「Windows2000はオーディオに最適化されておらず、Win9XやMEがマルチメディアに対してベストチョイスだ」と聞くことがありますが、これは全く間違いです。DirectX 8は最初、Windows2000向けに開発され、Windows2000でしか動作しませんでした。マルチメディアアプリケーション(または他の正確なタイミングを必要とするアプリケーション)のキーファクターは、タスクスケジューラーのレイテンシーとI/Oの効率です。この両面においてWindows2000はWin9Xにおいて勝っています。平均的なPCにおいて、Win9Xが100msの遅延を生じる処理をWindows2000ではほぼ1msの遅延で済みます。

■WDMドライバー

WDMとはWindows Driver Modelのことで、Win98SEで初めて登場したドライバーのアーキテクチャーです。Windowsの標準オーディオドライバーの中で、WDMは最もパフォーマンスが良く、柔軟な作りになっています。通常WDMはWin98SE、WinME、Win2000やそれ以降に登場するOS全てにおいて同様に動作するように設計されるはずですが、Win98SEにおけるテストが不十分である場合などあり、Windows2000でしか動かない、などという場合もあるでしょう。もし良いWDMドライバーをハードウェアベンダーが提供していなかったら、改善要求を送ったほうががよいかもしれません。

■カーネルストリーミング

アプリケーションと音声のドライバの間の典型的なインタフェースは(MMEインタフェースを使っている古いアプリケーションが動作するように)、広い用途で利用できるように(いくつかのアプリケーションが同時に同じポートを使うことができるように)、サンプルレートとフォーマットを変えて、すべての入ってくるストリームをミックスすることができます。これらのコンポーネントはKMIXERと呼ばれています。しかし、低いレイテンシーで利用するときに不利な点があります。オーディオをバッファに取り込まないといけないので少なくとも30msは遅れるのです。KMIXERの弱点を克服し、より細やかなコントロールと低いレイテンシーを提供するのがカーネルストリーミングと呼ばれるものです。これはマイクロソフトのオリジナルではなく、Cakewalkなどのプロオーディオを扱うサードパーティの少数チームに擁護されたのです。Sonarがカーネルストリーミングを最初に採用したアプリケーションであり、そのパフォーマンスは非常に感銘をうけるものでした。WDMカーネルストリーミングドライバを利用することにより、50ステレオペア以上のトラックを同時に録音再生、取りこぼしもなく24bit44.1kHzで3msのレイテンシーを実現したのです。

■レイテンシーの問題

オーディオアウトプットのレイテンシーはオーディオが処理されてからスピーカから出てくるまでの量のことです。音切れ無く録音・再生するための最低レイテンシーはオーディオハードウェアの設計・ドライバの出来、OSのパフォーマンス、そしてオーディオを扱うアプリケーションのデザインに依ります。これらの多くはハードウェアなどの提供元に依存しますが、OSのパフォーマンスは多くの点に依存します。オーディオのレイテンシーに影響を与える主なパフォーマンスパラメーターはタスクスケジューラーのレイテンシーです。Windowsは巧妙な32の優先度の段階を持っています。下位16段階の優先度は典型的に、共有された多重タスク処理に使われる動的なものです。標準的な優先度のタスクは、CPU時間を共有します。上位16段階の優先度は、典型的にはリアルタイム処理に割り当てられています。標準的な優先度のタスクは、上位のリアルタイム処理タスクが動作していない時のみ動作することができます。これは非常にパワフルであり、唯一のUNIXや他の多くのOSとの相違点は、優先度の段階が256段階でないことだけです。よっぽど複雑なシステムでもなければ32段階もあれば充分と言えるでしょう。

しかし、リアルタイム処理は多くのCPU時間を占有するので、間違った設定で使われると非常に危険です。低い優先度で動作するべきものが、高い優先度で動作するプログラムを待たせてしまう可能性があるからです。Win9Xで多くの問題をはらんだこのシステムも、Windows2000においては優先度逆転を回避するメカニズムが作用し完璧に動作します。これはWindows2000をオススメする大きな理由の1つです。しかし残念ながらAPCに起因する問題のため100%完璧とは言い切れません。

しかし、Windows2000はWin9Xががらくたに思えるほど素晴らしいOSです。常にアップデートをすることで少ないバグをより少なくしていくことを心がけましょう。

●ちなみに…

この変更を行うことによってベンチマークの結果が変わるかどうか、試してみました。HDBENCHのCPUの結果のみを切り貼りしたものです。

PCG-Z1R/P Windows2000 Defaultこれが、変更する前の数字です。(ACPIのみ利用)

PCG-Z1R/P Windows2000 Optimizedこれが、変更後の数字です。(ACPIのみ利用)

…ハッキリ言って誤差程度しか変わりませんでした(むしろ遅くなっているような…)。しかし、ベンチマーク以外動かしていない状態での計測結果は変わりませんが、実際にオーディオアプリケーションを利用した高負荷の状態では動作環境は変わってくるかもしれません。ていうか変わらないとチューンする意味無いし(^^;; プロジェクトウィンドウのスクロールの際などのグラフィック書き換えの負荷や、ハードディスクの読み込み速度などに影響を与えることと思います。多分。

ちなみに上記の状態でCUBASE SXで16bit 44.1kHz(いわゆるCD音質)のステレオ2チャンネルのオーディオデータを再生しながらRevervAプラグインを立ち上げていって音切れが発生しない限界のリバーブの本数を確かめる、というよくやる方法でベンチマークをしたところ、オーディオインターフェースはMOTUの896を使用した場合に、サンプルバッファ256KBで33本が限界でした。34本目でプチプチ言い出しました。サンプルバッファを1024KBまで上げるとリバーブ38本目が限界、39本目をONにした途端、動作が怪しくなりました。しかしCPU使用率が100%近く行ってもフリーズしないところにIntelチップの安定性をかいま見た気がします。マウスも凍りません。ただ動作はものすごく遅くなります。こういった極限状態だとあと意外にFireWireオーディオインターフェースって負荷軽いのね…。僕のVAIO Z1R/PはCPUが1.5GHzなのですが、今日発表になった新型のZ1RVだとCPUが1.6GHzなので、きっと40本リバーブ立ち上げても動くことでしょう。こんだけ使えれば、ノートだけで最後まで作れちゃいますね。

トピックスの目次へ