Drafting a small library of custom-tile widgets

Hi all,

Over the past few weeks I’ve been doodling custom-tile widgets for the MK2 — step sequencers, note-list editors, LFO visualisers, meters. They started as one-offs to solve my own needs, tests, tools and quietly grew into a small design-system experiment. Sharing the work-in-progress here in case it sparks ideas, criticism, or — better — collaboration.

Repo: GitHub - roomi-fields/electraone-widgets: Community library of custom Lua widgets for the Electra One MIDI controller · GitHub (MIT, fork-friendly)

Each widget is a single custom tile rendered entirely in Lua (using `setPaintCallback` + `setTouchCallback` + `setPotCallback`). They share a small design system in `lib/`:

  • `theme.lua` — a cool slate + warm amber-terracotta palette inspired by the MK2’s brushed aluminum

- `lib/primitives/*.lua` — reusable building blocks: `knob`, `button`, `grid`, `led`, `meter`, `slider`, `bar`, `readout`, `graph`. Each renders without any “default fader” fallback so a widget paints exactly what you tell it to.

How to use them today

The widgets ship as standard tiles-schema preset JSONs (`widgets//demo.preset.json`).

1. Open the demo preset JSON from the GitHub repo
2. Import it into `app.electra.one` (drag-and-drop or paste into the editor)
3. Click “Send to Electra”

How to contribute / push back / fork

- Open an issue with “this widget should do Y” — I’ll either implement it or hand off the spec

  • Open a PR with your own widget in `widgets//` — happy to ship them under your name, no central gate-keeping
  • Reply here with screenshots of *your* custom-tile widgets — even the failed experiments. The forum has way more EL1 art than the docs let on, and most of it is hidden in screenshots scattered across old threads. Worth pooling.

Not trying to “own” widget design for the EL1 — just hoping this becomes a community-shared collection. Curious to see where it goes.

Romi

4 Likes

This is awesome.

Hoping to see 4 parameter and 8 parameter widgets with custom names per parameter that can use a row of knobs or all of the mini knobs.

Hoping these work on Mini as well.

Thanks!

Both asks land on the same firmware limit — custom tiles only receive pot events from ONE pot, regardless of how many inputs you declare. Martin acknowledged it in https://forum.electra.one/t/multi-value-custom-controls (#4172),
not shipped as of 4.1.4. Worth a +1 there if you want it sooner.

Until then, three workarounds that already work today:

  • Multi-tile grouping — place 4 or 8 narrow custom tiles side-by-side, one pot each. Visually it reads as one widget. (Heads up: span/vspan are buggy past the first tile — usectrl:setBounds() in preset.onLoad.)
  • Mode toggle inside one tile — single pot, touchscreen tap to switch which parameter it edits. widgets/note-list-16/ in the repo uses this pattern.

Custom names per parameter — yes. Anywhere a built-in shows the parameter name you can override it in Lua viagraphics.print, and a custom tile paints whatever string you
hand it.

Mini support — the widgets currently target the MK2 layout (theme.lua has MK2 WIDTH/HEIGHT constants). Adapting to Mini shall mostly be recomputing the bounds per primitive. But I don’t have Mini to test it so it will be too painfull to develop without the ability to test it on my one.