Files
quartz-research-note/content/mimiumの部分的DSP更新とFaustのondemand.md
松浦 知也 Matsuura Tomoya e9a6d8dd19
All checks were successful
Build / build (push) Successful in 7m28s
[obsidian] vault backup: 2025-06-18 16:44:21[
2025-06-18 16:44:22 +09:00

1.1 KiB

date
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

mimiumのif文は選択的にブランチを実行するので、例えば

fn dsp(){
	 if (random()){
	   gen_a() 
	 }else{
	   gen_b()
	}
}

のようなコードを書くと、gen_agen_bはそれぞれランダムなサンプルレートで内部を更新するという形になってしまう。

Faustselectプリミティブが両方のブランチを常に評価する戦略を取っている理由はこれを避けるため。

ただ、そういう意味ではOndemand primitive for Faustをmimiumのif文で再現できるとも言える。

つまり、アップサンプルやダウンサンプルを組み込み関数を新たに定義することなく、ライブラリで定義できる。(サンプルレートの動的な変化とかにどう対応するんだよという問題はあるけど)