• 締切済み

DirectSoundの競合?

DirectSoundを使ってストリーミングで音を出すアプリを作成しています。 単独で動いている場合は問題ないのですが、他に音を出すアプリを動かすと、 動作がおかしくなる(音がプチプチ途切れる)場合があります。 場合がある、と言ってもランダムという訳ではなく、 動作がおかしくなるアプリとそうでないアプリがある、という事です。 また、この現象が起きている時は、 こちらの関数が呼ばれるタイミングや引数のバッファポインタの値が明らかに正常時とは異なっています。 他のアプリがDirectSoundを使うと競合で不具合が発生するのかと思い、Microsoftのページを見ましたが、 競合についての解説は見当たりませんでした。 競合だとしても、他のアプリの音が正常なのが謎ですが... 以上、不具合の解消に向けて皆様のお知恵を拝借致したく、質問させて頂きます。 よろしくお願い致します。

みんなの回答

回答No.1

1.自作ソフトの設計が悪い 2.サウンドデバイスのCPU依存度が非常に高いものを使っている 3.処理の負荷が高い ではなかろうかと・・・・ 2,3をクリアーしているのなら、自作ソフト上の イベント処理関係を疑ってください。<つまり割り込み処理をうまく対処しているのか?ということ

archer_archer
質問者

補足

早速のご回答、ありがとうございます。 アプリのCPU負荷について書いておくべきでした。 5~10%と、非常に軽いです。 サウンドデバイスはSound○○○を使用しており(ここに出力)、 これのWavetableSynthが起動されると、プチプチになってしまいます。 その時のCPU負荷が計15~20%です。 MicrosoftのSynthなら起動されても問題は発生ないんですが... Aruku様のご回答から察すると、 DirectSound自体には「競合」という問題はないということですね? イベント処理に関しても、質問にも書いたように、呼ばれた時点で既に異常事態です。 困りました...

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • DirectSoundのノイズについて

    いろいろ調べたりやってみたりしたのですがうまくいかないので質問させてください。 DirectSoundを使って音を鳴らすとき、再生されきる前に意図的にStop()を使って止めたりSetVolumeで完全に無音にさせたり、ないしは途中で周波数を変えたりすると、「ブチ」っというノイズが鳴ってしまいます。(ならないときもあるけどほとんどの場合でなります) 調べた限り原因はおそらくはプライマリバッファに先行して書き込まれたゴミが残っているためだとは思うのですが、解決策がまったくわかりません。 プライマリバッファに0を書き込もうとしてもサイズが調べられないのでLock出来ないし、仮に出来たとしても、複数音再生されているときにひとつだけ停止させた時、他の再生中の音も途切れてしまうような気がしてなりません。 どなたか解決策をご存知でしょうか? ご存知でしたらよろしくおねがいします。

  • DirectSoundでストリーム再生中に再生時間を効率よく取得するために…

    臨時に仕事を頼まれたので泣く泣くそれに悶えながら、時間を見つけてはしらべ、ようやくDirectSoundで2~4MB程度を上限とするストリーム再生をしつつ、その「波形データ全体における」再生位置(時間)を30FPS程度を目安に取得してms単位あるいはサンプル数単位で表示することができるようになりましたが… WindowsAPIのwaveOut関連を使ったマルチバッファと比べ、waveOutResetの時の一瞬の音の途切れ自体は循環バッファのため自動的になくせるみたいだし、全部読みこんでしまえば自動的に再生位置取得するだけで再生時間が得られるようです。 …しかし こっちもこっちでこういう事(ストリーミング)やろうとした時に微妙に仕様が引っかかる部分があるようで…これだけのことなのになんでこんなにステップ数が多いの? っていう感じになってしまっています。 DirectSoundは手をつけ始めて数日程度なので、まだまだ改良の余地がたくさんあっても不思議ではない、あるいは勘違いがあると面倒な事態が蓄積してしまうと思うので、質問させてください。 (一つでも問題はないので、アドバイスいただけましたら幸いです。) 1.DSBUFFERDESC構造体で指定したバッファの長さは、セカンダリバッファを作ってしまってからは変更できませんか? (これが変更できるとファイル単位のループ再生を考えた場合確実に必要物が減りそうです) 2.そもそもバッファの再生中に、現在の再生位置は影響を受けないような部分を書き換えても問題はない、という認識は完全に正しいですか? 3.Lock,UnLockを繰り返すと、以前のメモリは暗黙(?)に解放されたうえで確保されるのでしょうか?(見た感じはそれっぽく見えるのですが、小さな残骸も何も残らないと考えていいでしょうか?) 4.また、ファイルをfopen_sなどであらかじめ開きっぱなしにしておき、その際にfreadなどで読み込むだけ、という考え方で問題はないでしょうか? 5.これが本題ですが 文字数制限と「複数に分割して投稿した場合は削除の対象」ルールのため別途UPしたのでリンクさせてください。 http://www.geocities.jp/shank_long7_02/DirectSound/a.html 6.5について、判定以前にスレッドの仕組みとかそもそもスレッドにするべきかどうかとかいったあたりをCPUやメモリ、あるいは保守性の点で改良したりすることは可能でしょうか?

  • マカフィー同士の競合について

    フェイスブックをしていて、アプリのロードができなくなったので、すぐ下にあった説明文から、 アドビのフラッシュプレイヤーのダウンロードサイトに移動し、ダウンロードしました。 気になることがあるのは、そのダウンロードの際に、右端にチェックボックスがあって、 「McAfee Security Scan Plusも含む」となっていたんです。 気がつかなくて、インストールしている途中に気がつきました。 もうすでにインストールしてしまっているのですが、私のPCにはすでに 「マカフィーセキュリティーセンター」が入っています。 すでに入れていた「マカフィーセキュリティーセンター」と 「McAfee Security Scan Plus」は競合しないのでしょうか? 今のところ、動作に不具合はないように感じておりますが、 最近、セキュリティソフトの競合で困ったので、非常に不安です。 また、アドビ社のフラッシュプレイヤーのインストール中に、「IEと競合する」と、 表示が出ました。これも非常に不安です。IEを使用したいのですがどうしたらよいでしょうか。 わかる方教えてください。よろしくお願いします。

  • ソフトの競合について

    セキュリティやDVDソフトでソフトの競合で何かしらの不具合が起こる場合がありますが、 他のソフト(例えばPDF作成ソフトや写真編集ソフト)でも同じことが起こるのでしょうか? またインストールする場所を変えることで回避できるのでしょうか? 詳しいかたがいらっしゃったら教えてください。 よろしくお願いします。

  • アプリサイトの音が聞こえない

    F904iですが、ラジオNIKKEIのサイトの音が聞こえません。 動作はきちんと行っているようで、ストリーミング中と表示されています。 アプリ設定の音量も、アプリ内での音量も上げています。 何か理由は考えられますでしょうか?

  • windowsのリアルタイム処理について

    下記の不具合があり困っております。 画像入力ボードを開発し、数msごとに数kbの画像をwindowsのドライバへ取得割り込みをかけております。ドライバはそのデータを取り込みリングバッファに貯めていきます。アプリケーションはそのリングバッファのデータをリングバッファがあふれないように定期的に取り込み、画像認識しながら画面に表示します。このときパソコンに他のアプリが走ったときに画像が乱れます。このときCPU負荷率は80%程度になっておりリングバッファから抜いたデータが異常になっております。ドライバがPCIの割り込みに応答して画像データを取得しリングバッファを更新するのがまずいように思います。 アプリケーションがドライバから受け取ったデータを検証すると異常なデータが入っていることからドライバの動作がおかしいことまではわかりました。 そもそもリアルタイム処理に無理があるのでしょうか? 何か良い対策はないでしょうか?もちろんCPU負荷率が小さいときは正常に稼働しています。

  • マウスポインタが勝手に移動する

    新しいPCを購入してから、マウスポインタが勝手に移動してしまいます。 移動先はランダムではなく、Windowsのスタートボタンや各ウィンドウの閉じるボタンなどに移動してしまいます。 他の質問を参照したところ、マウスの不具合の指摘がされていましたが、以前のPCでも使っていたものと同じもので、数週間前までは正常に動作していましたので、マウス以外の問題ではないかと思っています。 またコントロールパネルのマウスの設定画面より「ポインタを自動的に規定のボタン上に移動する」がチェックされていないことも確認しています。 環境はWindows XP Pro (SP2)で、マウスはLogitechのものです。

  • オーディオディバイスドライバー競合について

    オーディオディバイスドライバー競合について教えて下さい。 昨日、ASRockG41MH/USB3のマザーボードを購入し、Windows XP をインストールしたところ、ディバイスマネージャーのその他のディバイスの 項目Audio Device on High Definition Audio Busに競合のマークがついていて どのようにしても回避できません、競合していますが音は正常に出ます。 以前にもMSIのマザーボードに添付しているドライバーを使って同じような 症状になり、OSをインストール後KB888111なるパッチをインストールする ことにより競合が回避されたということがありました。 今回もフォーマットしOSをクリーンインストール後、何もインストールせずに SP1の状態でパッチをあててから、マザーボードに添付しているドライバー を入れるなどいろいろ試してみましたがうまくいきません、パッチは確か KB888111を解答してできるWDM_R236だったように記憶しています。 どなたか競合回避の方法をご存じの方がいらっしゃいましたらご教授宜しく お願いいたします。 PCの構成 マザーボード G41MH/USB R2.0 VGA      MSI RS 450 メモリー    4ギガ(2X2) Transend製 新品 HDD      ST3500418AS DVD      LG製

  • Windows7の互換性に関する質問です。

    Windows7の互換性に関する質問です。 XPで問題なく作動するアプリケーションをWindows7にインストールした場合、 1、問題なく作動する。 2、正常に作動しない場合もある ということだと理解しています。 そこで質問ですが、2、の場合、ただそのアプリが正常に作動しないだけ、という問題で終わるのでしょうか? それとも、こうした正常に作動しないアプリケーションをインストールして、本体のWindows7パソコン自身の調子(OSに悪い影響を与える?)が悪くなるとか、他のアプリや動作も、そうした古いアプリケーションをいれたばっかりに、不具合がおきるというリスクもあるのでしょうか? もし、後者なら、ちょっとインストールはやめようと思いますが、前者なら、つまり、インストールしたアプリが正常に動作しないだけ、というだけのリスクなら、とりあえずいろいろ入れて、試しに使ってみようかと思っています。 できればアドバイスください。(インストールは止めたほうがいい?か、入れて駄目ならアンインストールすればいいだけ、と簡単に考えていいか?ということですが)よろしくおねがいします。

  • ハード?ソフト?

     先日,PowerBookG4を落としてしまいました。その後以上は見られなかったものですが,何か異音が聞こえるようになりました。(コンピュータが作動している音とは違うような・・・・)でも,正常につかえているので気にしませんでした。しかし,落としてから4日後の今日,どのアプリを立ち上げてもポインタがウェイト状態になったままで何もできなくなってしまいました。何度再起動しても同じです。ワードウェアテストをしても異常なしとの判定。もう一度起動してみると正常に戻りました。いつかまた不具合が生じるでしょうか。それとも,テストで異常がなければ安心してつかえるのでしょうか

    • 締切済み
    • Mac