ユーザ用ツール

サイト用ツール


2024:07:21

差分

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

この比較画面へのリンク

両方とも前のリビジョン前のリビジョン
次のリビジョン
前のリビジョン
2024:07:21 [2024/07/21 19:41] machiaworx2024:07:21 [2024/07/22 02:12] (現在) machiaworx
行 1: 行 1:
 ===== プログラム ===== ===== プログラム =====
   * ライブコーディングツールの進捗   * ライブコーディングツールの進捗
-  - サンプリング再生機能\\ 実装ずみ+  - サンプリング再生機能\\ 再生バッファに枠を確保ずみ、サンプリングデータを引っ張ってくる処理はまだ。
  
   * 二次機能   * 二次機能
行 20: 行 20:
  
 ---- ----
-  * オーディオとのバッファ遅延については短縮することができた。+  * オーディオとのMIDIの再生遅延による演奏乱れについては軽減することができた。
   * Play状態の間にバッファを噛ませることにして、一定秒数以上経過したら改めてバッファを進めるようにした。   * Play状態の間にバッファを噛ませることにして、一定秒数以上経過したら改めてバッファを進めるようにした。
-  * ただ、これだと発音自体は行っているけどシーケンス自体が進まない状態になってしまうので、ちょっと遅延やノイズが出るようになってしまった。もう仕方ないかな。 +  * これだと発音自体は行っているけどシーケンス自体が進まない状態になってしまうので、ちょっと遅延やノイズが出るようになってしまった。これ対応済み。 
-  * もう1個状態れてしまいうのはとしてはる。 +  * 細かく指定を入れてくことでどうにかなってきた。 
-  * を行うどうは正直どっいいがしてる。あくまオーィオとサプリングの遅延補正するための手段なのでMIDIは関係。 +  * ただ、管理別にしてしまった弊害として、MIDIとオーディオで同期が取なくなってきてしまった。\\ 流石に、オーディオMIDIでサイクル半分フレーズがズレてきたのに笑ってしまった。 
-  * ・・・と思ったけどMIDI再生に関係ないので、こおかしくね?って思た。拡張必要+  * いうことであまり意味がないのかもれないけど、バッファ更新タイミングでオーディオとMIDIのシーケンス位置につい同期を取ることにした。これで再生が大きくおかしくなるの避けられる。 
 + 
 +---- 
 +  * また、MIDIの1個目の譜面が再生さないバグがあった。\\ 最初はデータが間に合ってないとかかと思ったけ、タイミングの調整を導入したら明らかに間に合ている状態再生されなため、これはおかしと調査を開始。 
 +  * 原因はなんてことはない、「再生可否を確認することなくデータを再生する一択」の処理になっていたこと原因だった。\\ このため、停止を行っても少バッファが進んでいる状態でしかも1個目のデータが停止するのに鳴っ状態だった 
 +  * 再生フラグをしっかり確認して鳴らすようにしたら回避可能になった。 
 +  * かなり完成度が上がってきてる。なかなか楽しい。 
 + 
 +---- 
 +  * 追加 
 +  * 上記の多重化のおかげで、別のタイミングで再生情報が初期化されるバグがったの除去してた。多分1時間くらいかかった。 
 +  * バッグは、通常の処理に加えコールバック処理の最初・最後にブレークポイトやprintfを引っ掛けて、タイミングを確認する状態になった。 
 +  * 今までで一番厄介なバグだった・・・そこまでの蓄積がなければ泥沼にはまってたはず。 
 + 
 +---- 
 +  * ノイズを低減させるために以下の資料を読み込んでみよう 
 +  * https://postd.cc/four-common-mistakes-in-audio-development/ 
 +  * メインスレッドで言語のコンパイル処理が挟まっているので、これはやべえなと思って、マルチスレッド構造にしてコンパイル処理を別スレッドに流すようにし。 
 +  * メインスレッドはGUIでファイル参照心配ほぼないんだけど、コンパイルするときにファイル読んでから行うようにしているので、GUI側でメモリ確保が挟まってしまうと考えると、マルチスレッドにしていたほうが安全なと思い始めた。 
 +  * デバッグが大変かもしれないけど、基本的にはデータサーバ処理は別物にしているので、どうにかなると 
 +  * で、Releaseでデバッグしてみたところ、うまくスレッド周り終了しないことが発覚何かと思ったら最適化によって正常に動かなくなっていたという。 
 +  * https://ameblo.jp/super-hk/entry-12678708771.html 
 +  * 危なかった・・・(汗
2024/07/21.1721558480.txt.gz · 最終更新: 2024/07/21 19:41 by machiaworx