[obsidian] vault backup: 2025-09-01 17:17:45[
All checks were successful
Build / build (push) Successful in 11m19s
All checks were successful
Build / build (push) Successful in 11m19s
This commit is contained in:
@@ -186,18 +186,25 @@ fn track_regions(regions:[{start:float,dur:float,generator:()->float}]){
|
||||
let content = `{ phasor(Param!("freq",20,20000)) }
|
||||
|
||||
|
||||
fn Track(name:string, content:()->`float)-> ()->`float{
|
||||
|| `{ $content |> probe_to_track!(name) }
|
||||
fn Track(name:string, content:()->`float)->`float{
|
||||
`{
|
||||
//stack is cleared and new track ui is placed on top of the stack
|
||||
$content |> probe_to_track!(name)
|
||||
}
|
||||
}
|
||||
|
||||
fn master(tracks:[()->`float])->()->`float{
|
||||
Track!("master", ||`{ map(tracks,|t| t!() ) |> sum })
|
||||
fn master(tracks:[`float])->`float{
|
||||
Track!("master", `{ lift_array(map(tracks,|t| $t ) ) |> sum })
|
||||
}
|
||||
let dsp = master([t1,t2,t3...])
|
||||
|
||||
```
|
||||
|
||||
Trackの中でSliderとかが呼び出されると、そのスライダーはトラック内のパラメーターに属していて欲しいが、引数から順番に評価されるので、UI系の関数は全てサンク(レベル0)を受けて遅延評価するようなものでないとNG
|
||||
Trackの中でSliderとかが呼び出されると、そのスライダーはトラック内のパラメーターに属していて欲しいが、引数は内側から評価されてしまう=sliderの評価の方が先に来てしまう
|
||||
|
||||
UIツリー系の評価は、常にStackに積むような処理にしておいて、TrackのところではStackを消費し新たなUIをスタックに積むようにする、そして最後にトップレベルでスタックを全て消費しUIを構築、みたいな感じかな、これならサンクで包む必要もなし?
|
||||
|
||||
UI系の関数は全てサンク(レベル0)を受けて遅延評価するようなものでないとNG
|
||||
|
||||
|
||||
### 他
|
||||
|
Reference in New Issue
Block a user