チケット #36177

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

登録: 2016-03-20 11:49 最終更新: 2016-08-03 16:36

報告者:
担当者:
チケットの種類:
状況:
オープン [担当者決定済み]
コンポーネント:
マイルストーン:
優先度:
4
重要度:
5 - 中
解決法:
受領
ファイル:
なし
投票
点数: 0
No votes
0.0% (0/0)
0.0% (0/0)

詳細

選曲画面上に、ドラム譜面の使用レーン数を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

チケットの履歴 (11 件中 3 件表示)

2016-03-20 11:49 更新者: ikanick
  • 新しいチケット "選曲画面における、ドラムの使用レーン数の表示" が作成されました
2016-03-20 12:20 更新者: ikanick
  • チケット完了時刻2016-03-20 12:20 に更新されました
  • 状況オープン から 完了 に更新されました
  • 解決法なし から 受領 に更新されました
コメント

rev938で追加。

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

2016-03-20 12:38 更新者: ikanick
コメント

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

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

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

2016-03-20 14:11 更新者: yyagi
コメント

従来より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 更新者: ikanick
  • 状況完了 から オープン に更新されました
コメント

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

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

レーン数種類

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

ギターのレーン数

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

LPとLBDの区別

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

2016-03-21 00:01 更新者: yyagi
コメント

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

2016-07-30 18:49 更新者: ikanick
コメント

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

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

2016-08-02 13:01 更新者: yyagi
コメント

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

  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 更新者: ikanick
コメント

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

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

2016-08-03 10:47 更新者: yyagi
コメント

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 更新者: ikanick
コメント

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

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

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

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

添付ファイルリスト

添付ファイルはありません

編集

ログインしていません。ログインしていない状態では、コメントに記載者の記録が残りません。 » ログインする