ユーザ用ツール

サイト用ツール


2024:07:14

差分

このページの2つのバージョン間の差分を表示します。

この比較画面へのリンク

両方とも前のリビジョン前のリビジョン
次のリビジョン
前のリビジョン
2024:07:14 [2024/07/14 21:52] machiaworx2024:07:14 [2024/07/15 08:24] (現在) machiaworx
行 4: 行 4:
   * 進捗   * 進捗
   - ファイル読み込み(最初は同期、可能なら非同期読み込み)\\ ファイルのセーブ状況検知実装予定、MIDI設定を改造予定   - ファイル読み込み(最初は同期、可能なら非同期読み込み)\\ ファイルのセーブ状況検知実装予定、MIDI設定を改造予定
-  - 組込み関数の追加\\ オーディオ・MIDI・スピード変更実装完了。今後拡張予定+  - 組込み関数の追加\\ オーディオ・MIDI・スピード変更・MMLを実装。
   - コンパイルしたデータとサウンドの譜面を紐づける実装\\ Note表現を改造中   - コンパイルしたデータとサウンドの譜面を紐づける実装\\ Note表現を改造中
   - ADSR、フィルタの実装、加えてエフェクトの実装\\ まだ   - ADSR、フィルタの実装、加えてエフェクトの実装\\ まだ
行 10: 行 10:
 ---- ----
   * 停止時にMIDIのオールサウンドオフを仕込んでおいた。   * 停止時にMIDIのオールサウンドオフを仕込んでおいた。
-  * 再生何度かしてと一部の演奏あきらかに表現が違うものが出てきた。 +  * NoteOnのままだとピタッと止まらなので。 
-  * オーディオ側は問題なので、MIDI独自の問題と切り分けた。 +  * また停止問題は別に、一部の演奏についてあきらかに表現が違うものが出てきた。 
-  * 結果、情報の参照がおかしかったので修正。問題なくなった。+  * 同じ譜面を再生してみてオーディオ側は問題なかったので、MIDIの実装独自の問題と切り分けた。 
 +  * 結果、情報の参照がおかしかったので修正。一部譜面の参照先が違うところだったという割と情けないバグ
  
 ---- ----
   * MIDI出力Noteの表現増加、まずはVelocityから入れた。   * MIDI出力Noteの表現増加、まずはVelocityから入れた。
   * 以前と違って、0を入れると標準的な数値に変換することにした。   * 以前と違って、0を入れると標準的な数値に変換することにした。
-  * この影響でVelocityについては0と100以上は入れられないことになる。これがいいのか悪いのか。 +  * この影響でVelocityについては0と100以上は入れられないことになる。 
-  * 最初は倍率考えていたんだけど、意味のない数値になっしまうとが考えられるため、とあえず動く形で採用している。 +  * 最初は100%をマックスとしてVelocity128の倍率を出力する考えていたんだけど、数値が直接でてこなくて分かいので、まずはVelocityを直接出す形で対応している。 
-  * いっその事小数点3桁までをVelocityにしてしまうか。→した。 +  * いっその事小数点3桁までをVelocityにしてしまうことで対応とてみた。 
-  * これで小数点まで格納を考えたけど、直接書くのに困難しか待っていないのと、桁数が多くなった場合、あくまでOS上で認識できる値までは情報を取れる形になるため、あまりに桁数が多くても処理できないことになる。+  * 他の項目も同じように小数点として格納を考えたけど、直接書くのに困難しか待っていないのと、桁数が多くなった場合、あくまでOS上で認識できる値までは情報を取れる形になるため、あまりに桁数が多くてもOSによっては処理できないことになる。(Miniscript上は結構な桁数まで計算できるけど、コンピュータ上に値を持ってくるとOSで認識できる形に丸められる
   * よって、まずは必要な値のみ入力に対応できるようにする。   * よって、まずは必要な値のみ入力に対応できるようにする。
-  * Note、Velocityは必須として、他の表現は順次追加予定+  * Note、Velocityは必須として、他の表現は順次追加予定
  
 ---- ----
   * UIの色を変更する   * UIの色を変更する
-  * SetNextWindowBgAlphaっていう関数を見つけてしまったので、適当にそれ使ってしまう。+  * dear imgui上でSetNextWindowBgAlphaっていう関数を見つけてしまったので、適当にそれ使ってしまう。
   * まずは実装だけしてしまって、色調調整は後で行う。   * まずは実装だけしてしまって、色調調整は後で行う。
  
 ---- ----
   * 試しにRe:code上でのみ有効なMMLパーサをざっくりと作ってみた。30分くらいで実装できた。   * 試しにRe:code上でのみ有効なMMLパーサをざっくりと作ってみた。30分くらいで実装できた。
-  * 多分、再帰下降構文解析ってやつになると思う。トップから1文字ずつ読み取っていく形式ね。+  * 再帰下降構文解析ってやつになると思う。トップから1文字ずつ読み取っていく形式ね。
   * 順番としては以下。   * 順番としては以下。
  
行 39: 行 40:
   - 戻り値(組み立てた譜面リスト)を返す   - 戻り値(組み立てた譜面リスト)を返す
  
-  * こんな形式だけど、割と問題なく実装できた。 
   * パーサーについては以前から資料読み込んだり簡易的なLispの実装してみたおかげでそれほど怖くなかった。   * パーサーについては以前から資料読み込んだり簡易的なLispの実装してみたおかげでそれほど怖くなかった。
-  * あと問題はMiniscriptの仕様に即したクラスの使い方なので毎度の如く資料がないこと。+  * 問題はMiniscriptの仕様に即したクラスの使い方なので毎度の如く資料がないこと。
   * よって今回も既存の実装から有効そうな情報を引っ張ってきてなんとかした。   * よって今回も既存の実装から有効そうな情報を引っ張ってきてなんとかした。
   * まず簡素な機能のパーサを作ったのでここからネストの深いListを作れるように改造していく予定。   * まず簡素な機能のパーサを作ったのでここからネストの深いListを作れるように改造していく予定。
-  * また、オクターブ指定やVelocity指定、ついでに他の命令も書けるようにする予定。 
  
  
2024/07/14.1720961575.txt.gz · 最終更新: 2024/07/14 21:52 by machiaworx