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

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

2018-11-01から1ヶ月間の記事一覧

記録

とりあえず変換器周りのファイルのガワだけ作成 旧ソースを眺める ざっと処理を分けると BMSファイルのパース WAV読み込み BPMとSTOP読み込み WAV合成 調整 な感じで分けられそう それでも結構色んな事をやっていてどうにか簡素にならんか考え中

記録

wavファイルoggファイル読み込み部分が完成 実際にwavファイルとoggファイルを読み込んでwavファイルとして出力して問題無いかテスト いくつかバグがあったが直して終了 ついでにoggファイルの出力も実装。テストしてちゃんと出力出来るのを確認。 次の変換…

記録

今日はwavファイルoggファイル読み込み絡みをガッツリやった。 だいぶ良い感じに整理できたと思う。 ほぼ終わった感じ。 次は変換器か。

記録

wavファイル読み込みをやる 旧ソースから色々弄ってちょい不満だった部分を直したり 旧ソースを眺めてたらバグを発見。でもまあ影響は小さい部分かな。 ローパスフィルタなどの信号処理関連の記憶が飛んでいるのでベースになる理論が理解出来なくてちょい困…

記録

WAVファイル読み込み部を眺める 結構今のセンスとは大分違うので読むのに苦労する と同時に、やることは同じだけど書き方を今のセンスのに変えないと ここは時間がかかる箇所なのでパフォーマンス(を改良しやすさ)も考えないと 例外の設計周りもそろそろ考…

記録

Parserが一段落したのでちょっとゲームしたり寝てたりしてた。 ちょっとエディタ(xyzzy)の設定を弄ったら起動できなくなってしまったので xyzzy を最新版にアップデート それだけで1時間以上とやる気をだいぶ取られる Waveクラスの実装 ほぼコピペかと思った…

記録

今日は旧ソース読んでて終了。 旧ソースほぼコピペかと思ったが内部で扱うデータを64bitにするので全体的に見ておかないと後で苦労しそう。 あとC++11以降の機能も入ってないので結局は結構書き直しはするっぽい。

記録

チャンネルデータ部の評価部の実装完了 Alcubierre Driveもちゃんとパースして目的のデータが入ってるぽいのを確認 1小節あたりの分解能が最高で11520とかあってヤバい けど、全体の分解能は19584000で行ける筈っぽくて558桁にもなるのはバグ? 小節長変更と…

BMX2WAV の次期バージョンはいつ出来るのか

コメント頂きました。 http://bms.g.hatena.ne.jp/temtan/20180106#c1542377295 期待して待ってる人が居るってのはとてもうれしいことですね。普通に励みになります。いつ出来るのかって話は何をもって完成とするのかって話にもなりますが、まあ適当に。です…

記録

小節長変更はおそらく小節クラス(Bar)に比率だけ取っておいて、実際のWAV合成の再の時間計算の時に掛ければ大丈夫な筈 うーん多分大丈夫な筈なのだけどちょっと怖い 元々は小節長変更の際に長さを調整していたのは分解能1個分が常に拍に対して一定であること…

記録

チャンネルデータの評価部分に着手 ここで分解能絡みの話になるので旧ソースを見て復習する が、全然判らない。ソース見ても何をやっているんだこいつとか思った。 まあずっと眺めてたらなんとか理解できるように。 分解能を小節毎に変えて持てるようにした…

記録

小節長変更の評価部分を実装。 Channel クラスと Buffer クラスの整理 Channel クラスは重複(複数行要するに01チャンネル)を持たない形式に その代わり Bar クラスに bgm(01 チャンネル)専用のデータを持ってそれを処理することに それに伴い Channel ク…

記録

ファイルや関数やらの配置位置の整理整頓をする ヘッダー情報を評価する部分の実装 WAVxxやBPMxx等の連番データを基本的にはヘッダとして扱うことに それに加えてRegisterArrayという扱いやすい形で持つことにする ヘッダー情報重複時や他のエラー時の動作を…

記録

Randomのルートを選択しつつBmsDataを作成していく部分を作っていく ここの考え方に「評価(Evaluete)」という考え方を導入 Frameという文脈データ(BmsDataとランダム生成値とか)を用意 Frameを使って以前説明したStatementを評価するとFrameのデータが追…

記録

出張中等に考えていた事などを。 BMX2WAV 全体の構成 ベース部 前のBMSBEL部分 今作ってる 他アプリ(後述)等で使い回す事を想定 コア部 ベース部でのデータを元にWAVを構成する部分 ここまでの部分だけでちゃんと分離して単体として機能できるようにするつ…

記録

1行構文解析とRANDOMの解析部分は終わった感じ? 次は解析データからBmsDataを作っていく処理を作る感じ。 BMSデータとしての整合性等をチェックしながらなのでBMSデータの知識を思い出さないと。 ロングノートとかの扱いとかあった気がするので前のソースを…

記録

パーサーのエラー周りは細かく制御する予定なのであとでちゃんと設計しないとあかん なのでとりあえずは分岐だけはさせて中身はあとで Channel部分の構文解析を書いた。 内部のデータ形式をちょくちょく変えたりしながらやってる。