Я слышал, что люди описывают динамическое исправление как что-то вроде взлома или риска поломки в будущих выпусках Pd. Это достаточно разумно, но кажется, что существуют альтернативы при построении абстракций.
Динамическое исправление кажется полезным как для создания экземпляров переменного количества объектов, так и для подключения к переменному количеству (число, определенное во время создания - лично мне не нужно, чтобы оно менялось постфактум на данном этапе) входов и выходов внутри абстракции.
Теперь я понимаю, что объект [клон] может решить проблему создания объектов. Я также вижу, что перебор объектов отправки и получения решит большую часть проблем с подключением при тщательном планировании, но чего я не понимаю, так это того, как такие объекты, как [trigger]
, [route]
и [select]
, можно каким-то образом настроить или заменить? Я не понимаю, как можно избежать использования динамического исправления, например, для создания [триггера f f], когда аргумент создания для вашей абстракции равен 2, и [триггер f f f], когда аргумент создания равен 3. Опять же, то же самое с [route]
и [select]
и подобные объекты.
РЕДАКТИРОВАТЬ: исходный вопрос был воспринят как слишком расплывчатый. Позже я задал дополнительный вопрос в комментариях, который действительно должен быть здесь. Как оказалось, ответ на продолжение, на мой взгляд, дал хороший ответ на первоначальный вопрос. Итак, чтобы подвести итоги и, надеюсь, прояснить, я хотел использовать несколько «инструментов» при построении абстракций, чтобы я мог ограничить использование динамических исправлений, если это возможно. Этими инструментами оказались:
- используя отправку и получение вместо входов и выходов (хотя
[initbang]
можно использовать для создания входов и выходов при создании экземпляра). - используя
[clone]
- триггер цепочки, маршрутизация и выбор объектов с помощью отправки и получения, например, с использованием
[t b b]
-[t b b]
вместо[t b b b]
. Это означает, что количество аргументов в этих объектах может быть определено во время создания, например, с помощью[clone]
. Это обсуждается в списке рассылки Pd. - используя
[initbang]
, как указано в ответе ниже.
После попытки построить драм-машину с пресетами и произвольным количеством треков с моими ограниченными знаниями о методах динамического патчинга, я понял, что должно быть много способов избежать проблем, с которыми я столкнулся при этом, а их было несколько! Конечно, некоторые вещи приходится делать с помощью динамического исправления, и это нормально. Это просто создание управляемого кода.