[obsidian] vault backup: 2025-10-08 12:53:10
All checks were successful
Build / build (push) Successful in 11m25s

This commit is contained in:
2025-10-08 12:53:10 +09:00
parent 0edafc3953
commit 2c6d2a52da
2 changed files with 20 additions and 2 deletions

View File

@@ -105,7 +105,11 @@ fn dsp(){
上のサンプルでは、はじめlfoを使って周波数をモジュレーションしている状態から、周波数は固定にして音量をモジュレーションする処理へと切り替えた例である。myfreq()とmyamp()はそれぞれどちらもosc関数を1度だけ呼び出すため、dsp関数の内部状態ツリーの構成は共通しており、再コンパイル時にデータが引き継がれる。
この時、myampにはmyfreqの最後の位相が引き継がれることになるが、これは特に望ましいというわけではないどうでもよさそうではあるけど
myfreqとmyampをそれぞれselfを使って個別に実装していた場合、値の範囲がおかしくなるkのう
myfreqとmyampをそれぞれselfを使って個別に実装していた場合、値の範囲がおかしくなる可能性がある。
ツリー構築の際に、関数ラベルをつけるようにすればいいが、ラベルのネーミング方法に一貫性がないとダメ
親の関数名+child1,2,3...みたいにすれば多分大丈夫。
## 将来的な展望
@@ -113,6 +117,8 @@ myfreqとmyampをそれぞれselfを使って個別に実装していた場合
原理的にはFaustでも実現できるはず。
ディレイ、Feed以外に、外部定義の関数呼び出しにもこの仕組みを応用できるかLuaのUserData的な仕組み。
Faustにおけるrwtableのように、単にCell的な仕組みを用意すればDelayやMemもこの上に乗っかる形で全部カバーできるはず
rwtable(read_index:float,write_index:float,input:float,size:const-float)