Как я могу построить UGens с более чем 5 аргументами в JCollider

JCollider - это Java-клиент для сервера синтеза звука SuperCollider.

У него тупой произвольный предел в 5 аргументов при создании UGens. (см. документацию для 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, но он, видимо, "не виден" там, где я пытаюсь его использовать (в другом пакете).

Затем я попытался исправить это в исходном коде JCollider, просто расширив вспомогательные методы до столь же глупого произвольного предела 7, но, увы, я не смог скомпилировать его из-за проблемы со скриптом муравья.

Как правильно использовать UGen.ar() с более чем 5 аргументами?

2 ответа

Решение

В то время я писал, что это была Java 1.4. Поэтому я решил, что 5 было хорошим числом:) (на самом деле оно покрывает некоторый разумный процент, например, около 98% угенов). Вы все еще можете использовать внутреннюю часть того, что вы вставили, чтобы обойти это, не касаясь источника, например, звоните UGen.construct( name, kControlRate, -1, new GraphElem[] { in1, in2, in3, in4, in5, in6, in7, ... }); Очевидно, что в настоящее время вы бы выбрали Varargs в стиле Java 5.

Если вы хотите использовать другой язык, попробуйте ScalaCollider, это будет намного приятнее.

Мне удалось обойти проблему сборки муравья и перекомпилировать JCollider с увеличенным лимитом 7.

Другие вопросы по тегам