[obsidian] vault backup: 2025-06-18 15:44:16[
All checks were successful
Build / build (push) Successful in 7m22s
All checks were successful
Build / build (push) Successful in 7m22s
This commit is contained in:
@ -4,3 +4,24 @@ date: 2025-06-12 09:29
|
|||||||
#computermusic #programming-language
|
#computermusic #programming-language
|
||||||
|
|
||||||
[GitHub - rbdannenberg/arco](https://github.com/rbdannenberg/arco)
|
[GitHub - rbdannenberg/arco](https://github.com/rbdannenberg/arco)
|
||||||
|
|
||||||
|
## メモ
|
||||||
|
|
||||||
|
オーディオレートの処理でも、サンプルごとの処理のパターンと、ブロックレベルの処理の2種類がある。
|
||||||
|
|
||||||
|
ブロックレベルの処理の場合は入力もブロック
|
||||||
|
|
||||||
|
UGenは基本的に[[参照カウント]]GC
|
||||||
|
|
||||||
|
ここが重要そう
|
||||||
|
|
||||||
|
> ポイントは、入力信号の種類が非常に多様である点です。constant、block、audioレート入力に加え、単一チャンネルとマルチチャンネル信号の組み合わせにより、潜在的に6種類の入力タイプが存在します。入力数がNの場合、`real_run`のバリエーションは6^Nに及ぶ可能性があり、自動コード生成であっても管理が困難になります。
|
||||||
|
> この問題を解決するために、2つの主要な戦略を採用しています。まず、入力と出力信号の複数チャンネルを反復処理するコードは、単一の`real_run`メソッドに実装されます。ただし、異なる種類の入力の処理は、`run_channel`メソッドを介した間接的なメソッド呼び出しにより個別化されています。run_channelは、対応するメソッドを指すメソッドです。例えば、`mult`では、2つのオーディオレートチャンネル(各々32浮動小数点数のベクトル)を乗算してオーディオレートチャンネルを生成する`chan_aa_a`メソッドと、オーディオレートチャンネルとブロックレートチャンネル(単一の浮動小数点数)を乗算する`chan_ab_a`メソッドがあります。変数`run_channel`は入力が変更されるたびに適切なメソッドに設定され、正しい個別化されたDSP計算が実行されます。
|
||||||
|
|
||||||
|
> 2 番目の戦略では、入力チャンネルを反復処理するロジックを、`run_channel` を呼び出す前に各入力に対して 1 つの加算命令に削減します。したがって、オーバーヘッドは出力チャンネルの数 x 入力信号の数になります。これは、アクセスおよび計算されるデータの総量に比べて非常に小さいです。
|
||||||
|
|
||||||
|
> 各 `run_channel` メソッドは、入力が入力ごとのサンプルポインタのアドレスから開始することを期待しています。ポインタは `run_channel`によって変更されることはありませんが、戻ると、サンプルポインタは入力ごとのストライド量だけインクリメントされます。シングルチャンネル入力の場合、各チャンネルで同じ入力を再利用したいので、ストライドは 0 です。マルチチャンネルオーディオ入力の場合、入力の次のチャンネルに進みたいので、ストライドは 2 です。入力と出力はメモリ内で連続しているため、ストライドはブロック長 (BL = 32) になります。マルチチャンネルのブロックレート入力の場合、1 ブロックにつき 1 サンプルしかないので、ストライドは 1 になります。最後に、定数入力 (メッセージによって更新できる値) は、ブロックレート信号と同じように扱われます。定数は、ストライドが 0 または 1 のシングルチャンネルまたはマルチチャンネルにすることができます。
|
||||||
|
|
||||||
|
> これらの戦略により、オーディオレート入力とブロックレート入力に異なるコードが必要であるため、組み合わせは 6^N バージョンの内部計算ループから 2^N バージョンに減少します。一部の入力をオーディオレートに制限することで、これをさらに制限することができます。たとえば、ブロックレート信号にオーディオローパスフィルターを適用することはあまり意味がありません。
|
||||||
|
|
||||||
|
[arco/doc/design.md at main · rbdannenberg/arco · GitHub](https://github.com/rbdannenberg/arco/blob/main/doc/design.md)
|
@ -1,4 +1,4 @@
|
|||||||
---
|
---
|
||||||
date: 2025-06-14 09:38
|
date: 2025-06-14 09:38
|
||||||
---
|
---
|
||||||
#stub
|
#programming-language
|
||||||
|
@ -18,7 +18,7 @@ sine1 = nil
|
|||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
[[SuperCollider]]でも似たような話だけど、ライブコーディング的なシステムを作ろうと思うとここを定式化するのが重要なのでは
|
[[SuperCollider]]でも似たような話だけど、ライブコーディング的なシステムを作ろうと思うとこういう制御構造→命令列への変換を定式化するのが重要なのでは
|
||||||
|
|
||||||
ジェネラティブUGenネットワークグラフの生成もここに含まれる
|
ジェネラティブUGenネットワークグラフの生成もここに含まれる
|
||||||
|
|
||||||
@ -34,3 +34,5 @@ sine1 = nil
|
|||||||
|
|
||||||
インスタンス化/IOやり取りするメモリマネジメントのタイミング制御だけが重要
|
インスタンス化/IOやり取りするメモリマネジメントのタイミング制御だけが重要
|
||||||
|
|
||||||
|
[[Kronos]]におけるコンパイラ-インタプリタを繋げる役割としての[[継時再帰]]
|
||||||
|
|
||||||
|
16
content/mimiumにおけるIO制御.md
Normal file
16
content/mimiumにおけるIO制御.md
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
---
|
||||||
|
date: 2025-06-18 15:42
|
||||||
|
---
|
||||||
|
#mimium
|
||||||
|
|
||||||
|
この辺に応用する用。
|
||||||
|
|
||||||
|
[[mimiumでMIDIインプットを実装]]
|
||||||
|
|
||||||
|
[[mimiumのファイルIO]]
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
[[Kronos]] Meta-Sequencerに近い仕組みを、IOモナドなしで実装する(正格評価なのでそこまでやらんでいいはず)
|
||||||
|
|
||||||
|
|
@ -5,7 +5,7 @@ date: "2023-10-13T11:43:40+0900"
|
|||||||
|
|
||||||
松浦 知也(SoundMaker)
|
松浦 知也(SoundMaker)
|
||||||
|
|
||||||
音に関わるメディア・インフラストラクチャ技術を実践を交え批評的にデザインする活動を「音楽土木工学」と称して研究。ハウリングだけで音を出す自作電子楽器「[[Exidiophone]]」などを用いての演奏活動、音楽プログラミング言語「mimium」の設計と開発のほか、近年はDIY半導体の制作に取り組む。分担執筆に「クリティカル・ワード ポピュラー音楽」(フィルムアート社、2022年)。1994年生まれ。2022年九州大学 大学院芸術工学府 博士後期課程修了。同年より東京藝術大学 芸術情報センター 特任助教。
|
音に関わるメディア・インフラストラクチャ技術を実践を交え批評的にデザインする活動を「音楽土木工学」と称して研究。ハウリングだけで音を出す自作電子楽器「[[Exidiophone]]」などを用いての演奏活動、音楽プログラミング言語「[[mimium]]」の設計と開発のほか、近年はDIY半導体の制作に取り組む。分担執筆に「クリティカル・ワード ポピュラー音楽」(フィルムアート社、2022年)。1994年生まれ。2022年九州大学 大学院芸術工学府 博士後期課程修了。同年より東京藝術大学 芸術情報センター 特任助教。
|
||||||
|
|
||||||
Matsuura Tomoya is SoundMaker: who makes a sound, makes instruments to make a sound, and makes environments to make the instruments. He calls his own research area “Civil Engineering of Music”, which designs socio-technical infrastructure around sound and music critically through practices. He develops “mimium” a programming language for music(2019~), and does performances with “Exidiophone”, an electro-acoustic instrument that makes sound with only an audio-feedback. Currently working as Project Assistant Professor at Art Media Center in Tokyo University of the Arts.
|
Matsuura Tomoya is SoundMaker: who makes a sound, makes instruments to make a sound, and makes environments to make the instruments. He calls his own research area “Civil Engineering of Music”, which designs socio-technical infrastructure around sound and music critically through practices. He develops “mimium” a programming language for music(2019~), and does performances with “Exidiophone”, an electro-acoustic instrument that makes sound with only an audio-feedback. Currently working as Project Assistant Professor at Art Media Center in Tokyo University of the Arts.
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user