The abs synchronizes one line and three sine curves using the controlling knob/cc's values (between 0 and 127), i.e. the input, as their angle and their frequency dependent on which sine curve (2^n). Thus, it captures all combinations, just with fewer possible values depending on which sine curve is assigned to which outlet.
1p24p(sin).pd
1p24p(sin)-help.pd
adsr.pd
It takes 5 creation arguments:
$1 the identifying index for the abstraction
and
$2,$3,$4,$5 to determine which outlet receives which frequency/input. So, if used, for instance, with an adsr then [1p24p(sin) 1 0 1 2 3] then "a" would have 127 possible values, d 64, s 32, and r 16. Where as, in the case of ]1p24p(sin) 1 3 2 1 0] r would have 127, s 64, d 32, and a 16.
While it does limit the possible values for the controls/parameters to [127,64,32,16] (respectively) it offers a Lot of flexibity (as the -help file shows) and is very easy to understand.
So basically, for example, in a given synth setup using the abs as input and only 2 knobs/cc you control 16,129 (127^2) adsr presets.
The state chart is as follows (where๐บ๐ปrepresents a value going either up or down, and each arrow represents a set of 16 possible values).
parameter:
0 1 2 3
๐บ๐บ๐บ๐บ
๐บ๐บ๐บ๐ป
๐บ๐บ๐ป๐บ
๐บ๐บ๐ป๐ป
๐บ๐ป๐บ๐บ
๐บ๐ป๐บ๐ป
๐บ๐ป๐ป๐บ
๐บ๐ป๐ป๐ป.
I hope this is easy to understand and that it might "serve(s) you well".
Love through Music,
-S
Let me know if you need help with this. I will (power allowing:-)) be happy to oblige.
p.s. the help files offers a lot of information and two examples (the classicsynth-help and 4 arrays to visually show what's happening).