
Muology
@oid
Why does dynabs$0 appear twice but one is in a box (on the left) and one is not?
Is your example using regular pure data primitives?
What is iemguts?Can you please explain the programming in the dynabs.pd patch and the dynabstest.pd? What is the difference between the two and what is the end goal of these two patches? What is the dynamic patching concept being done here? Is one an abstraction and one a sub patch? I am new to this so please explain in a fundamental way.
?
dynabstest.pd
dynabs$0 (in a box)
r $register
t b a
msg 10 10 hello abstraction
s?
dynabs.pd
dynabs$0
hello abstraction
loadbang
symbol $0canvas
s $1register
namecanvas $0canvas 
Muology
@whaleav @ben.wes @ddw_music
I am learning about dynamic patching. The documentation describes instance specific dynamic patching as being able to send messages to a specific instance of an abstraction, by renaming the abstraction using namecanvas. The renaming can be automated using $0 expansion.I am not familiar with where to locate namecanvas and how to use it and I am not familiar with how to use $0 expansion. Can someone please show a complete visual example of how to use instance specific dynamic patching using the exact instructions given in the documentation link?
https://puredata.info/docs/tutorials/TipsAndTricks#instancespecificdynamicpatchingAnd can someone show a visual example of how to use dynamic patching to dynamically create instances of an object in an abstraction? For example, if I create a patch with a sine oscillator that can be assigned a frequency, an amplitude, and has a dac object and then make that patch an abstraction how would I be able to use dynamic patching to allow my gui to let me assign a new sound source in place of the sine oscillator? Objects like the switch object have limitations. I would want to be able to assign/unassign any number of new sounds sources in place of the sine oscillator. For example a phasor object, a noise object, or even synthesizer patch abstraction. Suggestions for other ways to do this are good and I also want to be sure to have explanations for using dynamic patching since that is what I am learning. How could this be done using dynamic patching?
General Dynamic Patching
What is the difference between pd messages and patch messages? Are they both used for dynamic patching? And how are they different from instance specific dynamic patching?
https://puredata.info/docs/tutorials/TipsAndTricks#pdmessages
https://puredata.info/docs/tutorials/TipsAndTricks#patchmessages 
Muology
Thank you all.
@whaleav
@ben.wes
How would you implement the combinations formula (C (n, r) = n!/r! (nr)!) in an efficient way? So that an n and r can be entered in and print all possible combinations?
I used the factorial expression object to calculate the combinations formula using expr (fact($f1)) / ((fact($f2)) * (fact($f1  $f2)))
What approach would you take to calculate the combinations formula without using the expressions object?
What approach would you take to calculate the combinations formula with using the expressions object?Adding a List and or Array
How would you approach being able to add any type of customizable list/array (for example, list/array = A, B, C, D, E, F) and then telling the patch you want to generate any type of combination and then print all possible combinations?
For example, customizable list/array = A, B, C, D, E, F (n)
generate all possible combinations of 2 (r) also customizable
Print
All possible combinations = 15
A, B
A, C
A, D
A, E
A, F
B, C
B, D
B, E
B, F
C, D
C, E
C, F
D, E
D, F
E, F 
Muology
fac.pd
I built a patch that is supposed allow you to enter in a number and calculate the factorial (without using the expressions object).
Factorial of n = n! = n × (n – 1) × (n – 2) × … × 1
Example 5! is 5 × 4 × 3 × 2 × 1 = 120I used this max msp factorial patch as a guide.
Looking for assistance in making the factorial patch in Pure Data as efficient as possible.
I want to build this patch using Pure Data primitives instead of using the expression object.Please note that there is a discussion here that using float values instead of integers allows the recursive method for calculating factorials to have higher input values before failure.
https://cycling74.com/forums/recursivefactorialfunctionlimits