[obsidian] vault backup: 2025-11-06 19:34:06[
All checks were successful
Build / build (push) Successful in 10m28s

This commit is contained in:
2025-11-06 19:34:06 -05:00
parent ddbc8b6e41
commit 085458dcc2
2 changed files with 26 additions and 1 deletions

View File

@@ -31,7 +31,7 @@ Faust[@Orlarey2009]やMaxのGen、のように、サンプル単位レベルで
こうした課題に対し、Reachは関数型のUnit Generatorを組み合わせて信号処理を記述する言語で、ソースコードの変更差分を解析して信号処理の内部状態を可能な限り保持する仕組み:**Incremental Functional Reactive Programming**(IcFRP)を提案している[@reach_incremental_2013]。この仕組みは、SuperColliderのJITLibのようなシステムと比べるとユーザーが現在の信号処理インスタンスに対して削除や追加などの命令を行うのではなく、常にその時のソースコードに望む信号処理を書けば必要な状態の更新はランタイム側が自動で担ってくれるという点で、ユーザーの演奏中の思考モデルが大きく異なると言える。
ただ、実装としては、ソースコードの単なるテキスト差分の解析では、複数の変更のパターンの可能性を絞り込めないため、テキストエディタEmacsの拡張として操作の履歴を取得することで実装しているため、実装は複雑なものと言える。
ただ、Reachによる実装としては、ソースコードの単なるテキスト差分の解析では、複数の変更のパターンの可能性を絞り込めないため、テキストエディタEmacsの拡張として操作の履歴を取得することで実装しているため、実装は複雑なものと言える。
本稿では、筆者が開発してきた関数型音楽プログラミング言語mimiumに、IcFRPの考え方を応用したライブコーディングシステムを提案する。
@@ -64,6 +64,12 @@ mimiumでは高階関数などを使うことによって任意の数のフィ
実用的な例では、Scala 3でのマクロや、関数型組版処理エンジンSaTysFi[@suwa2024]のように、言語内DSLを型安全にライブラリとして実装することを想定しているものがある。
オーディオ処理においては、こうした計算のステップ分けは、直感に照らし合わせれば、コンパイル時に実行される信号処理のルーティングを決めるメタ操作と、実際の信号を生成するときに実行される処理の2段階に分けることができる。
### シンタックス
## コールツリーの解析
- クロージャ