SuperCollider support for the Electra

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 :slight_smile: - 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.

10 Likes

I would be very interested in seeing that! I am quite sure that if the library was shared on GitHub, along with one or two examples, some users would start using your work or even contribute to it.

1 Like

I would definitely take a look at this if it was made available. Not a heavy SC user currently, but have used it in the past and have interest in coming back to it at some point.

2 Likes

Me too, I would ttry it.

2 Likes

I’d likely try it as well.

2 Likes

Super Interesting! Complete Electra n00b here, but like @drohnee followed SuperCollider over the years and this would be a great excuse/nudge to get back into it. Would definitely give it a try :+1:

2 Likes

Cool! Seems like some interest - in the coming weeks I’ll post the code and some examples, or maybe a short demo.

5 Likes

I am also interested. I intend to use my E1 with a Monome Norns. The Norns essentially uses Lua to connect SC to a hardware UI and to MIDI etc. Since I’m learning both Lua and SC in the process, I’d appreciate seeing what you’ve done.

A late bump for this. This sounds amazing @scztt ! I’m interested in getting an Electra only for use with SuperCollider. It would be great to see how at least some of your library works…