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