2024:07:04
差分
このページの2つのバージョン間の差分を表示します。
両方とも前のリビジョン前のリビジョン次のリビジョン | 前のリビジョン | ||
2024:07:04 [2024/07/04 23:20] – machiaworx | 2024:07:04 [2024/07/05 06:41] (現在) – machiaworx | ||
---|---|---|---|
行 7: | 行 7: | ||
- 組込み関数の追加 | - 組込み関数の追加 | ||
- コンパイルしたデータとサウンドの譜面を紐づける実装 | - コンパイルしたデータとサウンドの譜面を紐づける実装 | ||
- | - ADSR、フィルタの実装 | + | - ADSR、フィルタの実装、加えてエフェクトの実装 |
- | * 上記のうち、1.と2.については完了。1.は名前を入力すれば読み込めるようにしたのであとはGUIと処理を紐づければ対応かのう。2.については手こずったけどどうにかした。下記参照。 | + | * 上記のうち、1.と2.については完了。1.は名前を入力すれば読み込めるようにしたのであとはGUIと処理を紐づければ対応可能。2.については手こずったけどどうにかした。下記参照。 |
===== プログラム2 ===== | ===== プログラム2 ===== | ||
行 15: | 行 15: | ||
* いや何がって、以下の対応。 | * いや何がって、以下の対応。 | ||
- スクリプト言語で使うString型とC++のstring型が別物。内容に少し相違があるため違いを理解するのに時間がかかった。言語に紐づいているため、下手に除去もできないけど、かと言って普通のstring型と使い勝手が違うので、どうしても両方使う必要がでてきてしまった。 | - スクリプト言語で使うString型とC++のstring型が別物。内容に少し相違があるため違いを理解するのに時間がかかった。言語に紐づいているため、下手に除去もできないけど、かと言って普通のstring型と使い勝手が違うので、どうしても両方使う必要がでてきてしまった。 | ||
- | - スクリプト言語のログ出力のタイミングがおかしく、Printf等の関数を実行しないとログ出力がされないという困った仕様。このため、「デバッガのフックが特定の処理実行していないとできない」という謎の挙動してくれやがった。なのでコンソール出力は見えないようにして裏で出力するようにした。処理としては重いんだけど、連続で実行するわけでもないので影響ないと思いたい。余裕があれば削除したい。別の方法でストリームを流す処理ができればいいんだが。 | + | - スクリプト言語のログ出力のタイミングがおかしく、Printf等の関数を実行しないとログ出力がされないという困った仕様。このため、「デバッガのフックが特定の処理を実行していないとできない」という謎の挙動してくれやがった。なのでコンソール出力は見えないようにして裏で出力するようにした。処理としてはデバイス取得も絡んで重いんだけど、連続で実行するわけでもないので影響ないと思ってる。余裕があれば削除したい。別の方法でストリームを流す処理ができればいいんだが。 |
- | - これはどちらのstring型もそうなんだけど、clearやTrimを行っても即座にデータが消えるわけではない(ウィークポインタとかつかってんだろか)ので、staticでもたせてるstringクラスを呼び出そうとしてうまく更新がされないことが発覚したため、メモリ確保消去を自分で行うことにした。 | + | - これはどちらのstring型もそうなんだけど、clearやTrimを行っても即座にデータが消えるわけではない(ウィークポインタとかつかってんだろか)ので、staticでもたせてるstringクラスを呼び出そうとしてうまく更新がされないことが発覚したため、メモリ確保消去を自分で行うことにした。ポインタだけ最初確保してnew/ |
- | - そもそもの話として、文字列をうまく開放してくれないケースがあるみたいなので、ポインタだけ最初確保してnew/ | + | |
- 間違えてスクリプトのソースコードをList< | - 間違えてスクリプトのソースコードをList< | ||
* ということで久々に原因が分かりづらいバグで仕事が終わったあとずっと対応してた。5-6時間くらいデバッグしたりサードのライブラリの中身をハックしたりstringの仕様について調べたりしてた。 | * ということで久々に原因が分かりづらいバグで仕事が終わったあとずっと対応してた。5-6時間くらいデバッグしたりサードのライブラリの中身をハックしたりstringの仕様について調べたりしてた。 | ||
+ | |||
+ | ===== プログラム3 ===== | ||
+ | * MiniScriptのC++版では、Restartという関数が使うことができない。 | ||
+ | * IFは用意してあるけど肝心の実装がなかった。ソースコードを読んで発覚した。 | ||
+ | * こちらで作ってPR上げようかと思うくらいだが、スタックを戻す方法を調べてからの方がよさそうだ。 | ||
+ | * どうもC# | ||
+ | * ただC++ではスタックは配列にしているため、雑に配列の数値指定してあげて、みたいなのでもよさそうな気がしてる。 | ||
===== プログラム参考資料 ===== | ===== プログラム参考資料 ===== | ||
行 29: | 行 35: | ||
* https:// | * https:// | ||
* https:// | * https:// | ||
+ | * https:// | ||
+ | * https:// | ||
+ | * https:// | ||
+ | * https:// | ||
+ | * https:// | ||
2024/07/04.1720102840.txt.gz · 最終更新: 2024/07/04 23:20 by machiaworx