2024:03:04
文書の過去の版を表示しています。
3/4日記
プログラミング(思考順)
- ツールの実装どうするか悩んでた。
- 最初はRustをつかえば万事解決ではと思っていたけど、そうでもないことがわかってきた。
- 元々「Miniscriptにジャグ配列が機能としてあった」から音楽用の言語を実装したわけで、Rustで実装された他の言語見る限り別の機能で代替しないとダメそう。
- RustとC組み合わせることもできるけど、C-Rustのインターフェースを書く必要があるのと、アプリケーションとのバインドどうするの?って話になって、時間がかかりそう。
- なので、最終手段として「C言語で全部書く」しかないな・・・という結論になりつつある。この選択肢は選びたくなかったけど仕方ない。
- アプリケーションの形は、簡単なものにするため、「1個のテキストファイルを監視し続けて、タイムスタンプが更新されたら読み込んで処理する」みたいなのでいいかと考え始める。最近そういうアプリばかり弄ってライブコーディングしていたのもある。
- ファイルパスはGUIから設定できるようにもしておこう。まぁこれは引数を受け入れる形にすれば問題なかろうと。
- ということで、C言語で必要なライブラリや実装を情報収集。
- タイムスタンプについては以下。
- ついでにRustでも調べてた
- UIは困ったらdear imgui。
- 実装を適当にしてみた。
- 利用するウィンドウ管理ライブラリはGLFW。余計な機能は不要という位置づけ。
- 参考資料は色々だけど、割とわかりやすかったのがこれ。
- あとはリサイズに制御かけるとかのオプションの資料。
- ここが英訳してた
- 読み込みは毎度おなじみのMiniscript。
- 組み込もうとしたら外部参照周りのエラー。LNK2019という忌々しいやつ。
- 実装がないと起きるらしい。
- GLFWは問題ないはずなのにどうしてだと悩んでいたけど、Miniscriptは全部ソースの形で組み込むので、オブジェクトファイルの生成が必要とのこと。
- なので、VisualStudio内のプロジェクトにぶちこまないとビルドが正常に行えないみたい。
- 実は初めてこのことを知った。中身なにやってるかわからないとこの回答にたどり着きにくいわな。
- サウンドはlibsoundio。
- ただこれは2.0への移行がどうも芳しく無く、自分でビルドの必要があるとのこと。MinGWに別途ツールを導入の上利用する必要がある。
- 出来ないことはないけど、とりあえず前バージョンのバイナリがあるのでそれを利用する。
- これでサウンド出力周りは楽に整備できた。
- 最小限にしていけばすぐできそうな気がする。
- あとサウンドのライブラリって結構少ないので調べてみる。
- PythonでPortAudioを使ってるんだってさ
- Rustだけどこういうのもある
2024/03/04.1709563493.txt.gz · 最終更新: 2024/03/04 23:44 by machiaworx