ユーザ用ツール

サイト用ツール


2024:07:14

文書の過去の版を表示しています。


7/14日記

プログラム

  • 進捗
  1. ファイル読み込み(最初は同期、可能なら非同期読み込み)
    ファイルのセーブ状況検知実装予定、MIDI設定を改造予定
  2. 組込み関数の追加
    オーディオ・MIDI・スピード変更は実装完了。今後拡張予定。
  3. コンパイルしたデータとサウンドの譜面を紐づける実装
    Note表現を改造中
  4. ADSR、フィルタの実装、加えてエフェクトの実装
    まだ

  • 停止時にMIDIのオールサウンドオフを仕込んでおいた。
  • 再生何度かしていると一部の演奏があきらかに表現が違うものが出てきた。
  • オーディオ側は問題ないので、MIDI独自の問題と切り分けた。
  • 結果、情報の参照がおかしかったので修正。問題なくなった。

  • MIDI出力Noteの表現増加、まずはVelocityから入れた。
  • 以前と違って、0を入れると標準的な数値に変換することにした。
  • この影響でVelocityについては0と100以上は入れられないことになる。これがいいのか悪いのか。
  • 最初は倍率で考えていたんだけど、意味のない数値になってしまうことが考えられるため、とりあえず動く形で採用している。
  • いっその事小数点3桁までをVelocityにしてしまうか。→した。
  • これで小数点まで格納を考えたけど、直接書くのに困難しか待っていないのと、桁数が多くなった場合、あくまでOS上で認識できる値までは情報を取れる形になるため、あまりに桁数が多くても処理できないことになる。
  • よって、まずは必要な値のみ入力に対応できるようにする。
  • Note、Velocityは必須として、他の表現は順次追加予定

  • UIの色を変更する
  • SetNextWindowBgAlphaっていう関数を見つけてしまったので、適当にそれ使ってしまう。
  • まずは実装だけしてしまって、色調調整は後で行う。

  • 試しにRe:code上でのみ有効なMMLパーサをざっくりと作ってみた。30分くらいで実装できた。
  • 多分、再帰下降構文解析ってやつになると思う。トップから1文字ずつ読み取っていく形式ね。
  • 順番としては以下。
  1. 文字列を一度読み込む
  2. 譜面に関係ない文字列(パラメータが主)は除外して譜面分だけ組み立てる
  3. 組み立てた譜面を1文字ずつ読んで、リスト形式として作り直す
  4. 戻り値(組み立てた譜面リスト)を返す
  • こんな形式だけど、割と問題なく実装できた。
  • パーサーについては以前から資料読み込んだり簡易的なLispの実装してみたおかげでそれほど怖くなかった。
  • あと問題はMiniscriptの仕様に即したクラスの使い方なので毎度の如く資料がないこと。
  • よって今回も既存の実装から有効そうな情報を引っ張ってきてなんとかした。
  • まず簡素な機能のパーサを作ったのでここからネストの深いListを作れるように改造していく予定。
  • また、オクターブ指定やVelocity指定、ついでに他の命令も書けるようにする予定。

ゲーム開発

  • ようやく再開。
  • あと1ヶ月で何を用意するかというところだけど、以下の予定。
  1. 体験版(Steamにアップ予定)
  2. 難易度3個(ほぼ用意済み)
  3. 音楽2個*2個(半分用意済み)
  4. ストーリー用のグラフィック
  5. メニュー画面
  • さすがに体が1個しかないからツール作ってるとゲーム開発できねえ。
2024/07/14.1720961575.txt.gz · 最終更新: 2024/07/14 21:52 by machiaworx