[obsidian] vault backup: 2023-08-20 10:37:31[
This commit is contained in:
		@@ -11,6 +11,45 @@ DAWをプログラマブルにする試み
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
---
 | 
					---
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## 構造
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					いわゆるオーディオプラグインのように、各コンポーネントがUI+オーディオ処理を記述していて、それをツリー状に組み合わせていくのではなく、プロジェクトツリー、UIのツリー、オーディオ処理用の構造体とそれぞれツリーができ、全てのノードが対応づけされている
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					コードの例(モジュレーションされているサイン波+ディレイ)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					project{
 | 
				
			||||||
 | 
						track: [
 | 
				
			||||||
 | 
							delay{
 | 
				
			||||||
 | 
								sinosc{
 | 
				
			||||||
 | 
								freq:
 | 
				
			||||||
 | 
									sinosc:{
 | 
				
			||||||
 | 
										freq: float{20..20000,1000,"freq"}
 | 
				
			||||||
 | 
										phase: 0.0},
 | 
				
			||||||
 | 
								phase: 0.0
 | 
				
			||||||
 | 
								},
 | 
				
			||||||
 | 
							time: 1000
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						]
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					UIは基本的にプロジェクトツリーの`Param`型と、UIだけで使われる`State`をそれぞれ可変参照として持つ
 | 
				
			||||||
 | 
					(Reference カウントするのではなく、有限なライフタイムを持つ可変参照で作る)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```rust
 | 
				
			||||||
 | 
					struct UI<'a>{
 | 
				
			||||||
 | 
						param: &'a mut Param,
 | 
				
			||||||
 | 
						state: &'a mut State
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					impl<'a> egui::Widget for UI<'a>{
 | 
				
			||||||
 | 
						fn ui
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					eguiはimmiditate モードだから毎フレームこのUI型を生成している(egui標準のSliderとかもこの方式)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
## 開発メモ
 | 
					## 開発メモ
 | 
				
			||||||
 | 
					
 | 
				
			||||||
クリップのサムネイル生成はgeneratorじゃなくてregion側でやろう
 | 
					クリップのサムネイル生成はgeneratorじゃなくてregion側でやろう
 | 
				
			||||||
@@ -18,3 +57,4 @@ DAWをプログラマブルにする試み
 | 
				
			|||||||
fileplayerのui実装もgeneratorからregionに移そう
 | 
					fileplayerのui実装もgeneratorからregionに移そう
 | 
				
			||||||
 | 
					
 | 
				
			||||||
そうなるとaudio側の実装もそっちに合わせるのが自然だよな・・・
 | 
					そうなるとaudio側の実装もそっちに合わせるのが自然だよな・・・
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user