まず考え方を説明します。実際の数学の問題は、スクリーンショットの下にあります。音楽的な目的のために、イベントの位置が数学関数 F(X) によって変換されるグルーブ アルゴリズムを構築しています。位置は溝の範囲内で正規化されるため、基本的には 0 から 1 の間の値を処理します (これにより、溝の曲線の形成が容易になります。唯一の制限は x'>=0 です)。このグルーブ アルゴリズムは、任意のイベント位置を受け入れ、タイムライン ノート トラックのようなデータ構造から静的ノートをフィルタリングすることによっても機能します。特定の範囲 (オーディオ ブロック サイズ) でイベントをフィルタリングするには、トラック内のノートを見つけてグルーブ スペースに変換する逆グルーブ関数が必要です。ここまでは順調ですね。できます!
つまり、(y=x) にミラーリングされているという事実のために、逆関数を使用します。したがって、値 x を差し込んで y を取得できます。この y は明らかに逆関数にプラグインして、最初の x を再度取得できます。
問題: グルーブを別のグルーブにブレンドできるようにしたいのですが、通常の線形 (ヒント ヒント) ブレンド コードが期待どおりに動作しません。簡単にするために、最初に y=x にブレンドしようとしました。
B(x)=alpha*F(x) + (1-alpha)*x;
iB(x)=alpha*iF(x) + (1-alpha)*x;
alpha=1 の場合、完全な曲線が得られます。alpha=0 の場合、直線が得られます。しかし、アルファが 0 から 1 の間の場合、B(x) と iB(x) はミラーリングされなくなり (近いが十分ではありません)、F(x) と iF(x) は引き続きミラーリングされます。
そのための解決策はありますか(曲線を線分に量子化する以外に)? 注目すべきテーマはありますか?