[obsidian] vault backup: 2023-11-03 09:16:08[
This commit is contained in:
parent
b0c58d72be
commit
c984a5eee0
@ -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>`みたいなのを適用する関数としてあらわせ、、、る?
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user