2024:06:27
文書の過去の版を表示しています。
6/27日記
プログラム
- まずre:code開発再開のために色々準備してた。
- dear imguiのコンパイル環境(適当に使えるglfw+OpenGL3で実装予定)
- miniaudioの組込み
- そこまで難しいことはないので実装だけしてしまおう。
- 次はMiniscriptの組込み。これもライブラリのソースコードを持ってくるだけ。
- miniaudio、ウィンドウの状態と非同期で動いているため、ウィンドウをドラッグして止まるみたいなのがなくて大変使い勝手がいい。ただ後述の通りバッファ登録周りを工夫しないとダメそう。
- 前のバージョン(α版)ではテキスト処理と音楽をどうやって組み合わせたらいいのか悩んでいたけど、今回はテキストファイル編集は別のソフトで行ってくれという方針なので、その分少し楽ではある。(なのでC++で実装予定)
- ただエディタが一緒になっているのも楽ではあるので、エディタ組込みバージョンも同時進行で作りたいところ。
プログラム2
- どうもminiaudioとしては、勝手にバッファを読んだりして勝手に書き込むのを前提に作られてる様子。
- となると、今までの「譜面を読んで再生」という部分についてもIFを作成して更新するという方法が必要そう。
- Re:codeのプログラムは元々「特定のトラックの発音ON/OFFはバッファ(再生時間)依存にしている」ので、再現性のある再生方式にはできてるかと思うけど、元々シングルスレッドで動くのを前提にした実装で作っていたので、オシレータの状態を残す等色々調整の必要がありそう。
- 逆に再現性のある方式にできないと辛いかなとは思う。
- 解決法として、バッファを書き込むとわかった時点でその分のバッファを作成するようにしないと辛そう。これはバッファ書き込みタイミングで内部で参照した時点で生成しておくのが安全そう。
- 初めて触るライブラリなのにハック前提で使うことになるとは思わなかった。
- あとは専用のIF(構造体)をもってバッファを埋めるみたい。
- OggVorbis用に書かれたIFのサンプルの中身確認してみたところ、それほど問題なく作れそうな気がしてきた
- 数日かけて単純に自前の波形を書けるようなプログラムを書いてみるかな。
2024/06/27.1719490886.txt.gz · 最終更新: 2024/06/27 21:21 by machiaworx