diff --git a/content/otopoiesis.md b/content/otopoiesis.md index 07ea0519..0c550991 100644 --- a/content/otopoiesis.md +++ b/content/otopoiesis.md @@ -186,17 +186,18 @@ 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{ + || `{ $content |> probe_to_track!(name) } } -fn master(tracks:[`float])->`float{ - `{ map(tracks,|t| $t ) |> sum } +fn master(tracks:[()->`float])->()->`float{ + Track!("master", ||`{ map(tracks,|t| t!() ) |> sum }) } -let dsp = Track!($master([t1,t2,t3,...])) +let dsp = master([t1,t2,t3...]) ``` +Trackの中でSliderとかが呼び出されると、そのスライダーはトラック内のパラメーターに属していて欲しいが、引数から順番に評価されるので、UI系の関数は全てサンク(レベル0)を受けて遅延評価するようなものでないとNG ### 他 @@ -213,6 +214,7 @@ let dsp = Track!($master([t1,t2,t3,...])) - 再生前(prepareToPlay) - 信号再生時(process) + ## 多段階計算と組み合わせる [[mimiumの多段階計算]]で、それなりに多段階計算の実装が間に合ってきた。