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

39 lines
1.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
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]]におけるコンパイラ-インタプリタを繋げる役割としての[[継時再帰]]