Ganging sliders

This example shows how you can create a gangable multislider-like object. Although it is a common idea used in, for example, digital mixing consoles, there's no single object in Max yet to achieve this task of "ganging" multiple faders. In this example, inside the patcher retainoffsets object, we keep track of the differences between the values of the four sliders, and whenever the shift key is held down we change the values of all four of the slider objects commensurately with the change of the slider currently being moved. We use the pattrhub object in the subpatch, and a set of four pattr objects in the main patch, to communicate the calculated position for each slider from the subpatch back to the main patch to achieve the effect.