Ticket #36177

選曲画面における、ドラムの使用レーン数の表示

Eröffnet am: 2016-03-20 11:49 Letztes Update: 2016-08-03 16:36

Auswertung:
Verantwortlicher:
Status:
Offen [Owner assigned]
Komponente:
Meilenstein:
Priorität:
4
Schweregrad:
5 - Mittel
Lösung:
Accepted
Datei:
Keine
Vote
Score: 0
No votes
0.0% (0/0)
0.0% (0/0)

Details

選曲画面上に、ドラム譜面の使用レーン数を6,10,12レーンに種類分けして表示して欲しい。

・6レーン:HH SD BD HT LT RC
・10レーン:LC HO HH SD BD HT LT FT RC RD
・12レーン:LC HO HH LP LBD SD BD HT LT FT RC RD

Ticket-Verlauf (3/11 Historien)

2016-03-20 11:49 Aktualisiert von: ikanick
  • New Ticket "選曲画面における、ドラムの使用レーン数の表示" created
2016-03-20 12:20 Aktualisiert von: ikanick
  • Lösung Update from Keine to Accepted
  • Status Update from Offen to Geschlossen
  • Ticket Close date is changed to 2016-03-20 12:20
Kommentar

rev938で追加。

今後レイアウトも変わりそうなので、それを見越してデザイン性は考えてません。

2016-03-20 12:38 Aktualisiert von: ikanick
Kommentar

実装に伴いノードリスト登録時のCDTXのヘッダのみ読み込みが不可能になりましたので、
従来よりsongs.db登録が遅くなると思います。

改善案等あればよろしくお願いします。

(レーンごとのチップ数とかも取得できるようになったのは強みかもしれませんが)

2016-03-20 14:11 Aktualisiert von: yyagi
Kommentar

従来よりsongs.db登録が遅くなると思います。

これ、めちゃくちゃ痛いです・・・。うちのデバッグ環境(Win8.1 x64 / Haswell i7-4770T (2.5GHz 4core HTあり) / 16GBメモリ / 3TB WD Green (5400rpm) だと、613曲/1731スコアで、ざっと1分半かかりました。(なお2回目以降だと、HDDキャッシュ効きまくりで、数秒もかからずに終了。)

この間、更新のない曲は問題なくプレイできますが、追加した曲は見えないままです。


実は似たような議論を以前したことがあります。(#28198 曲の長さを曲選択時にわかるようにする)

そちらでは、EnumeratingSongsを二段階に分けて、
1) まず、ヘッダ相当の情報を抽出する
2) 次に、バックグラウンドで粛々と追加情報を追加する

なんてことを話していました。そしてその件はそのまま放置状態になってしまっていたのですが・・・レーン数判定とセットでやってみるとよいかも。
(注: 2)の方は、基本的に1つのDTXファイルあたりの処理が遅くなるので、例えば100個くらいずつで一旦flushするなどの工夫をしないと、「ちょっと本体を起動して、ちょっとプレイして、すぐ終了する」ような場合にはまりそうです)

または、フォルダの更新日を使うとか。現在はDTXファイルの更新日情報だけを使っていて、set.defやフォルダの更新日情報を使っていません。これをうまく使えれば、個々のDTXファイルへのアクセスが大幅に減って、songs.dbの更新の遅さが気にならなくなるかもしれません。

最初の1回目の起動で時間がかかるのは、まあ、仕方ないですね・・・。


あと、個人的には

  • レーン数の種類をintで定義されていますが、私だったらenumかなぁ・・・(いやまあ、intの方が入出力で楽なのはわかりますけどね)
  • ギターベースはレーン数3をとにかく入れておいた方がよろしいかと。(今は0のままですよね。) また、OPENの有無ってのが要素としてあるかもです。
  • 同様に、ドラムはLPとLBDを区別しているかどうかがこれで分かると、#34016 (LP使用譜面の読み込み機能) の役に立ちそうです・・・と一瞬思いましたが、ユーザー見えでは、LPとLBDが内部で分けて定義されているかどうかなんて意識はないでしょうから、このままでいいかと思います。
2016-03-20 23:51 Aktualisiert von: ikanick
  • Status Update from Geschlossen to Offen
Kommentar

コメントありがとうございます!

やはり厳しいですか…そちらのチケットも確認致しました。
EnumeratingSongsの機能から見直すというか、その辺りから色々考えてみたいと思います。

レーン数種類

ご指摘ありがとうございます。次コミット時に修正します。

ギターのレーン数

使わないから…と思ったのですが、いざ内部で使う時に0しか拾ってこない!じゃよろしくないですね…
OPEN有無はないよりかはあった方がよさそうですね。新しいレーン数画像を作る方向で検討します。

LPとLBDの区別

こちらも合わせて進めます(すでに着手して頂いてるのでもう間に合わなそう)

2016-03-21 00:01 Aktualisiert von: yyagi
Kommentar

いえいえ、私は何も着手してませんので、どうぞどうぞ。

2016-07-30 18:49 Aktualisiert von: ikanick
Kommentar

rev.1008でConfigにDTXをヘッダ以外も取得するLoadDTXDetailを追加。
・Reload Songs等曲データを取得する際に、曲データのヘッダ以外も取得

これにより、使用レーン数等、曲データの詳細な取得が可能になりました。
(非常に暫定措置で申し訳ありませんが)

2016-08-02 13:01 Aktualisiert von: yyagi
Kommentar

これなんですが、個人的には以下の課題があると思っています。

  1. ONにすると、enumereting songsが遅くなる
  2. ON/OFFの設定を変えるたびに、reload songsしないと表示が実際に切り替わらない?
  3. いったんOFFにしてONにすると、またsongs.dbの作り直し(レーン数の取得し直し)

それぞれ、こんな風に解決できませんか。

  1. は諦める (本当は、レーン数の取得だけならもっと高速な手段があるのですが、セットで #28198 (曲の長さを曲選択時にわかるようにする ) も扱いたいので、いったんここは目をつぶる
  2. は、表示の切り替えだけ行う (今はOFFの時も表示ありにしていると思う、たぶん)
  3. は、(レーン数に関しては) レーン数情報が0のところだけを作り直す
2016-08-03 05:12 Aktualisiert von: ikanick
Kommentar

色々対策を考えて頂きましたが、個人的にはenumsongsをどうにかできれば一番いいなあとは思ってます。

やっぱり遅延ロードは欲しい…

2016-08-03 10:47 Aktualisiert von: yyagi
Kommentar

ikanickさんがお持ちの改善イメージを、具体的に教えていただけますか。

現在の、レーン数取得ロジックがない場合の動作は、だいたい以下のような流れだったと思います。

  1. 本体起動
  2. songs.db と songlist.db をHDDから読み出し、その情報を使って選曲画面を構成、演奏もできるようにする
  3. 2の後、backgroundで、HDDの曲データを検索 (=enumsongs) する (注: 演奏中は、検索を一時停止する)
  4. 3が完了した時点で、メモリ上にある曲一覧情報を3で作ったものと置き換え、さらにsongs.dbとsonglist.dbをHDDに保存

これを、レーン数取得ロジックを加えたときに、どのように変えようとお考えでしょうか?

(遅延ロードがほしいとのことですが既に上記3で遅延ロードしているので、ちょっとわからなくなってます・・・。さらに5とか6とかの遅延ロジックを入れたいということでしょうかね)

2016-08-03 16:36 Aktualisiert von: ikanick
Kommentar

やぎ。さんに書いていただいた

EnumeratingSongsを二段階に分けて、 1) まず、ヘッダ相当の情報を抽出する 2) 次に、バックグラウンドで粛々と追加情報を追加する

こいつが実装できれば一番いいな~と思った…思ってるだけです…

なので上記1~4でいえば5に相当するのかな?

Dateianhangliste

Keine Anhänge

Bearbeiten

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