Files
quartz-research-note/content/UGenの生成をスクリプトから命令列に変換する.md
松浦 知也 Matsuura Tomoya cbef2fda11
All checks were successful
Build / build (push) Successful in 7m22s
[obsidian] vault backup: 2025-06-18 15:44:16[
2025-06-18 15:44:16 +09:00

1.6 KiB
Raw Blame History

date
date
2025-06-12 09:24

#memo #programming-language #sound

Arcoで行われているメッセージング

/arco/fmosc/new ID chans input1 input2 ...
/arco/free ID

ハイレベルのAPIだとこう

sine1 = sine(440,0.01).play()
sine1 = nil

SuperColliderでも似たような話だけど、ライブコーディング的なシステムを作ろうと思うとこういう制御構造→命令列への変換を定式化するのが重要なのでは

ジェネラティブUGenネットワークグラフの生成もここに含まれる

すでに作られたC++のシンセとの統合というのが魅力ではある

ここがうまく定式化すれば、必要な部分だけダイナミックインタラクションできて、他はJITコンパイルで効率化できるのではないか

まーでも、どのみちsine1=nilみたいな命令型の構造がハイレベルにまで入り込まないと無理なんだよな(グローバルだけ再代入を許せばそれでいいのかも)

mimiumに生かそうと思うと、UGenに相当するものをダイナミックに作る・消去する工程を命令型でうまく表現できればいいんだけどなあ

実際には使われてないアウトプットされてないUGenもインスタンス化されてしまうので、これを遅延実行するみたいな仕組みがあればいいのかな

インスタンス化/IOやり取りするメモリマネジメントのタイミング制御だけが重要

Kronosにおけるコンパイラ-インタプリタを繋げる役割としての継時再帰