I don’t see it discussed here at all, but I want to quickly ask around: is anyone here using (or interested in using) the Electra for controlling SuperCollider? I ask because I’ve built quite a lot of SuperCollider <> Electra infrastructure - if this was interesting to other people, I would consider sharing my library publicly.
The feature set is something like:
- Automatic creation of Electra presets based on SuperCollider control values defined in code.
- Automatic layout of controls, including groups, multiple pages, custom colors for controls and groups, detection of unipolar vs bipolar.
- Support for 7 and 14 bit CC
- Bi-directional control (e.g. changes to SuperCollider control values updates the Electra - though the Electra is a bit too slow for this to work in practice if you’re dynamically controlling all of your knobs)
- Support for correct display of all stock ControlSpec’s (e.g. db controls, exponential warp, as well as reasonable rendering of floating point numbers for a wide variety of values ranges)
- Partial implementation of Electra’s sysex API, including page switching driven from SuperCollider.
- Support for probably 80% of the preset JSON schema - it can handle sliders, buttons, lists, overlays, images (automatically converted from SuperCollider Image objects or icons loaded from disk) - no envelopes yet.
- Not a feature of the Electra library per-se, but it supports controls being integrated inline into Patterns as well as connected to synth parameters and buses, and Synth-driven modulation of control values for things like LFO-driven knobs, smoothing, animation, on-device level meters, etc (again, in accordance with the Electra’s limited ability to update many parameter values at once).
The end result of this is actually a bit less interesting than the feature list - I can use refer to control values in my code, and they’ll automatically appear at parameters on my Electra (with reasonable labels, colors, grouping, lua formatters, blah blah), and the code will still work if my device isn’t plugged in.
It’s a bit of an alpha quality library - I badly needed this for actual music-making and performances, so feature development was a million miles-per-hour. But I use it almost daily, so it works well enough if one is comfortable with slightly advanced-level SuperCollider programming tasks. This might also be interesting for anyone who doesn’t use SuperCollider but wants to programmatically generate complex presets with code, rather than dragging things in the editor.