BMX2WAV(と他ツール)開発日記

主にBMX2WAVの開発についての記録ブログ

bmx2wav

記録

searcher のエントリ周りの実装の整理 想像以上に難しくて今日一日ずっとやっててやっと出来た感じ BMS の構文解析を別スレッドで実行するアイデア 別スレッドでやるなら今は CPU コアが複数とか当然なので速度アップが見込めるような

記録

昨日調査したバグは修正 変換時にファイル出力指定なしの場合はファイル出力無しだけど、それを画面に出すようにした searcher のツリーの右クリックで開くメニューを作った searcher のエントリ周りの実装がどうにも複雑だったので整理することに決めた け…

BMX2WAV 1.ZZ.03

http://childs.squares.net/program/bmx2wav_new/bmx2wav.html 【機能追加】BMX2WAV Searcher を同梱するようにした。 【バグ修正】一部誤字・脱字の修正 【その他】前バージョンで機能追加した環境変数の展開をしないようにした。 【その他】BMS 構文解析の…

記録

searcher の設定プロパティシートは完成した のでリリースに向けて作業 とりあえす 64bit は数カ所適当に修正して終了 細かい警告も潰した 明日ぐらいには公開出来るかな

記録

昨日作った非同期排他制御は特定の場合に問題があることが判った ので代わりの制御を考えて実装 これは結構上手く行った searcher 全体の設定等を考えて専用のクラスを作成 設定編集用のプロパティシートを作成する その途中で今日は終了

記録

データ構造を見直して修正した ので逐次表示が出来るようにはなった 次に非同期処理 結構詰まったが、なんとか非同期処理かつ排他制御が出来るようになった がしかし、このままだと使い勝手が悪いというか変 なので今出来ることから仕様をどうするかを考えな…

記録

逐次表示を考えた 今のsearcherの構造は逐次表示を一切考えていない むしろ一度データをためた後に表示することしか考えていなかった なのでそのデータの構造等を見直さないとダメだということに という点まで判って今日は終了

記録

他の部分で処理が速く出来るか検討 BMS構文解析の所は調査して特に偏って遅い部分が無いのでコレと言った高速化は難しそう ファイル検索部分は調査が難しかったが色々工夫して調査 結局はWindows の API を呼び出してる所が遅いのでもうやりようが無いことが…

記録う

なんか昨日の日記がちゃんとアップされてなかったので再度アップした。 本日はパーサの正規表現部分を自前の文字列処理で実装してみた 実装した結果該当部分の処理時間が20倍~80倍(桁は合ってます)ぐらいになった。 BMS の構文解析の全体で見ると2倍~3倍…

記録

searcher はそれなりに使えるようになったかなと しかし、検索周りが遅い気がする(検索中はフリーズしたようになる)ので調査 ファイルシステム周りが遅いのはまあしゃーなし。早くしようが無い ファイル読み込み部分が遅いかと予想していたがそうでもなか…

記録

Searcher に手を付ける 色々と放っておいたので、本体との共通部分で変更があった箇所との整合性が取れてなかったを取るように アイコンとかラベルを設定 他バグを取ったり ソート関連の調整 思ったより多めになって修正しきれずまた明日

BMX2WAV 1.ZZ.01

http://childs.squares.net/program/bmx2wav_new/bmx2wav.html2.0.0 に向けて本体のテスト版です。ここから先ある程度まで実装できたら2.0.0として正式公開する予定。 中のファイルについて BMX2WAV は以下の順番でスクリプトファイルを読み込みます。 bmx2w…

記録

見つかった64bitのみの不具合について調査調査調査 結局のところ今の段階ではWindowsのバグだという結論に なのでこれを回避する為に自前で実装する部分が出てきたっぽい という所まで判って時間切れ

記録

64bit 対応でコンパイルが通らない部分の修正 ついでにコンパイラの警告も出すようにして所々修正 ほぼ出来上がってあとはテスト版のリリース作業だけかな といったところで 64bit のみの不具合が出てきてしまいまだまだか

記録

昨日のバグはちょっとした所でミスってたのが原因だった というのを結構色々と弄くった後に気づいて無駄な時間を使ってしまった 他色々調整して一括変換は出来るようになったかな 他、それのログとかメニューとかボタンの調整 これで機能的には v1 と同じま…

記録

かなり苦労した設計もなんとかなりそうなんで実装開始 それでも所々でうんうん唸りながらコーディング 出来上がったのでテストで実行してみたら一発で上手く行った と思ったら、一部のウィンドウがアクティブにならない問題が 事前調査だとアクティブになる…

記録

一括変換絡みを考えたが思ったよりもだいぶ複雑そう メッセージとスレッドの同期の取り方とか特定の変数をatomicにしないとダメっぽいとか モーダルとかモードレスとかのダイアログの性質を考慮するとか 色々と調査してなんとかこんな感じでいけるんじゃね?…

記録

後処理の実装 内容的にはスクリプトでやってる ちょっととっちらかっていたオブジェクトの管理をちゃんと整理した これで変換時の設定関連はv1と同じ以上になった筈 後は一括変換 これが思ったよりやっかいっぽく色々考えないとだめっぽいかも

記録

スクリプトから出力ファイルテンプレート処理が出来るようになった。

記録

色々やった メイン画面からBMS単体の変換ができるようになった 変換時スクリプトVMの初期化をするようにした 変換時スクリプト関数呼び出しができるようになった 変換時スクリプト関数呼び出し用のC++関数の整備をした 速ければ今月中にはテスト版を出せるか…

記録

昨日も作業したけど記録するのを忘れてた ログ出力実装 ステータスバーにソート状態を表示するように コマンドラインから BMS 指定でリストに追加するように スクリプトのエラーを補足してるか各所のチェック 変換画面のボタンからで、変換したメモリ上の WA…

記録

ソートを実装 同じのを2回押したら逆順にするようにした 画面の大きさ等を保存・読み込みするようにした 流石に他にやること無くなってきたから本流の変換部分の事をやるかな。

記録

色々と落ち穂拾い TODO として後回しにしてた細かい処理を実装とか メニュー・ツールバーに項目を追加 ロングノートの始端と終端が異なっていた場合エラーにするように ロングノートの終端が無かった場合エラーにするように 各種ダイアログのアイコンの設定 …

記録

メニューからの処理関連は変換以外はほぼ全て実装できたかな 変換関連はパーサ、スクリプトの仕様、変換部と色々絡んだ上で設計等をしないと行けないのでたいへんであります。 なのでこの辺は最後にやる予定だけどそろそろやることになりそう。 スクリプト関…

記録

4月~5月は仕事が暇だったのでだいぶ進められたが、最近はまた仕事が忙しくなってきたので進みは遅いかも。 けどだいぶ先が見えてきたので進めるモチベーションは高いかと。 メニュー等からの処理の実装 個別設定のスクリプトでの動作とかいろいろ

記録

各種ツールバー等のアイコンを作成した。 素人なので下手くそだけど、まあ所詮は記号だし

記録

変換設定は全般と出力タブを追加してそれら必要なのを一通り作った そろそろメニューとツールバーを完成させたいのでアイコンを作らねば

記録

色々と考えたけど、出力ファイル指定方法は結局は以前の出力テンプレート機能と同じような機能を提供するのが 一番スッキリするんじゃないかなとの気分になってきた。 エントリーの詳細ダイアログでスクリプトで指定した内容を表示できるように。

記録

エントリーの詳細ダイアログの作成 メイン画面のメニューの作成 ツールバーと整合性を取ったり

記録

まあちまちまと色々やってまする。 出力ファイル決定方法でイマイチ良い方法が浮かばず 出力ファイル名を任意に柔軟に手軽に決めたい需要はあると思ってる なので、かなり細かく指定する方法は用意する予定 これはスクリプトで指定する形で実現する予定 しか…