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).