From cf3805dc1a507607ca7d03aa7548e0a45d2fa536 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=BE=E6=B5=A6=20=E7=9F=A5=E4=B9=9F=20Matsuura=20Tomoy?= =?UTF-8?q?a?= Date: Fri, 19 Dec 2025 18:28:34 +0900 Subject: [PATCH] [obsidian] vault backup: 2025-12-19 18:28:34[ --- content/private | 2 +- ...ƒ†ã‚£ãƒ–プログラミングã«ã‚ˆã‚‹ä¿¡å·å‡¦ç†ã®ãƒ©ã‚¤ãƒ–コーディング.md | 35 ++++--------------- 2 files changed, 8 insertions(+), 29 deletions(-) diff --git a/content/private b/content/private index 91e7bc75..e8083525 160000 --- a/content/private +++ b/content/private @@ -1 +1 @@ -Subproject commit 91e7bc75236ecceef5095c94e16be70140814cdf +Subproject commit e8083525e78e4865c96db74550ec3dfeda99c69c diff --git a/content/多段階計算ã¨å¢—分関数型リアクティブプログラミングã«ã‚ˆã‚‹ä¿¡å·å‡¦ç†ã®ãƒ©ã‚¤ãƒ–コーディング.md b/content/多段階計算ã¨å¢—分関数型リアクティブプログラミングã«ã‚ˆã‚‹ä¿¡å·å‡¦ç†ã®ãƒ©ã‚¤ãƒ–コーディング.md index 752c403e..b1072dfe 100644 --- a/content/多段階計算ã¨å¢—分関数型リアクティブプログラミングã«ã‚ˆã‚‹ä¿¡å·å‡¦ç†ã®ãƒ©ã‚¤ãƒ–コーディング.md +++ b/content/多段階計算ã¨å¢—分関数型リアクティブプログラミングã«ã‚ˆã‚‹ä¿¡å·å‡¦ç†ã®ãƒ©ã‚¤ãƒ–コーディング.md @@ -285,31 +285,9 @@ fn osc(freq){ ## è­°è«– -### ä»–ã®è¨€èªžã¨ã®ã‚³ãƒ³ãƒ‘イル時計算ã®ãƒ‘ラダイム比較 +Reachã®ã‚·ã‚¹ãƒ†ãƒ ã¨æ¯”較ã—ãŸã¨ãã«ã€å†å¸°ã«ã‚ˆã‚‹ãƒ‘ラメトリックãªDSPコード生æˆã«å¯¾å¿œã—ãŸã¾ã¾ãƒ©ã‚¤ãƒ–コーディング機能を実ç¾ã§ãã¦ã„ã‚‹ã“ã¨ã€ã¾ãŸãã®å®Ÿç¾ã«ãƒ†ã‚­ã‚¹ãƒˆã‚¨ãƒ‡ã‚£ã‚¿å›ºæœ‰ã®æ©Ÿèƒ½ã«ä¾å­˜ã›ãšã€å˜ã«ã‚½ãƒ¼ã‚¹ã‚³ãƒ¼ãƒ‰åŒå£«ã®æ¯”較ã«ã‚ˆã£ã¦æ§‹é€ æ¯”較を行ãˆã¦ã„る点ãŒãƒ¡ãƒªãƒƒãƒˆã¨è¨€ãˆã‚‹ã€‚ -| | Faust | Kronos | mimium | -| ---------------- | ------- | ------- | ------------------ | -| パラメトリックãªä¿¡å·ãƒ«ãƒ¼ãƒ†ã‚£ãƒ³ã‚° | 項書æ›ãˆãƒžã‚¯ãƒ­ | 型レベル計算 | ステージ0ã®è¨ˆç®—/グローãƒãƒ«ç’°å¢ƒè©•価 | -| 実際ã®ä¿¡å·å‡¦ç† | BDA | 値レベルã®è©•価 | ステージ1ã®è¨ˆç®— | - - -多段階計算ã®ä¸è¶³ã—ã¦ã„る部分 - -マクロã¨ã—ã¦ã¯ã€åž‹å®‰å…¨ãªä»£ã‚りã«ã€åž‹ã‚·ã‚¹ãƒ†ãƒ ã®ç¯„囲を超ãˆãŸãƒ¡ã‚¿æ“作ãŒã§ããªã„。型システムãŒå……実ã—ãªã„é™ã‚Šã€Kronosã®ã‚ˆã†ãªã‚¿ãƒ—ルã®è¦ç´ æ•°ã‚’ãƒ‘ãƒ©ãƒ¡ãƒˆãƒªãƒƒã‚¯ã«æ‰±ã†ã‚ˆã†ãªã“ã¨ã¯ã§ããªã„。代ã‚りã«é…列をæ“作ã™ã‚‹ã€‚ã“れã¯ã“れã§ä½“ç³»ãŒã‚·ãƒ³ãƒ—ルã§ã„ã„ã‹ã‚‚。 - -ç¾çжã€ãƒ„リーウォーク型ã®ã‚¤ãƒ³ã‚¿ãƒ—リタã§ã‚¹ãƒ†ãƒ¼ã‚¸0を評価ã—ã€VMã®ãƒã‚¤ãƒˆã‚³ãƒ¼ãƒ‰ã«å¤‰æ›ã—ã¦ã‹ã‚‰ã‚¹ãƒ†ãƒ¼ã‚¸1を評価ã—ã¦ã„る。ã“れã¯ã€ãƒªã‚¢ãƒ«ã‚¿ã‚¤ãƒ å®Ÿè¡Œãƒ‘フォーマンスã®ç¶­æŒã—ã¤ã¤å¤šæ®µéšŽè¨ˆç®—ã®ä½“系を導入ã™ã‚‹ãŸã‚ã®è‹¦è‚‰ã®ç­–ã§ã‚る。ã›ã£ã‹ãマクロã¨å®Ÿéš›ã®è¨ˆç®—ã‚’åŒã˜æ„味論ã§å®Ÿè¡Œã§ãã‚‹ã®ã«ã€çµå±€2ã¤ã®å‡¦ç†ç³»ã‚’実装ã—ã¦ã„る。 - - - - -### ライブ状態更新ã®ã‚¨ãƒƒã‚¸ã‚±ãƒ¼ã‚¹ - -差分処ç†ã‚’実行ã—ã¦ã„ã‚‹é–“ã«å†…éƒ¨çŠ¶æ…‹ãŒæ›´æ–°ã•れã¦ã¯ã„ã‘ãªã„。ãªã®ã§ã€æ–°ã—ã„ソースコードã®ãƒ‘ースや内部状態構造導出ã€VMコード生æˆã€æœ¨ã®æ¯”較ã¾ã§ã¯éžåŒæœŸã§è¡Œãˆã‚‹ãŒã€ã‚³ãƒ”ー中ã¯ã‚ªãƒ¼ãƒ‡ã‚£ã‚ªå‡¦ç†å…¨ã¦ã‚’一度中断ã—ãªãã¦ã¯ãªã‚‰ãªã„。 - -構造ãŒå¤§ãããªã£ãŸæ™‚ã«ãƒ‰ãƒ­ãƒƒãƒ—アウトã—ãªã„ã‹ã€‚木ã®ã‚µã‚¤ã‚ºã§ã–ã£ãりベンãƒã‚’å–りãŸã„。ãƒãƒƒãƒ•ァサイズã®å‚考ã«ã§ãã‚‹ã¯ãš - -最長共通部分列ã®ä»•様上ã€`osc1()+osc2()`ã‹ã‚‰`osc2()+osc1()`ã¸ã®å¤‰æ›´ã®ã‚ˆã†ãªã€æ˜Žã‚‰ã‹ã«å•題ã®ãªã„入れ替ãˆã§ã‚‚ã©ã¡ã‚‰ã‹ç‰‡æ–¹ã—ã‹å¼•ãç¶™ãŒã‚Œãªã„。ã¾ãŸã€ã©ã¡ã‚‰ãŒå¼•ãç¶™ãŒã‚Œã‚‹ã‹ã¯LCSã®ãƒãƒƒã‚¯ãƒˆãƒ©ãƒƒã‚¯ã®æˆ¦ç•¥ã«ä¾å­˜ã™ã‚‹ã€‚ツリーã®ãƒŽãƒ¼ãƒ‰ã®å­ã®ç¨®é¡žã¨ã—ã¦ã€é †åºã®é–¢ä¿‚ãªã„集åˆã€ã‚る集åˆã¨ã‚’区別ã™ã‚‹ã‚ˆã†ã«ã™ã‚Œã°å®Ÿç¾ã§ãã‚‹ã‹ã‚‚。 -関連ã—ã¦ã€å¼•ãç¶™ã„ã§ã¯ã„ã‘ãªã„ã¯ãšã®ãƒ‡ãƒ¼ã‚¿ã‚’引ãç¶™ãå¯èƒ½æ€§ãŒã‚る。 +エッジケースã¨ã—ã¦æœ€é•·å…±é€šéƒ¨åˆ†åˆ—ã®ä»•様上ã€`osc1()+osc2()`ã‹ã‚‰`osc2()+osc1()`ã¸ã®å¤‰æ›´ã®ã‚ˆã†ãªã€æ˜Žã‚‰ã‹ã«å•題ã®ãªã„入れ替ãˆã§ã‚‚ã©ã¡ã‚‰ã‹ç‰‡æ–¹ã—ã‹å¼•ãç¶™ãŒã‚Œãªã„ã¨ã„ã†å•題ãŒã‚る。ã¾ãŸã€ã©ã¡ã‚‰ãŒå¼•ãç¶™ãŒã‚Œã‚‹ã‹ã¯LCSã®ãƒãƒƒã‚¯ãƒˆãƒ©ãƒƒã‚¯ã®æˆ¦ç•¥ã«ä¾å­˜ã™ã‚‹ã€‚関連ã—ã¦ã€å¼•ãç¶™ã„ã§ã¯ã„ã‘ãªã„ã¯ãšã®ãƒ‡ãƒ¼ã‚¿ã‚’引ãç¶™ãå¯èƒ½æ€§ãŒã‚る。 ```rust fn phasor1(freq){ //0 ~ samplerate/freq @@ -342,12 +320,13 @@ fn dsp(){//dspã¯Fncall[Fncall[FnCall[Feed]],Fncall[Feed]]ã§å¤‰åŒ–ãªã— } ``` -上ã®ã‚µãƒ³ãƒ—ルã§ã¯ã€ã¯ã˜ã‚lfoを使ã£ã¦å‘¨æ³¢æ•°ã‚’モジュレーションã—ã¦ã„る状態ã‹ã‚‰ã€å‘¨æ³¢æ•°ã¯å›ºå®šã«ã—ã¦éŸ³é‡ã‚’モジュレーションã™ã‚‹å‡¦ç†ã¸ã¨åˆ‡ã‚Šæ›¿ãˆãŸä¾‹ã§ã‚る。myfreq()ã¨myamp()ã¯ãれãžã‚Œã©ã¡ã‚‰ã‚‚osc関数を1度ã ã‘呼ã³å‡ºã™ãŸã‚ã€dsp関数ã®å†…éƒ¨çŠ¶æ…‹ãƒ„ãƒªãƒ¼ã®æ§‹æˆã¯å…±é€šã—ã¦ãŠã‚Šã€å†ã‚³ãƒ³ãƒ‘イル時ã«ãƒ‡ãƒ¼ã‚¿ãŒå¼•ãç¶™ãŒã‚Œã‚‹ã€‚ -ã“ã®æ™‚ã€myampã«ã¯myfreqã®æœ€å¾Œã®ä½ç›¸ãŒå¼•ãç¶™ãŒã‚Œã‚‹ã“ã¨ã«ãªã‚‹ãŒã€ä»Šå›žå®Ÿè£…ã—ã¦ã„ã‚‹phasor1ã¯selfã«ä¿å­˜ã•れる値ãŒ0~samplerate/freqã€ä¾‹ãˆã°1000Hzãªã‚‰0~48ã®å€¤ã®ãƒ¬ãƒ³ã‚¸ã‚’å–りã€ã“れãŒmyampã®ä¸­ã§ä½¿ã‚れã¦ã„ã‚‹phasor2ã®selfã®ãã®å€¤ã®æœ¬æ¥ã®ãƒ¬ãƒ³ã‚¸ã¯0~1ã§ã‚ã‚‹ã¹ãã«ã‚‚é–¢ã‚らãšå¼•ãç¶™ãŒã‚Œã¦ã—ã¾ã†ã€‚ +上ã®ã‚µãƒ³ãƒ—ルã§ã¯ã€ã¯ã˜ã‚lfoを使ã£ã¦å‘¨æ³¢æ•°ã‚’モジュレーションã—ã¦ã„る状態ã‹ã‚‰ã€å‘¨æ³¢æ•°ã¯å›ºå®šã«ã—ã¦éŸ³é‡ã‚’モジュレーションã™ã‚‹å‡¦ç†ã¸ã¨åˆ‡ã‚Šæ›¿ãˆãŸä¾‹ã§ã‚る。myfreq()ã¨myamp()ã¯ãれãžã‚Œã©ã¡ã‚‰ã‚‚osc関数を1度ã ã‘呼ã³å‡ºã™ãŸã‚ã€dsp関数ã®å†…éƒ¨çŠ¶æ…‹ãƒ„ãƒªãƒ¼ã®æ§‹æˆã¯å…±é€šã—ã¦ãŠã‚Šã€å†ã‚³ãƒ³ãƒ‘イル時ã«ãƒ‡ãƒ¼ã‚¿ãŒå¼•ãç¶™ãŒã‚Œã‚‹ã€‚ã“ã®æ™‚ã€myampã«ã¯myfreqã®æœ€å¾Œã®ä½ç›¸ãŒå¼•ãç¶™ãŒã‚Œã‚‹ã“ã¨ã«ãªã‚‹ãŒã€ä»Šå›žå®Ÿè£…ã—ã¦ã„ã‚‹phasor1ã¯selfã«ä¿å­˜ã•れる値ãŒ0~samplerate/freqã€ä¾‹ãˆã°1000Hzãªã‚‰0~48ã®å€¤ã®ãƒ¬ãƒ³ã‚¸ã‚’å–りã€ã“れãŒmyampã®ä¸­ã§ä½¿ã‚れã¦ã„ã‚‹phasor2ã®selfã®ãã®å€¤ã®æœ¬æ¥ã®ãƒ¬ãƒ³ã‚¸ã¯0~1ã§ã‚ã‚‹ã¹ãã«ã‚‚é–¢ã‚らãšå¼•ãç¶™ãŒã‚Œã¦ã—ã¾ã†ã€‚ -ãŸã ã€çµå±€phasor2を実行ã—ãŸã¨ãã«ã¯0~1ã®ãƒ¬ãƒ³ã‚¸ã«ä¸¸ã¾ã‚‹ã®ã§å¤§ããªå•題ã«ã¯ãªã‚‰ãªã„。ã‚る関数ãŒã‚る範囲ã«åŽã¾ã‚‹ã“ã¨ãŒä¿è¨¼ã•れã¦ã„ã‚‹ã¨ã„ã†ã“ã¨ã¯ã€ä»®ã«ãã“ã§ä½¿ã‚れã¦ã„ã‚‹selfã«ä¸æ­£ãªå€¤ãŒå·®ã—è¾¼ã¾ã‚ŒãŸã¨ã—ã¦ã‚‚ã€ãã®é–¢æ•°ãŒè¨ˆç®—ã—終ã‚ã£ãŸã¨ãã«ã¯å…ƒã®ç¯„囲ã«åŽã¾ã‚‹å¯èƒ½æ€§ãŒé«˜ã„ã‹ã‚‰ã ã€‚ã¾ãŸé–¢é€£æ€§ã®ãªã„データãŒå·®ã—è¾¼ã¾ã‚ŒãŸã¨ã—ã¦ã‚‚ã€çµå±€ã¯è´æ„Ÿä¸Šé•和感ãŒãªã„程度ã«ç•™ã¾ã‚‹å¯èƒ½æ€§ã‚‚ã‚る。 +ãŸã ã€å®Ÿéš›ã«ã¯çµå±€phasor2を実行ã—ãŸã¨ãã«ã¯0~1ã®ãƒ¬ãƒ³ã‚¸ã«ä¸¸ã¾ã‚‹ã®ã§å¤§ããªå•題ã«ã¯ãªã‚‰ãªã„。ã‚る関数ãŒã‚る範囲ã«åŽã¾ã‚‹ã“ã¨ãŒä¿è¨¼ã•れã¦ã„ã‚‹ã¨ã„ã†ã“ã¨ã¯ã€ä»®ã«ãã“ã§ä½¿ã‚れã¦ã„ã‚‹selfã«ä¸æ­£ãªå€¤ãŒå·®ã—è¾¼ã¾ã‚ŒãŸã¨ã—ã¦ã‚‚ã€ãã®é–¢æ•°ãŒè¨ˆç®—ã—終ã‚ã£ãŸã¨ãã«ã¯å…ƒã®ç¯„囲ã«åŽã¾ã‚‹å¯èƒ½æ€§ãŒé«˜ã„ã‹ã‚‰ã ã€‚ä¼¼ãŸã‚ˆã†ãªã‚±ãƒ¼ã‚¹ã§é–¢é€£æ€§ã®ãªã„データãŒã‚³ãƒ”ーã•れãŸã¨ã—ã¦ã‚‚ã€çµå±€ã¯è´æ„Ÿä¸Šé•和感ãŒãªã„程度ã«ç•™ã¾ã‚‹å¯èƒ½æ€§ã‚‚ã‚る。 -ã•らã«ã€å®Ÿéš›ã«ã¯ã‚³ãƒ¼ãƒ‰ã®è¦æ¨¡ãŒå¤§ãããªã£ã¦ã„ãã«ã¤ã‚Œã¦ã€é–¢æ•°å‘¼ã³å‡ºã—ã®æ·±ã•ãŒæ·±ããªã£ã¦ã„ããŸã‚ã€å¶ç„¶é–¢æ•°å‘¼ã³å‡ºã—ã®æ§‹é€ ãŒä¸€è‡´ã™ã‚‹å¯èƒ½æ€§ã¯å°ã•ããªã£ã¦ã„ãã“ã¨ã¨ã€å®Ÿéš›ã®ãƒ©ã‚¤ãƒ–コーディングã«ãŠã„ã¦ã¯ +ç¾å®Ÿçš„ãªãƒ¦ãƒ¼ã‚¹ã‚±ãƒ¼ã‚¹ã‚’考ãˆã‚Œã°ã€2ã¤ã®ç‚¹ã«ãŠã„ã¦ã“れらã®å•é¡Œç‚¹ã¯æ°—ã«ãªã‚‰ãªããªã‚‹ã€‚ + +1ã¤ã¯ã€ã‚³ãƒ¼ãƒ‰ã®è¦æ¨¡ãŒå¤§ãããªã£ã¦ã„ãã«ã¤ã‚Œã¦ã€é–¢æ•°å‘¼ã³å‡ºã—ã®æ·±ã•ãŒæ·±ããªã£ã¦ã„ããŸã‚ã€å¶ç„¶é–¢æ•°å‘¼ã³å‡ºã—ã®æ§‹é€ ãŒä¸€è‡´ã™ã‚‹å¯èƒ½æ€§ã¯å°ã•ããªã£ã¦ã„ãã“ã¨ã§ã‚る。2ã¤ç›®ã¯ã€å®Ÿéš›ã®ãƒ©ã‚¤ãƒ–コーディングã«ãŠã„ã¦ã¯è¤‡é›‘ãªæ§‹é€ å¤‰åŒ–を一度ã«è¡Œã†ã“ã¨ã¯å°‘ãªãã€ã‚ã£ãŸã¨ã—ã¦ã‚‚ãれã¯ç²¾ã€…一箇所ã¸ã®ã‚³ãƒ¼ãƒ‰æŒ¿å…¥ã€å‰Šé™¤ã€ç½®ãæ›ãˆã¨ã„ã£ãŸã‚¢ã‚¯ã‚·ãƒ§ãƒ³ã®é€£ç¶šã¨ã—ã¦æ‰ãˆã‚‰ã‚Œã‚‹ã€‚一度ã«å¤§è¦æ¨¡ã®ã‚³ãƒ¼ãƒ‰å¤‰æ›´ã‚’コミットã›ãšã«ã€å€‹ã€…ã®å¤‰æ›´æ¯Žã«ã‚»ãƒ¼ãƒ–ã¨æ›´æ–°ã‚’行ãˆã°ã€æœ¬ã‚·ã‚¹ãƒ†ãƒ ã§ã‚‚å•題ãªã対応ã§ãる。