[obsidian] vault backup: 2025-10-16 18:28:16[

This commit is contained in:
2025-10-16 18:28:16 -04:00
parent b56577613b
commit 0df4565fea
6 changed files with 56 additions and 12 deletions

View File

@@ -146,13 +146,7 @@ fn dsp(){
[[Computation Expression]]使ってIOの値を`let!`でバインドしていく、とかの方がわかりやすいかも?
## MIDIディレイとかどうすんの
MIDI入力がトリガーになってクロージャのupvalueを書き換えることでCellの中身を書き換えるとなると、現実的にはオーディオスレッドとMIDIイベントスレッドを跨いでupvalueを操作することになる。`get_closure_mut`でクロージャをゲットして実行することはできるけど、その時には結局VMがオーディオスレッドにいるから、VMがクロージャ実行予約の命令を受け取るmpscチャネルを持っておいて、予約されたらオーディオブロックの頭で実行する、みたいな感じにする
```rust
fn delay<T>(stream:Stream<T>,time:float){
stream@(now+float)
}
```
Arcでupvalueを全部包んで、closed upvalueの中身をAtomicU64にする、みたいな方法もあるにはあるが、そうするとClosureのストレージはVMそのものというよりもVMインスタンス間で共有される感じになるのかな