ユーザ用ツール

サイト用ツール


2024:07:08

差分

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

この比較画面へのリンク

次のリビジョン
前のリビジョン
2024:07:08 [2024/07/08 10:54] – 作成 machiaworx2024:07:08 [2024/07/12 06:45] (現在) machiaworx
行 2: 行 2:
  
 ===== プログラム ===== ===== プログラム =====
 +  * 進捗
 +
 +  - ファイル読み込み(最初は同期、可能なら非同期読み込み)\\ 完了。ファイルのセーブ状況検知・UI改善予定
 +  - Miniscriptプログラムのコンパイル\\ 完了、ツール上も動作を確認
 +  - 組込み関数の追加\\ 未済、機能検証中
 +  - コンパイルしたデータとサウンドの譜面を紐づける実装\\ 未済
 +  - ADSR、フィルタの実装、加えてエフェクトの実装\\ 未済
 +
   * ライブコーディングツール、まずはテスト的にシーケンス切り出し処理を実装してみる。   * ライブコーディングツール、まずはテスト的にシーケンス切り出し処理を実装してみる。
   * 現在作成中のツールで実装するのでもいいけど複合要因で「どこが間違っているのか分からない」ケースが発生しうるので、できる限り最初から切り分けて考えられるようにした。   * 現在作成中のツールで実装するのでもいいけど複合要因で「どこが間違っているのか分からない」ケースが発生しうるので、できる限り最初から切り分けて考えられるようにした。
行 10: 行 18:
   * まずnote_info構造体を作り、複数の情報を保存できるようにしておく。   * まずnote_info構造体を作り、複数の情報を保存できるようにしておく。
   * 理由は「音程」「譜面の長さ」「譜面単位の現在の再生位置」「ネスト構造が作られているかどうか」等、意外と判断する情報が多いから。   * 理由は「音程」「譜面の長さ」「譜面単位の現在の再生位置」「ネスト構造が作られているかどうか」等、意外と判断する情報が多いから。
-  * C#だ1回ずつオシレータ・エンベロー情報取得するうにしてたけど、無駄処理になるかもうで全部まとめて取得でもいいてる。もしく計算時に時間参照して生成いいかなと。+  * 移植は終わって、まもに動いてるよう。 
 +  * 後述の問題があって、確認するのは後になりそうだが。 
 + 
 +===== ログラム2 ===== 
 +  * 午後に問題勃発。 
 +  * 仕組み上、MiniScriptから変数別途保存領域に確保することが困難で、これをどやって保存したらいいのか、という問題が発生した。 
 +  * なお、これはC++版でのみ発生で、C#ついては簡単に保存可能なことを特記しておく。(だからこそ最初C#版で作れ) 
 + 
 +---- 
 +  * MiniscriptはVMを確保して動かしており、変数はそのVM紐づく形で保存領域を確保している。 
 +  * VMの他に別途staticメモリ領域を確保しても、Miniscriptで利用す型を定義する場合基本的にはアドレスし保存されてらず、実体保存および参照が正常に行えないことになる。 
 +  * つり、VMで得た値を簡単な方法でVM外に保存するのが困難いうこと。 
 +  * 勿論オブジェクトとの連携は元々可能だが、これは「Miniscriptの実行中に参照する」だったり、Context(実行処理)内に同じクラスへアクセスすることが前提になる。今回のケースではスクリプト実行処理の外でのアクセスが必要になるた、この連携が面倒になっている。 
 + 
 +---- 
 +  * 解決法 
 +  * VMの機能上グローバル変数用のマップ(文字列と値のペア)を持ってるため、この領域に保存と参照可能になっる。 
 +  * 今回作成中のアプリの形式でコンパイルと実行を一個の処理で行う事から、再コンパイル時にグローバル変数再度登録するので、アクセスできる状態は継続できそう(初期化してないはずなの) 
 +  * よって変数には別途確保せずVM上のグローバル変数のマップから参照する方法が一番確実。 
 +  * この調査のためにDiscordを延々調べてようやくたどり着たとう。すげえ時間かったわ。 
 +  * あとでMiniscriptのWikiに情報アップしておく予定。組み込みする人だと必要に思うし
  
 ---- ----
-  * 文字列コピーも必要あればしなきゃなと思った +  * 16時頃に問題に遭遇、途中寝てたけどそこら解決まで色々調べてい 
-  * https://marycore.jp/prog/cpp/convert-string-to-char/+  * こういうのがあると情報がない分面倒だなと思う。
2024/07/08.1720403698.txt.gz · 最終更新: 2024/07/08 10:54 by machiaworx