FFLV2Ktl a class for handling mappings of the Faderfox LV2
Inherits from: MIDIKtl
The Faderfox LV2 produces mainly MIDI control messages.
It has several switchable areas, and some controllers send
increment values rather than values between 1-127.
The list of control names (ctlNames) is not complete yet,
as there are multiple modes which all send different controller numbers.
(Needs more time and patience to finish.)
// to do: how to map to editor?
// how to map to proxymixer?
// support incremental controllers in proxies?
// proxy.change(<param>, 0.03 (normalized range));
f = FFLV2Ktl.new();
f = FFLV2Ktl.new(-1097703516); // just that USB location
Class variables
FFLV2Ktl.verbose = true;
FFLV2Ktl.verbose = false;
f.mapCC(\sl1, { |ch, cc, val| val.postln })
f.mapCC(\joyXfx1, { |ch, cc, val| val.postln })
f.mapCC(\potAsend, { |ch, cc, val| val.postln })
// sends just up or down increments
f.mapCC(\potAclip, { |ch, cc, val| val.postln })
f.ctlNames[\potAsend]
f.ccDict;
// first sketch for how to map to a proxymixer:
n = NdefMixer();
(
[\sl1, \sl2, \sl3].do { |key, i|
f.mapCC(key, { |cc, chan, val|
n.pxMons[i].proxy.softVol_((val / 127).squared);
});
};
Spec.add(\freq1, \freq);
Spec.add(\freq2, \freq);
[\potAsend, \potBsend, \potCsend].do { |key, i|
f.mapCC(key, { |cc, chan, val|
var proxy = n.editor.proxy;
var paramname = n.editor.editKeys[i].postcs;
proxy.set(paramname, paramname.asSpec.map(val / 127));
});
};
)