[obsidian] vault backup: 2025-06-12 09:57:06[
Some checks failed
Build / build (push) Failing after 10m59s

This commit is contained in:
2025-06-12 09:57:06 -04:00
parent 6eac3bb631
commit 9cad630a3c
4 changed files with 90 additions and 0 deletions

6
content/Arco.md Normal file
View File

@ -0,0 +1,6 @@
---
date: 2025-06-12 09:29
---
#computermusic #programming-language
[GitHub - rbdannenberg/arco](https://github.com/rbdannenberg/arco)

View File

@ -306,5 +306,45 @@ MaxとPythonの相性悪い問題とはいえここでもPythonとOSCで連
[[Wekinator]]みたくオンライン学習できるのが強み
## Arco : A Flexible Audio Processing Framework
[[Roger Dannenberg]]
ブロックサイズをあげていった時に、オールオーディオレートで処理した時の処理負荷の谷が8サンプルの時に来る
[[O2]]メッセージのフォーマットだとこれで、
```
/arco/fmosc/new ID chans input1 input2 ...
/arco/free ID
```
ハイレベルのAPIだとこう
```
sine1 = sine(440,0.01).play()
sine1=nil
```
リアルタイムのUGen増やす、減らすもできる
[[Nick Collins]]からの質問SuperColliderとの違い
SCはコンパイルされたUGenどの順番で実行されるかが一列にソートされて順番に実行されていくけど、Arcoは必ずしもそうじゃない部分的には並列化もできるのかな
遅いレートのイベントストリームの取り扱いをどうすればいいんだろう
うーん、こう見ると、[[UGenの生成をスクリプトから命令列に変換する]]のが重要なのかな
## Functional Iterative Swing: An Open Framework for Exploring Warped Ramps, Exponential Rhythm, and Euclidean Shuffle
スイングを数学的に考えよう
リズムのグリッドを切るための直線的なライン(`y=x`)があったとして、それを`y = n^x`で捻じ曲げていくとスイングに近いものが作れるのではないか
## A Bidirectionally Stacking Loudspeaker Enclosure Design for Wave Field Synthesis

View File

@ -0,0 +1,8 @@
---
date: 2025-06-12 09:28
---
#person #stub
[[Nyquist]]
[[Arco]]

View File

@ -0,0 +1,36 @@
---
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やり取りするメモリマネジメントのタイミング制御だけが重要