【发布时间】:2011-08-25 20:37:54
【问题描述】:
让我先解释一下这个想法。实际的数学问题在屏幕截图下方。 出于音乐目的,我正在构建一个凹槽算法,其中事件位置由数学函数 F(X) 转换。这些位置在凹槽范围内进行了归一化,所以我基本上处理的是零到一之间的值(这使得凹槽曲线更容易成型——唯一的限制是 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 之间的 alpha,B(x) 和 iB(x) 不再镜像(接近,但还不够),F(x) 和 iF(x) 仍然是镜像的。
是否有解决方案(除了将曲线量化为线段)?有什么我应该关注的主题吗?
【问题讨论】:
-
等等……你是建立音调矩阵的 Andre Michelle 吗?如果是这样,那么感谢您制作了如此出色的应用!
-
嗯,是的,谢谢。我想解决方案是切换 x,y 的方程的近似值。我希望数学更可靠。
-
我已内联添加图像。您能否在不依赖诸如“groove”和“blend”之类的术语的情况下进行更多解释(这是否意味着插值?)?也许通过评论图像?听起来你有两个来自 [0,1]->[0,1] 的函数,你以线性方式组合它们,你想要相反的吗?
-
groove 我的意思是任何翻译事件的函数。 blend 我的意思是从函数 A 插入到函数 B。
-
让我们看看我是否理解正确:你有两个“凹槽函数”
F(x)和G(x)当x介于 0 和 1 之间时,它们的值都在 0 和 1 之间,反之亦然其中有iF(x)和iG(x)。现在您构造了一个新函数B(x) = alpha*F(x) + (1-alpha)*G(x),您需要根据iF(x)和iG(x)找到该函数的逆函数?如果是这样,我想你可能想在math site 上问这个问题,也许与这里的这个问题并行。他们可以告诉您是否有有用的数学程序。
标签: function math blending inverse