Files
quartz-research-note/content/UGenの生成をスクリプトから命令列に変換する.md
松浦 知也 Matsuura Tomoya 9cad630a3c
Some checks failed
Build / build (push) Failing after 10m59s
[obsidian] vault backup: 2025-06-12 09:57:06[
2025-06-12 09:57:06 -04:00

37 lines
1.5 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やり取りするメモリマネジメントのタイミング制御だけが重要