Как передать аргументы создания абстракции?

Вопрос относительно Pure Data: поддерживают ли абстракции аргументы создания? Если да, то как я могу заставить их работать? У меня есть такая настройка, и я ожидаю, что 1 появится в нижнем поле с номером в bar.pd. Мне действительно нужно передавать все аргументы в foo, используя другие поля (как показано в bar2.pd)?

foo.pd:

[inlet]
|
[outlet]

bar.pd (не работает):

[foo 1]
|
[0\

bar2.pd (это работает):

[loadbang]
|
[1(
|
[foo]
|
[1\

person user3608068    schedule 15.06.2017    source источник
comment
Вы говорите об абстракциях, а не о подпатчах [pd subpatch].   -  person Max N    schedule 17.06.2017


Ответы (1)


Сразу отвечаю на ваш вопрос: да. Подпатчи, или, если быть более точным, абстракции, поддерживают любое количество аргументов создания.

Вы можете ссылаться на аргументы создания внутри абстракции как $1, $2 и т. д., но будьте осторожны, потому что эти типы переменных НЕ совпадают с теми, которые используются в сообщениях.

Итак, если foo.pd:

[loadbang]
|
[f $1]
|
[outlet]

И вы вызываете его из bar.pd таким образом:

[foo 1]
|
[1\

Результатом, выходящим из выхода foo, будет любая переменная, которую вы выбрали для вставки в качестве переменной создания при вызове foo.

В заключение, нет, вам не нужно передавать все аргументы в foo, используя другие поля.

person Niccolò Granieri    schedule 15.06.2017