7/24日記 ===== プログラム ===== * ノイズについて進捗あり。 * 処理を分割したが、まったく変わらなかった。 * ついでにインタプリタも二重化してみたが変化なし。 ---- * と思ったが、Printfのノイズが絡んで出てくる可能性が高く、リリースでPrintfをすべて削除したところノイズなく動いている。(Liveで録音して波形を調べていたが、ノイズが見当たらず) * 元々Printf等のコマンドラインへの出力がシリアル通信を行う処理のため、コールバック処理や別スレッドで実行した場合、うまく出力ができなかったり、出力自体の遅延により並列処理が遅延することも確認ずみ。 * 基本的にシリアル通信は転送速度が遅いため、同じプログラムであればスレッドを使ったほうが早い。 * 今回のケースでは、ビルドの最適化も意図的にOFFにしており速度に差がないと考えると、ReleaseとDebug環境の違いはPrintfデバッグだけとなる。 * 実際Releaseで試してみたところ、まったくノイズがないことを確認済み。 * ただ、以前はReleaseでもノイズが出ていたことを考えると、インタプリタ二重化によって処理が軽減されたと考える。 ---- * Printfのシリアル通信が原因でノイズがでていることが原因と考え、Printf命令を削除し動作対応を行い、このまま進める。 * 合わせてデバッグが複雑になることから、オーディオとMIDI遅延短縮に関する実装は一時削除。残念だけど。 * また、マルチスレッド処理についても削除。 * マルチスレッドについては切り替えも可能な実装としたため、いざとなったら移行でも問題なし。 ---- * WAVファイルの読み込みについて楽をしたいので、管理が楽なライブラリを選定。 * https://github.com/adamstark/AudioFile * ちょっと見たところmalloc使うよりも管理が簡単で、しかもクラスから直接Sampleにアクセス可能みたい。 * ついでにアクセスする型も選べるみたいで、かなり楽できそう。