Ticket #28821

DTXMania本体をDTXVとして使えるようにする

오픈 날짜: 2012-06-22 00:48 마지막 업데이트: 2014-07-07 00:26

Reporter:
소유자:
Status:
Closed
Component:
MileStone:
Priority:
5 - Medium
Severity:
5 - Medium
Resolution:
Fixed
File:
None
Vote
Score: 0
No votes
0.0% (0/0)
0.0% (0/0)

Details

DTXVでのBGMと譜面の同期具合は、DTXMania本体のそれとは微妙に異なる。

DTXMania本体をDTXVの代わりに使えるようにすることで、同期具合を統一し、今後の保守の容易さを確保する。

Ticket History (3/79 Histories)

2012-06-22 00:48 Updated by: yyagi
  • New Ticket "DTXMania本体をDTXVとして使えるようにする" created
2014-02-04 02:32 Updated by: yyagi
  • 소유자 Update from (None) to yyagi
댓글 올리기

rev677の時点で、任意の小節番号からの再生はできているが、どうも動画が譜面やBGMと同期しない。

「一番最初に、最初から再生したとき」と、「それ以外(2回目以降、最初から再生 or 動画の途中に当たる小節から再生)」とで、 同じフレーム番号を CAvi.GetFrame( frameNoFromTime ) に入力したときの出力画像が変わってしまう。

私の環境では、前者に比べて、後者は5フレーム分ほど前の画像が得られている。

このため、 5/30(s) = 0.17秒分、動画表示が遅くついてくるように見える。

AVIUtlなどで当該動画のフレームを確認する限り、どうも後者の表示が正しい模様。これは困った・・・

任意のタイミングで初回再生を再現するうまい手立てがないか、検討中。

2014-02-06 02:12 Updated by: yyagi
댓글 올리기

「一番最初に、最初から再生したとき」と、「それ以外(2回目以降、最初から再生 or 動画の途中に当たる小節から再生)」とで、 同じフレーム番号を CAvi.GetFrame( frameNoFromTime ) に入力したときの出力画像が変わってしまう。

AviUtlを使ってもこの現象が再現できた。手順は以下の通り。

  1. AviUtlを開く
  2. AVIファイルを開く
  3. 頭から順にコマを進めていって、お目当てのフレームを探す。決してフレームを戻さず、フレームを進めるだけの操作で探すこと。私の場合、お目当てのフレームは497フレーム目で発生した。
  4. そこからフレームを少し進めたり戻したりする。キーフレームを超えるような感じで操作するといいかも。
  5. もう一度、お目当てのフレームを探す。私の場合、今度は503フレーム目で発生した。

この場合、差が6フレームある。30fpsの動画だと、0.25sの表示遅延ということになる。これではDTXVの代わりとしては使えない。

一度これが発生すると、AviUtl上でリワインド(最初のフレームに戻して、そこから進め直す)しても、ズレは解消しない。ファイルを開き直さないと、この現象は直らない。(そして、ファイルを開き直しても、一度上記4.のようなシークをすると、現象再発する)

このため、シーク操作が発生するたびに、CAviのVfW関連リソースを破棄・再構築することで対応できないかトライしてみる予定。

なおこの現象は、私の環境では Win8.1(x64)で発生して、XP(x86) では発生せず。Win7では未確認。性能確保のため、OS別にこの回避処理を入れるかどうかを分けた方がよいかもしれない。

2014-02-06 10:19 Updated by: from
댓글 올리기

ちょいと新旧のデータを交えて実験してみましたが、うちでは特にフレーム遅れは発生しませんでした(Win8.1 x64)。

というか、動画自体表示されなかったんですけどね(汗

# MS・ffdshowとも、aviの読み込みには成功してエラーも何も出てないのに。

可能なら、その動画を頂けませんか?

2014-02-06 21:40 Updated by: yyagi
댓글 올리기

あれま。そちらでは再現しませんか。となると、インストールしているcodecの問題でしょうかね。

私が確認に使っているのは、tp://yyagi.com/ool.zip の ool_wmv9_fsavi2.avi です。

他のcodecも試してみようかと思って、試しにDivXにしようとしたら、開始フレームがめちゃくちゃになるんですよ。 XP上で作業した方がいいかなぁ。

Win7とかでは、追々確認予定です。

2014-02-07 00:15 Updated by: from
댓글 올리기

FROMです。 ファイルのUPをありがとうございました。

さっそく症状を再現すべく、AVIUtlv100にds_input.auiプラグインを入れて497フレーム目を見つけ、そのあとにフレームを数百ほど前後に動かしたのち、再び497フレームに戻ってみると、……最初と全く同じフレームでした。(ちょうどスティックが振り下ろされるシーンなので、1フレームでもずれればすぐ分かります。)

DShowのグラフは、「AVI - AVI Splitter - WMVideo Decoder DMO - Video Renderer」でした。

一応、SST用に、ffdshow 等は入ってますし、ffdshow が優先になるようTweakerでも設定してあります(が、今回は選択されませんでした)。

……環境が違うんでしょうかね?

2014-02-07 01:05 Updated by: yyagi
댓글 올리기

その後、Win7(x64)環境でも問題が出ないことが分かりました。

また、更にFROMさん環境でも問題ないことが分かりました。

いよいよcodecかなと思いまして、「いや、でも、ちゃんと設定していたよなぁ」などと思いつつffdshowのVfW設定を開いたところ。

基本、全部libavcodecにちゃんと直しているのに、なぜかぽっかりとWMV関連だけwmv9になってるんでやんの。

これらをlibavcodecに設定し直したところ、煮ても焼いてもばっちり497フレーム目が不動のクラッシュと相成りました。

・・・お騒がせしました。すみません。おかげさまで、2週間もがきまくってた問題が解決しました。調査用にあれこれデバッグコードを突っ込んでましたが(動画を全フレームbmp保存して比較するとか)、全部削除してあとでコミットしときます。

今週末には、DTXC側も修正して、結合動作確認に移れそうです。

自分用 残TODO:

  • BGA対応
  • 長いファイル名?なのかフルパス?なのかでファイル名を渡すと、内部メッセージが欠けて再生開始できない問題の修正
  • DTXC側で、(DTXVとして使うDTXManiaを)呼び出せるようにする(キックするファイル名を変える程度ですが)
  • DTXC側で、(DTXVとして使うDTXManiaの)WASAPI/ASIO選択ができるようにする
2014-02-09 13:14 Updated by: yyagi
댓글 올리기

というわけで、先のTODOはすべて解決でき、なんとかbeta版をつくるところまでたどり着けました。すみませんが、動作確認をお願いします。

tp://yyagi.com/DTXC_28821_20140209.zip

  • viewerの変更は、オプションのViewerタブで行います。(設定の変更方法は、見ればわかると思います)
  • 開発中、私の環境では、再生ボタンを連打するとDTXMania側でエラーが出ることがありました。いろいろ対策した結果、今はこのエラーが出ていませんが、もし皆さんの環境でエラーが出たら教えてください。なお、エラーが出たら、viewer(DTXMania)をいったん閉じていただいた方がいいかなと思います。
  • viewerとしてのDTXManiaの設定情報は、DTXMania終了時に消えます。なので、たとえば、スクロール速度の変更などは、DTXManiaを開いているときのみ設定維持されます。設定を覚えさせたい場合は、DTXManiaを個別に起動して、CONFIGURATIONで設定し直してください。(Viewer用のスクロール速度を独立保持できたほうがいいですかね)
2014-02-10 01:20 Updated by: yyagi
댓글 올리기

DTXC側で指定した再生速度が、DTXMania側に正しく適用されない問題を修正しました。

tp://yyagi.com/DTXC_28821_20140210.zip

すみませんが、こちらで動作確認いただけますよう、お願いいたします。

2014-02-12 00:02 Updated by: koh-hey
댓글 올리기

確認しました、

再生速度が適用されるようになりましたが、データによっては途中で音が出なくなることがあるようでした。
データをメールで送りますので、ご確認いただければと思います。

あと、しばらくしないと再生ボタンを押しても再生されないの件は、停止ボタンを押して再生ボタンを押しなおした場合はすぐ再生されますが、Viwerのウィンドウを×で閉じた場合、しばらくしないと再生ボタンを押しても再生されないようでした。

2014-02-13 01:38 Updated by: yyagi
댓글 올리기

koh-heyさん

メールありがとうございました。確認しましたが、私の環境では、音が出なくなることはなく、またViewerを×で閉じてすぐに再生ボタンを押しても、すぐにDTXManiaが起動して再生します。(WASAPIでしか確認していませんが・・・)

まだ自分のメイン環境(Win8.1 x64)でしか試していないので、後日他の環境(XP x86, 7 x64)でも試してみます。

2014-02-13 07:07 Updated by: koh-hey
댓글 올리기

ご確認ありがとうございます。説明不足があったんですが、途中で音が出なくなるのは、再生速度を0.5にして再生した場合になりました。速度x1の場合は、問題なかったです。

2014-02-13 07:38 Updated by: sf298yen
댓글 올리기

⇒DTXC_28821_20140210.zip

試作お疲れさまです!

雪が一度に降ると大変ですね、食事の為に停車しただけなのに発掘が必要になるとか、どんだけ。

本題。

遅くなりましたが試させていただきました。

そこまで深くテストしておらず、また今回XPで1時間程度しか試していないことから信頼性に自信がなかったので、チケットは切ってません。

⇒他のOSや環境では再現しないものでしたらすみません。

1)開く
2)再生する
3)他のファイルを開く
⇒この時、何も変更せずに再生を押すと1で開いた曲が再生されます。

空打ち?を設定していると・・かな?0小節目にチップが表示されるようです。
(一列すべて埋まってたので面白いことになってます)

以下:ポーズすること自体おかしいのですが、一応。

1)再生する
2)DTXMでポーズ(SHIFT+F1)をする '3)を一度やっていると1回目は無視されるので2回。
3)先頭から再生ボタンを押す

2と3を繰り返していると曲タイトルのまま(もしくは演奏画面に移行したまま)進行しない。
⇒DTXMを閉じれば問題なし。

1)再生する
2)DTXMでポーズ(SHIFT+F1)をする
3)現在の位置から再生ボタンを押す
4)DTXMでポーズ(SHIFT+F1)をする
⇒例外発生
SlimDX.DirectSound.DirectSoundException: E_INVALIDARG: An invalid parameter was passed to the returning function(-2147024809)

1)再生する
2)DTXMでポーズ(SHIFT+F1)をする
3)現在の位置からBGMのみ再生ボタンを押す
⇒例外発生
System.Collections.Generic.KeyNotFoundException: 指定されたキーはディレクトリ内に存在しませんでした。
 場所 System.ThrowHelper.ThrowKeyNotFoundException()

2014-02-13 08:03 Updated by: sf298yen
댓글 올리기

koh-heyさん

>説明不足があったんですが、途中で音が出なくなるのは、再生速度を0.5にして再生した場合になりました。

私の環境でも再現出来るか試しているのですが、この「途中で音が出なくなる」のはどのタイミングでなるかわかりますでしょうか?

とりあえず5分ほど放置(DirectSound / ASIO / XP)してみたのですが再現せず...


演奏が終了してもDTXMの再生、というか、Timeがどんどん進んでいくので・・・(超長時間)放置したら何かしらバグ出るかな?(w

2014-02-13 19:53 Updated by: koh-hey
댓글 올리기

10秒ないくらいかな?で症状でました。

5分もかかりません、そのdtxデータ自体、1分ないくらいです。

さきほど、sf298yenさんのメアドに送りましたので、見ていただければと思います。

私の環境、 Win7 64bitです。

2014-02-13 20:28 Updated by: sf298yen
댓글 올리기

koh-hey への返信

さきほど、sf298yenさんのメアドに送りましたので、見ていただければと思います。 私の環境、 Win7 64bitです。

ありがとうございます、承知しました。

今から夜勤の為、後ほど確認させていただきます(^◇^)

2014-02-14 09:19 Updated by: sf298yen
댓글 올리기

⇒XPでのテスト追加

上記の報告ですが、曲データによって発生するものとそうでないものがあるようです。

□テストデータ
A:以前HDテストで使った曲のVGA版
B:以前やぎ。さんに送った曲「SELF PRODUCER」
C:今回koh-heyさんから預かった曲

かっこ( )は現象が発生したテストデータ

1:開く→再生→他の曲を開いて再生で最初の曲が再生される ⇒ (A・B・C)

2:空打ちチップらしいのが0小節目に(曲によっては1小節目)発生する手順は今は不明 ⇒ (B・C)

3:DTXMでポーズをかけたままDTXCで再生を押すとポーズが有効のままの場合がある ⇒ (A・B・C)

3.5:DTXMでポーズをかけて、再生

 ⇒譜面はポーズされたままBGMが再生される場合がある(A・B・C)

 ⇒ポーズ解除するとBGMが最初から再生される場合がある(B(MASTER譜面))

4:再生→DTXMでポーズをかける→再生→(解除→ポーズ→解除→ポーズ→・・・ )例外が発生する場合がある ⇒ (A・B・C)

⇒SlimDX.DirectSound.DirectSoundException: E_INVALIDARG: An invalid parameter was passed to the returning function(-2147024809)

5:再生→BGMのみを再生(ポーズしなくても例外が発生するようです。データが悪いのかも・・・)。 ⇒ (B)

 ⇒System.Collections.Generic.KeyNotFoundException: 指定されたキーはディレクトリ内に存在しませんでした。

以上、以前の報告の内容を変更します。

ここまでではkoh-heyさんの報告の症状は再現出来ていません...

今からWin7(64bit)で同じ内容をやってみます。

力尽きたら報告は後日にさせてください。  ネムイノ

2014-02-14 10:00 Updated by: sf298yen
댓글 올리기

⇒Win7で試しました。

番号は上記報告と同じテストです。

1:開く→再生→そのまま他のファイルを開く

 → 例外エラー(System.Exception サウンドデバイスの初期化に失敗) ' DirectSound / ASIOでは発生せず。

2:XPと同じ

3:XPと同じ

3.5:ポーズされたままBGMだけ進行。

 ⇒ポーズを解除するとXP(DirectSound/ASIO)では正しいBGM位置で再生される(かエラー落ち)

 ⇒Win7+WASAPIではBGMは問答無用で進んで行く。ポーズ解除してもそのまま(BGMだけ先行してる)。

4:ポーズ→現在の位置から再生で発生(DirectSound時)。(最初から・BGMのみでは発生しない。WASAPI/ASIOでも発生しない)

5:Win7では発生し(てい)ない。

すみませんが、私の環境では7でも途中から音が出なくなる、という症状は今のところ発生していません。

報告しておいてなんですが、あまり役に立たないような内容で重ねてすみません。

とりあえず、このパターンのテストはここまでにして、明日以降は別の観点からテストさせていただこうかと思います。

寝ます . z Z

2014-02-17 00:35 Updated by: yyagi
댓글 올리기

遅くなってすみません。ここしばらく仕事が佳境だったりします。

koh-heyさん

補足説明ありがとうございました。ですがまだ私のところでは現象再現できず・・・もう少々お待ちを。頑張って再現させます。(ログの強化版をkoh-heyさんに送って試してもらうという手もあるのですが、正直いって「音が出なくなる」現象はこのやり方ではひっかけづらいので、何とか私のところで再現させるしかないですね)

sf298yenさん

多岐にわたる動作確認、ありがとうございました。大変助かります。

PAUSE中の動作はこちらで想定していなかったのでまあ色々あるでしょう&修正するのも比較的容易だと思います。しかし・・・

ちょっと問題なのが、DTXManiaをviewerとして起動した後で、DTXC側でサウンド周りの操作をすると、音が出なくなったり、エラーが出たりすることです。 sf298yenさんがお試しになった「別の曲を読みだす」は、内部ではサウンドの再初期化をしているのですが、DTXMania側でWASAPIやASIOなどでサウンドデバイスを占有しちゃっていると、次にDTXC側でファイルを開き直した時に、サウンドデバイスを取得できずにエラー終了してしまいます。

従来のような「DTXCとDTXVがどちらもDirectSoundを使う」やり方だとこういう現象は出ないのですが、今回は(サウンドデバイスを占有することで出力ラグを小さくしている)WASAPIやASIOを使いたいわけて、この問題は避けられそうにないです。

(注: XPのASIOは、厳密にはデバイスを占有しているわけではないので、この辺はXPとVista以降で動作に違いが出ます。)

正直なところ、これに対する解決策をまだ見いだせていません。まずは試しに「FDK.DLLでのサウンド管理クラスをシングルトン化して、DLLがリソースを占有しつつ、DTXCとDTXManiaが同じDLLの同じサウンド管理クラスの実体にアクセスするようにする」ことで解決できないかと思いましたが、試してみたところ、後からFDK.DLLをリンクする側からは前と同じく「サウンドデバイスが占有されている」ように見えてしまいます。

んー、単に私がクラス設計でやらかしてるだけなのか、それともWASAPI/ASIOだとどーしようもないのか。もう少し調べてみますが、もしどうしようもないのなら、最悪DTXCのプレビュー音をDTXMania側で鳴らすようなトリッキーなことを考えないとダメかもです。

2014-02-18 00:43 Updated by: yyagi
댓글 올리기

ちゃんとシングルトン動作になってなかったようです。

ShareMemoryを使って解決できないか、考えてみます。

2014-02-18 22:47 Updated by: koh-hey
댓글 올리기

すみません、ちょっと説明が足りなかったのですが、音が出なくなるのではなく、BGMが出なくなる、でした。ドラムの音は出ています。なおViewerのウィンドウにはWASAPI(15ms)ってなっていました。再生速度をx0.7以下にすると、症状が出ます。

2014-02-18 23:25 Updated by: yyagi
댓글 올리기

シングルトン動作云々以前に、複数のアプリから同じDLLを呼び出して、DLL部分は同じメモリ空間で動作させる・・・というのはかなり無茶な改造のような気がしてきました。少なくとも発声のタイミングは従来版から変わってしまうでしょう。

・・・というわけで、「DTXCのプレビュー音をDTXMania側で鳴らすようなトリッキーなこと」が割と真面目に現実解なんじゃないかという気がしてきました。k路絵をちょっと試してみます。

koh-heyさん: 追加説明ありがとうございます。試してみます。

2014-04-02 00:17 Updated by: yyagi
댓글 올리기

tp://yyagi.com/DTXC_28821_20140401.zip

DTXManiaが起動している場合は、DTXCでのプレビュー再生をDTXCで行わず、DTXMania側で再生させるようにしました。

これでとりあえず、DTXMania起動中にDTXC側で一切音が出なくなる問題は解決したはずです。 お試しくださいませ。

あとは、koh-heyさんやsf298yenさんからご指摘いただいた問題を調べてちびちび直していきます。

2014-04-03 00:35 Updated by: yyagi
댓글 올리기

tp://yyagi.com/DTXC_28821_20140402.zip

sf298yenさんからコメントいただいた、空打ちチップの話と、PAUSE周りの話に対応しました。

一応Win7+WASAPIで試した限りでは、問題解消していると思います。

DirectSoundだと、PAUSE状態で途中再生させると、なぜか妙にBGMの位置がずれます・・・。この辺は明日調べてみます。

2014-04-03 01:41 Updated by: koh-hey
댓글 올리기

動作確認をしました。私の環境で、以下の不具合?発生しました。

①再生でViwerを開いた後、チップのプレビューがループします。どうも、拡張子.xaはループするようなことはなく、スパン!と鳴りますが拡張子.oggのはスパン!スパン!・・・とループします。

②Viwerを開いた後にViwerを×で閉じると、プレビューの音が出なくなりました。その状態からViwerを開くと、プレビュー音は出るようになりました。
0401.zipと0402.zip両方で確認しました。
で、もしやと思い、以前、再生速度x0.7以下で途中でBGMが出なくなると言ったデータを、チップを全部.xaにしてやったところ、途中で音が出なくなる症状がなくりました。

2014-04-03 02:00 Updated by: yyagi
댓글 올리기

koh-heyさん

動作確認いただき、ありがとうございます。

  • ループの件、どうもDirectSoundだとそうなるようです。すみませんが、まずはWASAPIかASIOでお使いくださいませ。DirectSound周りは、明日以降で調査確認します。
  • プレビューが出なくなる件、修正しました。すみませんが、0402を再ダウンロードしてお試しください。
2014-04-04 00:32 Updated by: yyagi
댓글 올리기

tp://yyagi.com/DTXC_28821_20140403.zip

DirectSound周りで発生していた問題を修正しました。

  • ループ再生問題を修正しました。
  • PAUSE状態で途中再生させるとBGMがずれる問題も修正しました。
2014-04-04 01:10 Updated by: koh-hey
댓글 올리기

動作確認をしました、プレビューのループ再生問題が直っていることを確認しました。一応、再生速度x0.7以下で途中でBGMが出なくなる件も確認しましたがこちらは同じ問題(途中でBGMが出なくなる)の症状が出ました。
あと、自分、WASAPIの設定になっていないのかな?一応、ツール → オプション → Viwer の設定はWASAPIになっていて、再生したときもViwerのウィンドウにWASAPI(15ms)というふうに表示されていますが、、ASIOの設定にすると音が出なくなります。(これは私の環境が対応していないんでしょうね。)

2014-04-04 01:19 Updated by: yyagi
댓글 올리기

koh-heyさん

ご確認いただきありがとうございました。x0.7の件、調べてみます。

DTXManiaのタイトルバーにWASAPIと出ているのであれば、DTXManiaがWASAPIでちゃんと動作していますよ。

ASIOで音が出ないとのことですが、その選択肢直下にあるデバイスの指定は正しく行われているのですよね。そして、そのデバイスのASIO設定は、asio capsなどで正しく行われているのですよね。念のため確認させていただければ。

2014-04-04 20:37 Updated by: koh-hey
댓글 올리기

ASIOのプルダウンメニューは ASIO4ALL v2 となっていて、プルダウンメニューの中はこれだけの状態です。

2014-04-05 20:41 Updated by: yyagi
댓글 올리기

ASIO4ALLをお使いなのですね。それでは、ASIO4ALL v2 Off-Line Settings で、ASIO使用時に使うサウンドデバイスの設定が正しいかをご確認ください。

※ 中国出張のため1週間ほど不在になります。すみません

2014-04-07 03:12 Updated by: sf298yen
댓글 올리기

テストに参加できてない私です。XPのOSサポートも終わるので、XPはテスト対象からはずすべきですか?

出張お疲れ様です。

・・・読むころには戻ってきてるかな?というわけでお疲れ様でした。お帰りなさい:)

2014-04-08 00:35 Updated by: yyagi
댓글 올리기

次のリリースバージョン(099)を、XPでも動く最後のバージョンにしたいですから、もうちょっとだけXPもテスト対象として継続かなと思っています。

DTXMania本体をDTXVとして使う機能がちゃんと作りこめたら、そのまま(内部的には似た機能である)トレーニング機能まで作ってしまって、そこまでできたら099として公開、と行きたいのですが、いつになりますことやら。今のペースでいくと、GW明けまでに公開できれば御の字といったところでしょうか。

2014-04-08 19:02 Updated by: sf298yen
댓글 올리기

フライング過ぎたか・・・恥///

次のバージョンまでの予定、承知しました。

2014-04-08 22:35 Updated by: yyagi
댓글 올리기

なんだかんだでソースコードをいじってます・・・

tp://yyagi.com/DTXC_28821_20140408.zip

koh-heyさんからご指摘いただいていた、x0.7以下でBGMが鳴らない問題について、私のところでも現象が再現でき、問題を修正できました。 これでお試しくださいませ。

2014-04-09 00:59 Updated by: koh-hey
댓글 올리기

おお、出張先からですか?現象のご確認ありがとうございます。(^-^) 

~0408.zipで試してみましたが、問題の症状が出てしまいました・・

・Viwerの設定を「DTXViwerを使う」にすると、x0.7にしても問題の症状はでなかったです。

・「DTXManiaGRを使う」にして問題の症状が出るのは、x0.7の時だけみたいです。x0.5とx0.6の場合は、BGMの音が途中でなくなる症状はでませんでした。

・開始から54秒~55秒くらいのところでBGMが出なくなります。プレビューを先頭から再生した場合も、途中(22小節あたりとか)から現在の位置から再生した場合も、症状はでました。

私の環境の問題かな?

2014-04-10 22:17 Updated by: yyagi
댓글 올리기

koh-heyさん

色々とヒント情報ありがとうございました。これでどうでしょうか。

tp://yyagi.com/DTXC_28821_20140410.zip

何故かはわかりませんが、BASSライブラリの再生指定フラグで、ループ再生のフラグを立てると、うまくいくようになりました・・・。 BASSのサンプルソースでもループ再生のフラグを常に立てているようですし、こういうものなのでしょうかね。

逆に、どこか全然関係ないところで、ループ再生すべきでない音がループ再生になっていたりしていたら、ごめんなさい。

2014-04-11 00:23 Updated by: koh-hey
댓글 올리기

ん~私の環境では症状は直っていませんでした・・。

しかし、、この症状、私の環境でしか出ないのかな?

もしどうにも私以外の環境で同じ症状で困っているとか、いうことがなければ、作者さんの意向次第で、原因を追究するか、無視して先に進んでいただくか、していただければと、思います。

私、自分の環境でこの症状に気づいたので報告をしただけであって、ぶっちゃけ、この症状で困ってはいないです。。

2014-04-15 02:01 Updated by: yyagi
댓글 올리기

tp://yyagi.com/DTXC_28821_20140414.zip

今度こそ直ったと思います。これでどうでしょう。(mp3のサイズ取得のやり方を見直しました。拡張子mp3のファイルのみ。)

これでだめなら、更に、config.ini に NoMP3Streaming という設定を追加しているので、これを1にして試してみてください。 これを使うと、mp3をそのままストリーミング再生するのではなく、オンメモリでwavにデコードしてから再生するようになります。 (実際に、私が過去に作ったデータで、これを1にしないと正常にシークできないデータが存在します。)

あと、xaファイルのシークに失敗していたはずです。これも修正しました。

2014-04-15 02:41 Updated by: koh-hey
댓글 올리기

うーん、、まだダメみたいです。

NoMP3Streamingを1もやってみましたが、

これはConfig.iniに自動で追記されなかったので、メモ帳でConfig.iniを開いて、自分でNoMP3Streaming=1を追記して試してみたのですが、同じ症状でダメみたいです。

DTXC終了時には空(0バイト)のConfig.iniが作成されたり、0バイトに上書きされたりしました。

2014-04-15 08:56 Updated by: yyagi
댓글 올리기

お試しいただきありがとうございました・・・ですが、すみません。同じファイルを再度ダウンロードいただいてお試しいただけませんでしょうか。

Config.iniにNoMP3Streamingの設定がないのはちょっと変なので。

また、DTXCはConfig.iniに関与しません。(代わりに、DTXCreatorSetting.config ファイルを使っています)

2014-04-18 00:31 Updated by: koh-hey
댓글 올리기

再度ダウンロードをして確認しました。

それで、ダウンロードしてそのままDTXCを実行しそこからViwerでDTXManiaを実行して終了すると、0バイトのConfig.iniができるようです。

DTXCからではなく、DTXManiaを直接、一度起動してやるとConfig.iniができて、そこにはNoMP3Streamingの設定もありました。それを1にして、再確認してみましたが、症状は直っていなかったです。。

2014-04-20 01:33 Updated by: yyagi
댓글 올리기

tp://yyagi.com/DTXC_28821_20140419.zip

これで直ったはずです。お試しくださいませ。

Config.iniが0byteになる問題と、件の曲がx0.7倍速で24小節目のBGMが消える問題の、両方を直しました。

NoMP3Streaming設定は不要になったため、廃止しました。

2014-04-21 20:26 Updated by: koh-hey
댓글 올리기

確認しました。直っていますね!今度は、バッチリです!

2014-04-22 01:02 Updated by: yyagi
댓글 올리기

koh-heyさん

ご確認いただきありがとうございました。直ってよかったです。(これが直らないと、将来トレーニングに使えたものではありませんからね・・・。)

ところで、ASIOで音が鳴らない問題は、解決済みでしょうか。

2014-04-23 00:39 Updated by: koh-hey
댓글 올리기

ASIOの方は、まだ音が鳴っていません。

ASIO4ALLのoff-line settingを見ると、Realtek HD Audio outputのところが×になっていて、そこのツールチップテキストが

"Status:Unavailable!

In use by another application?
MS GS Wave table Synth' enabled?"

と表示されているので、これが原因なんだとは思います。まだ、この×をなくす方法がわかっていません。。

2014-04-23 01:30 Updated by: yyagi
댓글 올리기

メッセージにあるとおりで、 MS GS Wave table Synthが、サウンドのoutputを握っちゃっていて、ASIOALLがoutputを占有できないのが原因だと思います。

MS GS...を引っぺがすには、たぶん

  1. MIDIの出力先を追加して、
  2. デフォルトでのMIDIの出力先を、1.で追加した先にする(要するに、MS GS...以外にする)

必要があると思います。

  1. は、とりあえずMIDI Yokeあたりをインストールいただいて、tp://mimikopi.nomaki.jp/midi/001/vmidicable/
  2. は、適当なMIDI Mapper選択ツールをお使いいただければ、tp://openmidiproject.sourceforge.jp/MIDISelector.html

大丈夫だと思います。

2014-04-24 20:55 Updated by: koh-hey
댓글 올리기

教えていただいた内容で試してみたんですがやはり、うまくいかないです。

ASIO4ALL offline setting ですが

DTXCが起動していない状態だと、Realtek HD Audio outputは×になっていないです。リロード(右三角マークをクリックして一旦消して、またクリックで点ける)しても、×になりません。

ですが、DTXCが起動している状態だと、Realtek HD Audio outputが(リロードすると)×になってしまって、ツールチップテキストに例のMS GS Wave table Synth' enabled?というメッセージになっています。

DTXMania098を起動したときも、同様です。

2014-04-26 01:52 Updated by: yyagi
댓글 올리기

tp://yyagi.com/DTXC_28821_20140425.zip

遅くなりました。(koh-heyさんと同じような環境を作るのに時間がかかってしまいました。)

こちらでも現象を再現することができ、修正しました。こちらをお試しくださいませ。

DTXC側でDirectSoundを使っていると、ASIO4ALL側が遠慮して、サウンドデバイスの占有を止めてしまうようです。(DTXCの代わりにWindows Media Playerを使っても、同じようなことができました)

そこで、FDKの作りを改めて、DTXC動作時に限り、DirectSound時に(独自タイマーの動作用に)内部で常時無音サウンドをループ再生しているのを止めました。DTXMania動作時は従来と変わらず、DTXMania側でサウンドデバイスを占有します。

2014-04-26 04:25 Updated by: koh-hey
댓글 올리기

こんな時間に起きてしまいました。(^^;)

動作確認しましたのでご報告いたします。

まず今度のは、ASIO4ALLで音が出るようになりました。動作時に、タスクトレイにASIO4ALLの三角のマークが表示されて、音も出ています。その場合、offline settingが×になることもなくなりました。

しかし、動作不安定になるときがありました。

確認した症状は、

① DTXCからViwerで再生しても、音も絵も出ず時間のカウントだけ進んでいくようになることがある。その場合、何度やり直しても同じ症状になって、Windowsを再起動しても同じ症状になりました。

② 私はふだん DTXMania098(131101)FullHD のバージョンを使っていますが、こちらは設定をASIOにして、実行して、常に大丈夫でした。(音が出ない症状にならない)、offline settingを見ても×になっていないです。

③ ①の症状になったときは、DTXCと同じフォルダに入っているDTXManiaGRを直で(設定をASIOにしておいて)実行した場合も、音は出ませんでした。

④ 私なりに切り分けをしてみたんですが、①の症状になった場合に、DLしたzipから他のフォルダに展開して、設定をASIOにして、実行してみたら音が出たので、

  それで、音が出なくなった状態のフォルダを、フォルダ名を変更したら(だけで)、音が出るようになりました。そこから、元のフォルダ名に戻したら音が出なくなりました。

  どこかに残っている設定が起因しているのかも。

2014-04-26 04:39 Updated by: koh-hey
댓글 올리기

すみません①と③は別問題かも、①の症状になるけど、③のDTXManiaGRを直実行でASIO設定は大丈夫、という状態になりました。

フォルダ名の変更で症状が変わるのはDTXManiaGR直実行で確認しました。

2014-04-26 22:01 Updated by: yyagi
댓글 올리기

動作確認いただき、ありがとうございました。

私のところでも、同じようにASIO4ALLを使ってASIOでのDTXC→DTXMania呼び出しを1時間ほどいろいろと試してみましたが、(1)や(3)のような現象は発生しませんでした。つまり、音が鳴らなくなるようなことはありませんでした。

(DTXManiaをASIOで演奏中は、ASIO4ALL offline settingsで×がつきます。(今まさにDTXManiaで使っている最中だから。))

一応確認ですが、offline settings上で、使用可能なサウンドデバイスは1つだけにしていますよね。 (例えばウチでは、Realtek High Definition Audioと、ほかのデバイスが選択肢として出ますが、そのうち1つだけを有効にしています。そうしないと、別のサウンドデバイスに音を出しに行って、ヘッドホンをつないでいるサウンドデバイスからは音が出ていないということがありますので)

あとは、Realtekのドライバの更新が可能なら、更新してみるとよいかもです。

いずれにせよ、ASIO4ALLとRealtekの組み合わせでお使いになる方は多いと思いますので、この問題を解決しないことには、099のリリースはできませんね。

2014-04-28 00:23 Updated by: koh-hey
댓글 올리기

offline setting上では、私の環境ではBluetoothオーディオとRealtek High Definition Audioとありますが、Bluetoothオーディオの方は消えていてRealtekの方だけオンにしています。

DTXMania実行中は、スタートメニューからASIO4ALL v2 offline settingを開くと、×点いていました、タスクトレイの中の三角マークを開くと出てくるセッティングの方は、×になっていなかったので、それと混同していました。

Realtekのドライバは、最新になっています。前回、ASIOで音が鳴らないといったときに、ドライバのバージョンアップをやっていました。

①と④の症状は、今も、再現できる状態です。

2014-05-05 00:48 Updated by: yyagi
댓글 올리기

こちらではまだ問題を再現できていません・・・。ぬぬぬ。

  • Realtekのドライバのバージョンを教えてください。試しに私の環境のRelatekのドライバは、デバイスマネージャの「サウンド、ビデオ、およびゲームコントローラー」のRealtek High Definition Audioをダブルクリックして出てくるプロパティの「ドライバー」タブを開いて出てくるバージョンを見る限り、6.0.1.6626でした。(日付は2012/04/30と出たので、私のは古いですね。でも、この画面で「ドライバの更新」をしてみましたが、これが最新と出ました。)
  • ASIO4ALL v2のバージョンを教えてください。ASIO4ALL v2.11 Beta2でしょうか。(ウチはこれです)
  • ASIO4ALL v2の設定を初期値に戻しても、現象は同じでしょうか。
2014-05-05 09:44 Updated by: koh-hey
댓글 올리기

・Realtekのドライバのバージョンですが、6.0.1.7083、日付は2013/11/05です。Realtekのダウンロードセンターから取ってきました。

・ASIO4ALL v2のバージョンは、v2.10です。

・ASIO4ALL v2の設定を初期値に戻す → これは確認しました(Restore Default Settings)が、音が鳴らない症状は発生しました。

・他に気づいたところですが、

Windows起動して一発目に動作させた場合、(DTXCから、設定がASIOになっている状態でプレビュー)、音が鳴りました。

停止ボタンを押して停止して、Viwerのウィンドウを閉じて、再度、再生ボタンを押すと、音がなりません。音が鳴らない時は動画も再生されなくて、最初譜面(チップとか小節の区切り線)が一瞬、本当に一瞬出てすぐ消えてしまいます。譜面、動画、音、がない状態でカウントだけ進んでいきます。

そして、その状態から再生場所を最初からではなく、ちょっとずらして途中から再生をやると、問題なく進んでいくデータもありました。

最初からではなくずらして途中から再生して、BGMは鳴っていてチップ音が鳴らないケースもありました。

また、他のデータで、途中から再生で、チップのところでドラムを一瞬叩いてすぐに譜面が消えてしまうというケースもありました。

それらの状態から、DTXCのオプションでWASAPIに設定させると、問題ない動作です。ASIOの設定に戻すと、同じ問題の症状に戻ります。

2014-05-05 12:35 Updated by: yyagi
댓글 올리기

コメントありがとうございます。こちらでもRealtekとASIO4ALLのバージョンを同じにして、koh-heyさんと同じような手順を試してみましたが、現象は再現できませんでした。

ですが、そちらでは、音だけでなくて、画面にも影響が出ているのですね。であれば、がちがちにログ出力するテストバージョンを作ってお試しいただければ、問題を追いかけることができるかもしれませんね。

取り急ぎ、編集中のDTXファイルパスがASIO時に正しくDTXManiaに伝わっているかを確認したいので、

tp://yyagi.com/DTXC_28821_20140505.zip

これを使って、DTXManiaLog.txtの ParseArguments: とか FDK; などと書かれているところを確認いただけませんか。 (そのままDTXManiaLog.txtを送ってもらってもよいです)

なお今回、手順の中でDTXManiaをいったん終了したりする関係で、ログ出力をアペンドモードで行っています。 起動ごとにログがリセットされず、どんどん追記されますのでご注意ください。

参考情報として、お使いのパソコンのメーカー名とか型番とかって、わかりますでしょうか。自作でしたら、マザーボードの型番を教えていただけますか。

(注: 通常、Realtekのサウンドドライバは、PC OEMメーカーごとにカスタマイズが入っていますので、ドライバの入手はRealtekからでなく、PCやマザーボードメーカーから入手なさったほうが良いです。)

2014-05-05 16:00 Updated by: koh-hey
댓글 올리기

ご確認ありがとうございます、

すみません、今日は、私家にいないため、確認ができません。

明日確認してご報告します。

パソコンはソニーのVAIOの、VPCSB4AJというモデルです。

2014-05-06 16:51 Updated by: koh-hey
댓글 올리기

すみません、ダウンロードするのが遅くなったからか、Not Foundでダウンロードできないです。すみません。

2014-05-06 18:37 Updated by: yyagi
댓글 올리기

すみません。休みでDDNSが死んでました。復活させましたので、もう一度お願いします。

2014-05-07 08:29 Updated by: koh-hey
댓글 올리기

ダウンロードして、症状を確認できましたので、ログをメールでお送りします。よろしくお願いします。

2014-05-08 01:41 Updated by: yyagi
댓글 올리기

ログを受領いたしました。ありがとうございました。

DTXCからDTXManiaへの引数のやり取りが化けていないかを気にしていたのですが、そこは問題なかったようです。

メールでいただいたコメントを踏まえて、少し手直ししました。

tp://yyagi.com/DTXC_28821_20140507.zip

  • DTXCからの呼び出し時は、MIDI-INを無効化するようにしました。
  • 調査用に、再生直後に出すログを増やしました。一方で、無罪確定したDTXCからの呼び出し周りについては、ログ出力を削除しました。

MIDI-IN無効化対応で、今回の現象が改善するとも思えませんが、DTXCとの組み合わせにおいて非常に鬱陶しい動作であることは実際に体験できましたので、無効化機能を入れました。

まだ問題再現するようでしたら(たぶん再現すると思います)、またログを同じようにお送りいただけますと幸いです。

2014-05-08 22:18 Updated by: koh-hey
댓글 올리기

メールでログをお送りしましたのでご確認よろしくお願いします。問題の症状出ています。

あと、DTXCからのViwer実行時のMIDI-IN無効化対応、ありがとうございます。DTXCで譜面作成しているときは、再生・停止を繰り返しながら作業することがあるため、ありがたいです。

2014-05-08 22:21 Updated by: koh-hey
댓글 올리기

私の環境で、Viwerを停止したり閉じた後、再生してすぐにViwerが開いて開始されることを確認しました。

2014-05-08 23:39 Updated by: yyagi
댓글 올리기

ログ送付いただきありがとうございました。メールで返信させていただきましたが、どうも微妙にそちらとこちらで動作確認に使っているDTXデータが異なっているみたいです。ご確認いただけますでしょうか。

・・・実は、今回一番怪しそうなところにログ出力を仕込んでいたのですが、そこもハズレのようでした。ほかに問題になりそうなところがないか、考えます。

2014-05-21 00:01 Updated by: yyagi
댓글 올리기

tp://yyagi.com/DTXC_28821_20140520diff.zip

別のところにログを仕込みました。何度もすみませんが、こちらでのご確認をお願いします。 結果はまたメールでくださいませ。(今度のはログがでかくなりますのでご注意ください)

2014-05-21 02:04 Updated by: koh-hey
댓글 올리기

ダウロードしましたが、中身がDTXManiaGR.exeとdllしかないです。以前のDTXCに合体させて試してみましたが、エラーが出て実行されなかったです?

動作確認の方はいくらでもご協力したいと思っていますので、よろしくお願いします。そうして開発が進んだら何よりです。

2014-05-21 22:33 Updated by: yyagi
댓글 올리기

tp://yyagi.com/DTXC_28821_20140520.zip

すみません、こちらでお願いいたします。

2014-05-22 01:02 Updated by: yyagi
댓글 올리기

ご確認いただきありがとうございました。

すみません。DTXC側で停止を押してからDTXMania本体を終了されてますでしょうか。

もしそうでなければ、DTXC側で停止操作後に、DTXMania本体を終了させてくださいませ。(DTXCからの再生停止指示に連動してログを吐くようにしていました)

2014-05-22 08:37 Updated by: koh-hey
댓글 올리기

おっしゃる通りです。ログを取り直して、メールで送りましたのでよろしくお願いします。

2014-05-22 23:04 Updated by: yyagi
댓글 올리기

惜しい! 現象発生時に、更に「停止」してください!

お手間を多々かけていてほんと申し訳ないです・・・

2014-05-23 00:12 Updated by: koh-hey
댓글 올리기

メールでログを送りました。今度は大丈夫かな (^^;)

2014-05-23 00:21 Updated by: None
댓글 올리기

ありがとうございました。明らかにおかしな挙動が、ログで分かります! これで調べてみますね。

それにしても、せなさん以上にスクロールがガックガクのようですね。(★がついているフレームは、何かしらガクっているとお考えください)

2014-05-23 02:26 Updated by: yyagi
댓글 올리기

tp://yyagi.com/DTXC_28821_20140522.zip

頂いたログをもとに、怪しいところを直してみました。これで直るとよいのですが。

もしだめだったら、また停止でログを出してお送りくださいませ。

2014-05-23 02:43 Updated by: koh-hey
댓글 올리기

さっそく確認しましたが、問題の症状は発生してしまいました。

メールにてログをお送りしましたので、ご確認よろしくお願いいたします。

2014-05-23 02:45 Updated by: None
댓글 올리기

だめでしたかー。ご確認いただきありがとうございました。それではまた明日。

2014-05-27 01:51 Updated by: yyagi
댓글 올리기

tp://yyagi.com/DTXC_28821_20140526.zip

これをお試しいただけますでしょうか。

どうも、頂いているログを拝見する限り、2回目の再生の時は、ASIO (ASIO4ALL) の実動作が始まる前に再生動作が始まっているようで、 そのために再生済みのバイト数に依存して設計されている演奏タイマーが正しく動作していないようにみえます。

そこで、ASIOの動作開始前に演奏タイマーの値を読みだしても、破たんしないような値を返すようにしてみました。

これでだめなら、例によってまたログをお送りください。(停止でログ出力するのは変わりませんが、ログの内容を少し追加しました)

また、ダメな場合ですが、ログをお取りいただくだけでなく、もう1つ、「DTXMania本体を閉じてからすぐにDTXCで再生するのではなく、数秒待ってから再生開始する」のをお試しいただけないでしょうか。上記の通り、koh-heyさんの環境では、ASIO4ALLの動作再開に時間がかかっているのが原因のように見えますので、ちょっとASIO起動までの時間に間をおくことで改善できるかなと思いまして。

(注: 再生開始までに間を空けるのは、あくまで原因の切り分けのためのご確認です。最終的にはプログラム側で吸収します。すぐに再生再開できないと不便ですから。)

2014-05-27 09:05 Updated by: koh-hey
댓글 올리기

おおおっ直りました!

何度やっても、問題の症状が出ないです!

2014-05-27 22:27 Updated by: yyagi
댓글 올리기

ちゃんと動きましたか!ありがとうございます! これでようやく、DTXV化の話に一区切りつけることができそうです。

koh-heyさん、辛抱強くお付き合いいただき、大変感謝しています。ありがとうございました。

後で修正コードをコミットしておきます & 一旦ソースを整理します。

これで残りは、せなさんのスクロールがくがく問題と、GR画面での判定位置をぐわっと下げることができるようにもする話ですかね。ちまちま進めます。

2014-07-07 00:26 Updated by: yyagi
  • Resolution Update from None to Fixed
  • Status Update from Open to Closed
  • Ticket Close date is changed to 2014-07-07 00:26
댓글 올리기

Release099で対応済み。

Attachment File List

No attachments

Edit

You are not logged in. I you are not logged in, your comment will be treated as an anonymous post. » Login