[obsidian] vault backup: 2023-11-03 09:16:08[
This commit is contained in:
		@@ -28,7 +28,8 @@ type iVec<A> = Box<dyn FnMut()->A>
 | 
				
			|||||||
例えばMIDIの記録されたデータは
 | 
					例えばMIDIの記録されたデータは
 | 
				
			||||||
 | 
					
 | 
				
			||||||
```rust
 | 
					```rust
 | 
				
			||||||
Vec<Event<(u8,u8)>> //ノート番号、ベロシティ
 | 
					type NOTE= Event<(u8,u8)>//ノート番号、ベロシティ
 | 
				
			||||||
 | 
					type MIDI = Vec<NOTE> 
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
みたいになる
 | 
					みたいになる
 | 
				
			||||||
@@ -42,6 +43,7 @@ type Project<V> = Vec<Track<_,__>> -> iVec<V>
 | 
				
			|||||||
type Track<I,O> =  Device<I> * Device<O> //デバイス情報
 | 
					type Track<I,O> =  Device<I> * Device<O> //デバイス情報
 | 
				
			||||||
				*(
 | 
									*(
 | 
				
			||||||
				  Vec<Region<O>> 
 | 
									  Vec<Region<O>> 
 | 
				
			||||||
 | 
									| Vec<Event<I,O>>
 | 
				
			||||||
				| Generator<O>
 | 
									| Generator<O>
 | 
				
			||||||
				)
 | 
									)
 | 
				
			||||||
type Region<V> = (time*time)* //start,duration
 | 
					type Region<V> = (time*time)* //start,duration
 | 
				
			||||||
@@ -62,6 +64,11 @@ let Track2 = Generator::SineWave(Track1,Constant(1.0),Constant(0.0));
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
ここからがDAWをプログラミングで操作できる面白いとこで、例えばリージョンに対するフェードインアウトとかを`Region<T>->Region<T>`の関数として定義できるところ
 | 
					ここからがDAWをプログラミングで操作できる面白いとこで、例えばリージョンに対するフェードインアウトとかを`Region<T>->Region<T>`の関数として定義できるところ
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CubaseにおけるインストゥルメントトラックとかはMIDIトラック+シンセサイザーの合成なので、
 | 
				
			||||||
 | 
					`Track<NOTE,NOTE>`に`Vec<NOTE>->iVec<Audio>`みたいなのを適用する関数としてあらわせ、、、る?
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user