皆様初めまして。「あざらし」と申します。 晴眼ですが、主にサウンドや音楽関係のソフトウェアを制作しております。 本MLにて、いつも皆様のご意見を貴重な情報として拝読させて頂いております。 さて、「別々のアプリから同時にWindowsの音声出力を使用するには?」 という事が時々話題になっておりますね。 Windows98からはWDMという新しい ドライバ形式が採用され、WDM形式で配布されている多くのドライバが同時使用 可能なタイプになっています。 互いに関連性の無い別々の音を同時に鳴らす事 ができるドライバの事を、一般的に「マルチクライアント対応ドライバ」と呼びます。 実は「WDMになったからマルチクライアントに対応が可能になった」という訳 ではなく、マイクロソフトがドライバ開発者向けに配布しているDDKという開発 キットの中のサンプルプログラムが、WDM版のみマルチクライアント対応で書かれ ており、古い方の非WDM形式(よく「VXDドライバ」と呼ばれますが、正しくあり ません。旧形式のドライバを示す正式な名前はとくには無いと思います)のほう のサンプルプログラムがマルチクライアントに対応していない状態で配布されて いる・・・というのが理由だと思います。 ドライバ開発元の多くは、このサンプルプログラムを書き換えてそのまま自社 のドライバソフトウェアとして配布していますので、マイクロソフトのサンプル プログラムの仕様がそのまま各社の製品用ドライバの仕様になってしまっている という訳です。 旧式の非WDM形式のドライバの仕様にも、ちゃんとマルチクライアントに対応 するための仕組みが組み込まれていますので、非WDM形式でマルチクライアント 対応ドライバを作る事が可能です。WDMは動作の面で不安点な部分がありますので、 個人的にはより安定して動作する非WDMの方が好みなのですが、非WDM形式のマルチ クライアントドライバがほとんど存在していないというのは残念な事です。 まぁユーザーから見れば、便利に使えるのであれば別にそんな事どっちでも良 い事なんですけど・・・ で、ここからが本題なんですが、私は自分の作業環境を改善するために、あらゆ るタイプのドライバをマルチクライアント化してしまう拡張ドライバを自作し、 自分自身で時々使っております。 この拡張ドライバ、現状では人様に使って頂く事は一切考慮しておりませんので、 多分このままでは使いにくかったり、異なった環境ではトラブルを起こしたりする 可能性が高いと思うのですが、もし皆様方の中に 「そのドライバが欲しい!」 「それがあれば、私のPC利用環境を改善できる!」 といったご意見が多いようでしたら、もっときちんと作り直してフリーウェアとし て公開しようとも考えております。 サウンドチップの種類などには特に依存しておりませんので、今動作している 本来のドライバ側が、シングルクライアントでしっかり動いてさえいれば、 そこにかぶせる形ですぐに利用できると思います。 難点は、ソフトウェアで音声のミキシングを行いますので、同時再生中は多少の CPU時間を消費する(と言っても、Celeron 400MHz 程の速度があれば、2つ 3つの音をミキシングしても2〜3%の消費だと思いますので、ほとんど影響は 無いと思います。マイクロソフトのWDMのサンプルよりは軽いでしょう)という点と、 もう一つ、本来のドライバ、あるいはサウンドチップの仕様によっては、発音が 遅れてしまう・・・という点です。 遅れは、最悪の場合で200ミリ秒(0.2秒)くらいになると思います。 本来のドライバ側がDirectSoundにNativeに対応していれば、遅れは30ミリ秒 (0.03秒)くらいにまで少なくできると思います。 (ほとんどのメジャーな サウンドチップは、DirectSoundにNative対応していると思います) 皆さんがお使いになられている、どの読み上げアプリと一緒に利用しても問題を 起こさずに使えるように、このマルチクライアント化ドライバをきちんと書き直す のには、恐らく多少の時間と労力が必要ですので、 「今、やるべきか、やらぬべきか?」 という判断を、皆様の反応で決めさせて頂こうと思い、本MLに投稿させて頂きま した。 ご意見頂ければ光栄です。 これからもよろしくお願いいたします。 中山裕基(あざらし) WinGroove@wg7.com http://www.wg7.com
Received: from mx ([210.170.66.253]) by sl.sakura.ne.jp (8.9.2/[SHINGUJI/SAKURA-990115]) with SMTP id XAA24952 for <windows@sl.sakura.ne.jp>; Tue, 19 Sep 2000 23:28:05 +0900 (JST) Received: from localhost (unverified [127.0.0.1]) by 127.0.0.1 (CCWXC SMTPRS 0.83) with SMTP id <B0000012957@127.0.0.1>; Tue, 19 Sep 2000 23:27:48 +0900 Message-ID: <B0000012957@127.0.0.1> Received: from localhost (localhost [127.0.0.1]) by localhost (SMTPgateway) with SMTP id <00-09-19.0000000365>; Tue, 19 Sep 2000 23:27:48 +0900 (JST) Date: Tue, 19 Sep 2000 23:29:12 +0900 From: "Hiroki Nakayama" <gold@wg7.com> Subject: [windows:1641] Windowsの複数音声の同時出力について To: "windows@sl.sakura.ne.jp" <windows@sl.sakura.ne.jp> MIME-Version: 1.0 Content-Type: text/plain; charset="ISO-2022-JP" Content-Transfer-Encoding: 7bit Sender: owner-windows@sl.sakura.ne.jp X-ML-Sequence: 1641 X-ML-Name: windows Precedence: bulk Reply-To: windows@sl.sakura.ne.jp |