[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新内部表現の構想]]
 | 
			
		||||
@@ -29,9 +33,10 @@ https://github.com/mimium-org/mimium-rs
 | 
			
		||||
 | 
			
		||||
### ランタイム周りについて
 | 
			
		||||
 | 
			
		||||
- [[mimiumの配列のGC]]
 | 
			
		||||
- [[mimiumのファイルIO]]
 | 
			
		||||
- [[mimiumにおけるIO制御]]
 | 
			
		||||
	- [[mimiumでMIDIインプットを実装]]
 | 
			
		||||
	- [[mimiumのファイルIO]]
 | 
			
		||||
- [[mimiumのプラグインシステム]]
 | 
			
		||||
- [[mimiumでMIDIインプットを実装]]
 | 
			
		||||
- [[WASIでmimiumをビルド&デバッグしてみる]]
 | 
			
		||||
- [[mimiumの配列のGC]]
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -13,4 +13,11 @@ date: 2025-06-18 15:42
 | 
			
		||||
 | 
			
		||||
[[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