- allows you to use your midi faders/knobs in virtual banks so you’re no longer limited to the 8 or 16 controllers on your hardware;
- maps your controllers to user-defined sends and allows you to specify meaningful labels for each controller in each bank;
- allows you to map the 0-127 MIDI numbers to any arbitrary floating-point range using, if desired, an exponential curve for more natural mapping of controller to parameter values;
- remembers the values of your faders/knobs so that shifting banks does not result in a sudden jump to remote values (you have to move the fader to its previous value before it will start sending out values again).
- allows universal faders which act the same across all banks, and linked faders that assign the same functionality of a fader in one bank to that of any fader in a different bank.
To integrate this into your own max patch you’ll probably want to put the midi-faders-js-interface patch in a bpatcher, centring the visible part on the yellow box that displays fader labels and values. A required argument to the patch is the mapping file (see midi-faders.js comments again); you will probably want to edit the umenu names to reflect your mapping setup.
You’ll then need to replace the ld2-midi-controller object in midi-faders-js-interface with your own controller map. The trick here is to make sure that no matter what channel/controller number your faders are actually sending, that they map to channel messages 1-16 going into the [js midi-faders.js] object. This channel number must be sent before the 0-127 value associated with it.
Changing banks is then a matter of selecting an item from the umenu (or typing + or – to step through them).
There’s also a fake-faders patch included in this package. This is simply an on-screen mouse-draggable set of faders that you can use to test (or perform with) when your MIDI controllers aren’t at hand.