0

JCollider 是 SuperCollider 声音合成服务器的 Java 客户端。

在构造 UGen 时,它有 5 个参数的愚蠢任意限制。(请参阅此处的 UGen 文档)我指的是 ar 方法。他们为可变数量的参数制作了该方法的多个副本,但它们在 5 处停止,我需要 7。这些便利函数在定义它们的位置看起来像这样。

public static GraphElem kr( String name, GraphElem in1, GraphElem in2, GraphElem in3, GraphElem in4, GraphElem in5 )
{
    return UGen.construct( name, kControlRate, -1, new GraphElem[] { in1, in2, in3, in4, in5 });
}

我自己尝试只使用 UGen.construct 方法,但它显然从我尝试使用它的地方“不可见”(在不同的包中)。

然后,我尝试通过将便利方法扩展到同样愚蠢的任意限制 7 来在 JCollider 源中修复此问题,但是由于 ant 脚本问题,我无法编译它。

使用超过 5 个参数的 UGen.ar() 的正确方法是什么?

4

2 回答 2

1

当时我写的是 Java 1.4。所以我认为 5 是一个很好的数字 :) (事实上它涵盖了一些合理的百分比,比如 98% 左右的 ugens)。您仍然可以使用您粘贴的内部部分来解决它而无需触及源代码,例如 callUGen.construct( name, kControlRate, -1, new GraphElem[] { in1, in2, in3, in4, in5, in6, in7, ... });显然现在您会选择 Java 5 风格的可变参数。

如果您愿意使用另一种语言,请尝试使用ScalaCollider ,它的体验要流畅得多。

于 2011-04-05T21:14:48.113 回答
0

我设法解决了 ant 构建问题并重新编译了 JCollider,增加了 7 个限制。

于 2011-03-26T02:45:23.300 回答