3

まず考え方を説明します。実際の数学の問題は、スクリーンショットの下にあります。音楽的な目的のために、イベントの位置が数学関数 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) は引き続きミラーリングされます。

そのための解決策はありますか(曲線を線分に量子化する以外に)? 注目すべきテーマはありますか?

4

2 に答える 2

1

2つの関数f(x)とg(x)を組み合わせているため、y = af(x)+(1-a)g(x)になります。そして、いくつかのy、a、f、gが与えられた場合、xを見つけたいと思います。少なくとも、それは私が理解していることです。

これを一般的に行う方法はわかりませんが(私はあまり努力していませんが、つまり、他の人に尋ねる価値があります)、あなたが使用しているように見える「素敵な」形の関数については、ニュートン法はかなり速いでしょう。

y = af(x)+(1-a)g(x)となるようなxを見つけたいとします。つまり、0 = af(x)+(1-a)g(x)-yの場合。

それでは、r(x)= af(x)+(1-a)g(x)--yを定義し、その「ゼロ」を見つけましょう。真ん中の推測から始めます、x_0=0.5。x_1 = x_0 --r(x_0)/ r'(x_0)を計算します。繰り返す。運が良ければ、これは急速に収束します(そうでない場合は、すでに実行しているように見えるy = xを基準にして関数を定義し、再試行することを検討してください)。

ウィキペディアを参照してください

于 2011-08-25T21:27:04.463 に答える
1

一般に、この問題は代数的に解くことはできません。

たとえば、

y = 2e^x(逆x = log 0.5y)

y = 2x(逆x = 0.5y)。

これらを重み 0.5 でブレンドすると が得られます。各ピースの逆数は簡単に見つけることができたにもかかわらず、初等関数だけを使用y = e^x+xしてここで解くことができないことはよく知られています。x

上記の andrew で説明されているように、数値法を使用して逆数を近似する必要があります。

于 2011-08-25T21:55:22.280 に答える