[obsidian] vault backup: 2023-11-15 16:09:00[
This commit is contained in:
parent
a349459a08
commit
acfd42bc36
7
content/ADX.md
Normal file
7
content/ADX.md
Normal file
@ -0,0 +1,7 @@
|
||||
#audiomiddleware #gameaudio #programming #sound
|
||||
|
||||
日本の会社CRIWAREが作ってる老舗オーディオミドルウェア
|
||||
|
||||
国内のシェアはまあまあ大きい
|
||||
|
||||
https://game.criware.jp/products/adx/
|
@ -15,9 +15,23 @@ https://chci.pages.dev/aist-seminar
|
||||
|
||||
その上で、現在私が開発している関数型プログラミングとDAWを統合したソフトウェア[[otopoiesis]]について簡単に紹介します。
|
||||
|
||||
## 自己紹介
|
||||
## 自己紹介(ここまで1分)
|
||||
|
||||
## 音楽における”Direct Manipulation”
|
||||
mimiumとか
|
||||
|
||||
## 音楽とプログラミングの歴史(4分)
|
||||
|
||||
要点:音楽、音声信号をコンピューター上で表現するためには、音にまつわるデータをどの様に定義するか自体が重要だが、UGen以外のモデルは検討されてきたのだろうか?
|
||||
|
||||
### 1950s: 音響遅延線メモリ、デバッグのための音の利用、転じてメロディの実現(hooter)
|
||||
|
||||
### 1960s: MUSIC / UGenパラダイムの登場、モジュラーシンセサイザーとの等価性
|
||||
### 1970s: [[GROOVE]] / Alan Kay, Metamedia
|
||||
### 1980s: UGenのハードウェア化
|
||||
|
||||
### 1990s Digidesign Accelarator
|
||||
|
||||
## 音楽における”Direct Manipulation”(4分)
|
||||
|
||||
ビジュアルの場合は、出力される画像・映像を確かに直接操作している。音楽制作ソフトウェアにおけるGUIは一体何を「直接」操作しているのか?
|
||||
|
||||
@ -28,11 +42,33 @@ https://chci.pages.dev/aist-seminar
|
||||
|
||||
- ビジュアルプログラミングはビジュアルで表現できる程度の複雑さまでしか表現できない
|
||||
- データの再帰的抽象化ができない
|
||||
- 例えば、Maxのようなデータフロープログラミングはデータフローの中にパッチそのものを流すことはできない
|
||||
- [[Kronos]]のビジュアルエディター
|
||||
- 例えば、Maxのようなデータフロープログラミングはデータフローの中にパッチそのものを流すことはできない[^kronos]
|
||||
|
||||
|
||||
## 音楽とプログラミングの歴史
|
||||
[^kronos]: [[Kronos]]のビジュアルエディターVeneerとかはlambdaオブジェクトが存在するなど、それに近しいことを実現してはいる。
|
||||
|
||||
## 音楽プログラミングとデータ抽象 (3分)
|
||||
|
||||
- プログラマブルなDAWはいくつかある(例えば[[Reaper]]、[[Ardour]]など)。しかし新しいデータ型を作れるわけではない・・・つまりオートメーションである。
|
||||
- また、CSoundにDAWっぽいフロントエンドを載せたプロジェクトとして[[Blue]]などがある。
|
||||
- しかし、CSound自体のメタ表現力はそんなに高くはない
|
||||
- タイムラインベースの汎用プログラミング環境もある。例えば[[OSSIA Score]]や[[IanniX]]
|
||||
- しかし、これもデータの抽象化そのものができるかというと
|
||||
- インタラクティブな音楽を作るためのものとして、ゲーム音楽用のオーディオミドルウェアというのもある。[[Wwise]]や[[ADX]]、[[Fmod]]
|
||||
- しかし、どっちかというとこれもDAWと連携する方向だよね
|
||||
|
||||
### グラフベースからの脱却
|
||||
|
||||
### DAWのデータフォーマット
|
||||
|
||||
https://github.com/bitwig/dawproject
|
||||
|
||||
例えばDAWprojectの様なオープン化を目指したものが出てきている
|
||||
|
||||
昔ながらのもので言えば、OMFやAAF(オーディオ・ビデオデータのみ)とSMF(シーケンスデータ、複数のMIDIデータの集合)とか
|
||||
|
||||
Program as a Format - MPEG-Structured Audio(CSoundベースの音源配布フォーマット)
|
||||
|
||||
|
||||
## [[otopoiesis]]について
|
||||
|
||||
- 音響遅延線メモリ、デバッグのための音の利用、転じてメロディの実現(hooter)
|
||||
- UGenパラダイムの登場、モジュラーシンセサイザーとの等価性
|
||||
|
5
content/Fmod.md
Normal file
5
content/Fmod.md
Normal file
@ -0,0 +1,5 @@
|
||||
#audiomiddleware #gameaudio #programming #sound
|
||||
|
||||
日本では国産の[[ADX]]海外では人気
|
||||
|
||||
https://www.fmod.com/
|
13
content/GROOVE.md
Normal file
13
content/GROOVE.md
Normal file
@ -0,0 +1,13 @@
|
||||
#computermusic
|
||||
|
||||
"GROOVE—a program to compose, store, and edit functions of time" (1970)
|
||||
|
||||
https://dl.acm.org/doi/10.1145/362814.362817
|
||||
|
||||
[[Max Mathews]]によるリアルタイム信号制御装置。
|
||||
|
||||
専用のコントローラーを使ってジェスチャーを元に波形を記録した上で、専用の言語でそれを加工したりモジュレーションしたりして、DACを通してモジュラーシンセの制御信号として使用したりする。
|
||||
|
||||
オーディオレートには非対応。
|
||||
|
||||
![](img/groove_fig5.png)
|
5
content/IanniX.md
Normal file
5
content/IanniX.md
Normal file
@ -0,0 +1,5 @@
|
||||
#programming #sound
|
||||
|
||||
https://www.iannix.org/en/
|
||||
|
||||
ヤニス・クセナキスのUPICが基になっているソフト
|
@ -2,4 +2,8 @@
|
||||
|
||||
https://kronoslang.io/
|
||||
|
||||
[[Veneer]]というWebm
|
||||
[[Veneer]]というWeb向けビジュアルエディタがある
|
||||
|
||||
[[System-FΩ]]という高階ラムダ計算をベースにしているため、めちゃくちゃメタプログラミング能力が高い。
|
||||
|
||||
例えば[[Faust]]では項書き換え系マクロとして実施されていたプロセッサ自体のメタ出力も一つの言語体系で書ける
|
||||
|
7
content/OSSIA Score.md
Normal file
7
content/OSSIA Score.md
Normal file
@ -0,0 +1,7 @@
|
||||
#programming
|
||||
|
||||
汎用OSCシーケンサーみたいなやつ。if文でイベントの位置をジャンプするみたいな、インタラクティブミュージックでいう横の遷移みたいなのができる
|
||||
|
||||
元はi-score(interactive score)
|
||||
|
||||
https://ossia.io/
|
1
content/Veneer.md
Normal file
1
content/Veneer.md
Normal file
@ -0,0 +1 @@
|
||||
#programming-language
|
10
content/Wwise.md
Normal file
10
content/Wwise.md
Normal file
@ -0,0 +1,10 @@
|
||||
#audiomiddleware #gameaudio #programming #sound
|
||||
|
||||
https://www.audiokinetic.com/ja/products/wwise/
|
||||
|
||||
オーディオミドルウェアの中では最もシェアが大きい
|
||||
|
||||
最近はSony傘下だったはず
|
||||
|
||||
全部Visual Studio C++で開発されてて、Mac版は[[Wine]]で提供されてたりして色々やばい。
|
||||
なんならWineの開発チームにこの人たちが加わってるレベルで気合いが入っている
|
BIN
content/img/groove_fig5.png
Normal file
BIN
content/img/groove_fig5.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 134 KiB |
@ -19,7 +19,7 @@ TTCはジェネリックなタイプ`A`に対して、以下の3つの型コン
|
||||
type time = Real;
|
||||
//時間に紐づいたイベント。MIDIノートとか
|
||||
struct Event<A>{v:A, t:time}
|
||||
//有限ベクトル。オーディオファイルとか
|
||||
//有限ベクトル。オーディオクリップとか
|
||||
type Vec<A> = std::Vec<A>
|
||||
//無限ベクトル、またはストリーム。1論理時刻毎にA型のものを返す漸化式(内部状態を持つかもしれない)
|
||||
type iVec<A> = Box<dyn FnMut()->A>
|
||||
@ -67,7 +67,11 @@ let Track2 = Generator::SineWave(Track1,Constant(1.0),Constant(0.0));
|
||||
CubaseにおけるインストゥルメントトラックとかはMIDIトラック+シンセサイザーの合成なので、
|
||||
`Track<NOTE,NOTE>`に`Vec<NOTE>->iVec<Audio>`みたいなのを適用する関数としてあらわせ、、、る?
|
||||
|
||||
## 考えうるユースケース
|
||||
|
||||
- ドラッグしてるオブジェクトのスナップ対象は例えばCubaseなら固定のグリッドor既存のイベントorその両方とかだけど、例えばグリッドをジェネラティブに生成できる
|
||||
- もちろんクオンタイズにも使える
|
||||
- 非破壊的クォンタイズ。録音されたと
|
||||
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user