diff --git a/content/mimiumと多段階計算.md b/content/mimiumと多段階計算.md index ab410b45..6a0b72c5 100644 --- a/content/mimiumと多段階計算.md +++ b/content/mimiumと多段階計算.md @@ -29,5 +29,31 @@ fn fbdelay(max_time){ } ``` -- +- こういうfbdelayを2個以上つかうときのコードはどうなるのかな + - というか、fbdelayで生成されたコードをMIRに持ってくときにどうなるのか? + - Value型を単なるCodeじゃなくてDelayとして特別な値にリダクションすればいいのかな + +[[otopoiesis]]でパラメーターを生成するのにも使える? + +```rust +fn synth(freq,gate){ + osc(freq)*gate +} + +fn synth_module(freq:()->float,gate:()->float){ + `||{ synth(freq(),gate()) } +} +``` + +これのモジュールを評価すると、freq,gateがUIに現れるという感じでできるのかな(そして、ここでUIの範囲制限をするためにも数値型が範囲を持っていた方がいいということになりそう) + +うーん、サンクを手動で使わず表現できるような何かが欲しいなあ + +```rust +fn wrap_module(param:Param, synth:(Param)->float ){ + `{ | | synth(param |> invoke) } +} +``` +Param型はinvokeでuiからの値を取れる、サンクをアンラップするようなメソッドを持つ型クラスに属している、という感じで、ジェネリクスが実装出来たらいけそうね +