[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