diff --git a/content/otopoiesis.md b/content/otopoiesis.md index 36634857..24ba1d5b 100644 --- a/content/otopoiesis.md +++ b/content/otopoiesis.md @@ -84,9 +84,7 @@ type Region = { } fn region(start,dur,content:(({start,dur})->float))->Region{ - let start_p = param_clip_start(start) - let dur_p = param_clip_end(dur) - let wave = render_mono(||content(start_p(),dur_p())) |> probe_clip_array + let wave = render_mono(||content(start,dur)) |> probe_array { start = start_p, dur = dur_p, @@ -222,7 +220,7 @@ Trackの中でSliderとかが呼び出されると、そのスライダーはト UIツリー系の評価は、 - 個別のパラメーターを評価時Stackに積むような処理 -- TrackやリージョンではStackを消費しグループ化して自分のところに配置、トラックのUIを配置してStackに積む +- TrackやリージョンではStackを消費しグループ化して自分のデータを構築(data::Trackの方)、トラックのUIを配置してStackに積む - トップレベルでスタックを全て消費しUIをプロジェクト全体のUI構築 UI系の関数は全てサンク(レベル0)を受けて遅延評価するようなものでないとNG @@ -242,8 +240,19 @@ Trackの直下でTrackが呼ばれた場合、フォルダトラックとして これ、たとえばClipはTrackの下かClipの下かのいずれかでしか使えないっつーことになるのでなんか新たに型システムで縛れる気がしてきたなあ +Sliderが呼び出された時、初期値を変数参照にするのはあんまり意味がないことになる(リテラルで固定して、それを双方向プログラムしたい) +## トラックの追加やリージョンの追加のアクション + +要するにUndo可能なアクション + +- 最悪、テキストに関してはdiff取って保存しておけば良いんでは +- 「新規トラックの追加」みたいなアクションをどうするか +- GUIのViewモデルからシンタックスツリーに戻すことはできない(マクロ展開後の結果だから) +- Projectに与える配列に対してNodeの参照を持っていればなんとかなるか? +- + ### 他