[obsidian] vault backup: 2025-10-16 18:28:16[
This commit is contained in:
@@ -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インスタンス間で共有される感じになるのかな
|
||||
|
||||
|
Reference in New Issue
Block a user