ユーザ用ツール

サイト用ツール


2024:06:27

差分

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

この比較画面へのリンク

両方とも前のリビジョン前のリビジョン
次のリビジョン
前のリビジョン
2024:06:27 [2024/06/27 23:10] machiaworx2024:06:27 [2024/06/28 05:35] (現在) machiaworx
行 1: 行 1:
 6/27日記 6/27日記
 +
 +===== その他 =====
 +  * 月曜休み予定だったのがうっかり休めなかったので強引に今日休んだ。
 +  * 元々体力が足らないのとかでこのタイミングだったが、後にしようとしても適当な日がないので今日になったという。
 +  * ただ体調崩して午前~午後で思い切り寝ていたので、結構ギリギリなタイミングだったなと思った。
 +  * おかげで体調崩さずにプログラム書くことができた。
  
 ===== プログラム ===== ===== プログラム =====
-  * まずre:code開発再開のために色々準備してた。+  * まずライブコーディングツール・re:code開発再開のために色々準備してた。
  
-  - dear imguiのコンパイル環境(適当に使えるglfw+OpenGL3で実装予定)+  - dear imguiのコンパイル環境構築(適当に使えるglfw+OpenGL3で実装予定)
   - miniaudioの組込み   - miniaudioの組込み
 +  - Miniscriptの組込み
  
-  * そこまで難しいことはないので実装だけしてしまおう。 +  * そこまで難しいことはな
-  * 次はMiniscriptの組込み。これもライブラリのソースコードを持てくるだけ+
   * miniaudio、ウィンドウの状態と非同期で動いているため、ウィンドウをドラッグして止まるみたいなのがなくて大変使い勝手がいい。ただ後述の通りバッファ登録周りを工夫しないとダメそう。   * miniaudio、ウィンドウの状態と非同期で動いているため、ウィンドウをドラッグして止まるみたいなのがなくて大変使い勝手がいい。ただ後述の通りバッファ登録周りを工夫しないとダメそう。
  
行 17: 行 23:
 ===== プログラム2 ===== ===== プログラム2 =====
   * どうもminiaudioとしては、勝手にバッファを読んだりして勝手に書き込むのを前提に作られてる様子。   * どうもminiaudioとしては、勝手にバッファを読んだりして勝手に書き込むのを前提に作られてる様子。
-  * となると、今までの「譜面を読んで再生」という部分についてもIFを作成して更新するという方法が必要そう。 +  * となると、今までの「譜面を読んで再生」という部分についても専用にインターフェース的な構造体を作成して更新するという方法が必要そう。
-  * Re:codeのプログラムは元々「特定のトラックの発音ON/OFFはバッファ(再生時間)依存にして」おり、再現性のある再生方式にはできてるかと思うけど、元々シングルスレッドで動くのを前提にした実装で作っていたので、オシレータの状態を残す等色々調整の必要がありそう。 +
-  * 逆に再現性のある方式にできないと辛いかなとは思う。 +
-  * 解決法として、バッファを書き込むとわかった時点でその分のバッファを作成するようにしないと辛そう。これはバッファ書き込みタイミングで内部で参照した時点で生成しておくのが安全そう。 +
-  * 初めて触るライブラリなのにハック前提で使うことになるとは思わなかった+
  
 ---- ----
-  * あとは専用のIF(構造体)をもってバッファを埋めるみたい。 +  * サイン波を出力するインタフェース(今回は構造体)の中身確認してみたところ、それほど問題なく改造できそうな気がしてきた 
-  * サイン波を出力するIFの中身確認してみたところ、それほど問題なく改造できそうな気がしてきた +  * 数日かけて単純に自前の波形、もしくはプログラム上の譜面から波形を書けるようなプログラムを書いてみる。 
-  * 数日かけて単純に自前の波形、もしくはプログラム上の譜面から波形を書けるようなプログラムを書いてみるかな。+ 
 +---- 
 +  * 以上を踏まえて、今日時点で一度Waveform(基本波形を出力する構造体)をもう1種類作るフリして魔改造を施して、作った構造体経由で時間管理することにした。(書いてて謎な内容だが) 
 +  * 要は基本波形が出力できる構造体と関数を新規に用意したヘッダに作成して、その中身を改造し始めたということ。 
 +  * 試しにタイムスケジュールを自前管理にして波形にアクセスしてみたところ、ほぼ問題なさそう。波形自体は他の関数らの参照のため、完全には手が出せていが、概ね問題ない 
 +  * 今後波形の変調やシーケンサからのデータ取得を行って、ライブコーディングツールとしての体裁を整えていく。 
 +  * なので作った関数経由でシーケンスにアクセスする等の対応が必要。 
 +  * あとコールバック関数で動いてるので、シーケンスを参照する場合1個の領域にアクセスせずにダブルバッファみたいに作る必要がありそう。こちらはMiniscript側の問題なので工夫すればどうにかなりそう。 
 +  * 初めて触るライブラリなのにハック前提で使うことになるとは思わなかった。 
2024/06/27.1719497442.txt.gz · 最終更新: 2024/06/27 23:10 by machiaworx