[obsidian] vault backup: 2025-06-18 16:44:21[
All checks were successful
Build / build (push) Successful in 7m28s
All checks were successful
Build / build (push) Successful in 7m28s
This commit is contained in:
@ -18,6 +18,10 @@ https://github.com/mimium-org/mimium-rs
|
|||||||
|
|
||||||
## 開発メモ
|
## 開発メモ
|
||||||
|
|
||||||
|
### 理論
|
||||||
|
|
||||||
|
- [[mimiumの部分的DSP更新とFaustのondemand]]
|
||||||
|
|
||||||
### 中間表現について
|
### 中間表現について
|
||||||
|
|
||||||
- [[mimium新内部表現の構想]]
|
- [[mimium新内部表現の構想]]
|
||||||
@ -29,9 +33,10 @@ https://github.com/mimium-org/mimium-rs
|
|||||||
|
|
||||||
### ランタイム周りについて
|
### ランタイム周りについて
|
||||||
|
|
||||||
- [[mimiumの配列のGC]]
|
- [[mimiumにおけるIO制御]]
|
||||||
- [[mimiumのファイルIO]]
|
- [[mimiumでMIDIインプットを実装]]
|
||||||
|
- [[mimiumのファイルIO]]
|
||||||
- [[mimiumのプラグインシステム]]
|
- [[mimiumのプラグインシステム]]
|
||||||
- [[mimiumでMIDIインプットを実装]]
|
|
||||||
- [[WASIでmimiumをビルド&デバッグしてみる]]
|
- [[WASIでmimiumをビルド&デバッグしてみる]]
|
||||||
|
- [[mimiumの配列のGC]]
|
||||||
|
|
||||||
|
@ -13,4 +13,11 @@ date: 2025-06-18 15:42
|
|||||||
|
|
||||||
[[Kronos]] Meta-Sequencerに近い仕組みを、IOモナドなしで実装する(正格評価なのでそこまでやらんでいいはず)
|
[[Kronos]] Meta-Sequencerに近い仕組みを、IOモナドなしで実装する(正格評価なのでそこまでやらんでいいはず)
|
||||||
|
|
||||||
|
組み込みのコンパイラドライバを制御する関数をいくつか用意する
|
||||||
|
|
||||||
|
```
|
||||||
|
start()->int
|
||||||
|
stop(id:int)
|
||||||
|
|
||||||
|
|
||||||
|
```
|
||||||
|
26
content/mimiumの部分的DSP更新とFaustのondemand.md
Normal file
26
content/mimiumの部分的DSP更新とFaustのondemand.md
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
---
|
||||||
|
date: 2025-06-18 16:39
|
||||||
|
---
|
||||||
|
#mimium #memo
|
||||||
|
|
||||||
|
[Conditional stateful function call will not handle shiftstate position properly · Issue #71 · mimium-org/mimium-rs · GitHub](https://github.com/mimium-org/mimium-rs/issues/71)
|
||||||
|
|
||||||
|
[[mimium]]のif文は選択的にブランチを実行するので、例えば
|
||||||
|
|
||||||
|
```rust
|
||||||
|
fn dsp(){
|
||||||
|
if (random()){
|
||||||
|
gen_a()
|
||||||
|
}else{
|
||||||
|
gen_b()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
のようなコードを書くと、`gen_a`と`gen_b`はそれぞれランダムなサンプルレートで内部を更新するという形になってしまう。
|
||||||
|
|
||||||
|
[[Faust]]の`select`プリミティブが両方のブランチを常に評価する戦略を取っている理由はこれを避けるため。
|
||||||
|
|
||||||
|
ただ、そういう意味では[[Ondemand primitive for Faust]]をmimiumのif文で再現できるとも言える。
|
||||||
|
|
||||||
|
つまり、アップサンプルやダウンサンプルを組み込み関数を新たに定義することなく、ライブラリで定義できる。(サンプルレートの動的な変化とかにどう対応するんだよという問題はあるけど)
|
Reference in New Issue
Block a user