RE Edit
Product Info
RE Edit is a free and open source WYSIWYG editor for the UI of a Rack Extension, or in other words, a graphical editor forhdgui_2D.lua
and device_2D.lua
. Although the tool is currently limited to the UI only, it is already extremely useful and depending on feedback, it may be expanded, at a later date, to allow supporting editing ALL configuration files (motherboard_def.lua, display.lua, etc...).
Main Features
- Load the Rack Extension UI (
hdgui_2D.lua
anddevice_2D.lua
) as well as the Rack Extension definition (info.lua
andmotherboard_def.lua
due to its integration with re-mock) - Allow to visually edit the device look and feel including adding/deleting widgets
- Show an error icon when a widget has errors (ex: missing required property, wrong number of frames, out of bound, etc...)
- Show a user friendly error message when an issue is detected in lua to make it easier to track the problem
- Handle all widget types
- Handle decals (like screws, holes, etc...)
- Undo/Redo
- Grid (for constrained movement)
- X-Ray rendering (show transparent widget to align with background)
- Save the changes (which saves
hdgui_2D.lua
anddevice_2D.lua
) - Generate
GUI2D/gui_2D.cmake
for integration with CMake (simply include in your project) - Import images (png) directly from RE Edit (single or multiple images)
- Support all built-in images (like cv socket, audio socket, etc...) so no need to manually import them
- Detect changes in the device and reload dynamically (on demand)
- Handle Custom Display SD/HD
- Handle 4K display
- Windows 10+ and macOS 10.15+ (Intel/M1 support)
Look & Feel
Dark Style

Light Style

Download
Select the download file according to your architecture (direct links). Select "Older Versions" to view the list of versions available.macOS Installation
- (Optional): Check that the checksum (sha256) matches
6258e6d0f4f79be6b2a41f344fa689bf895001e0525dccad8337629705986fc0
- Double click on the disk image to open it
- Drag and Drop "RE Edit" into the Applications folder
- To uninstall, simply drag "RE Edit" to the trash
Windows Installation
- (Optional): Check that the checksum (sha256) matches
cfa487c3da0a8cb0d587b394aeb40c450e2469dbd35bc77089ecf9067b6bc2a3
- Double click on the msi executable to install it
- The executable can be found under
C:\Program Files\pongasoft
(if you keep the default install directory) as well as in the startup menu under thepongasoft
folder - To uninstall, go to the "Add or Remove program" Windows panel and uninstall it from there
Usage
In the following documentation LMB (resp. RMB) means clicking with the left (resp. right) mouse button.General
- This icon represents a "Reset" action
- This icon LMB represents a popup menu (more than one action available) when using
- This icon shows that the widget is currently hidden (not visible in the Panel window)
- This icon shows that there is an issue with a property/widget. Hovering the mouse over this icon, will show what kind of error it is
Keyboard
macOS | Windows | Description |
---|---|---|
⌘ = | Ctrl + = | Increment zoom (+10%) |
⌘ - | Ctrl + - | Decrement zoom (-10%) |
⌘ 0 | Ctrl + 0 | Zoom to fit |
⌘ Z | Ctrl + Z | Undo |
⌘ ⇧ Z | Ctrl + Shift + Z | Redo |
⌘ S | Ctrl + S | Save |
⌘ Q | Ctrl + Q | Quit |
Alt | Alt |
|
Arrows | Arrows | Move the panel |
Space Bar + LMB | Space Bar + LMB | Move the panel (when mouse is over the panel) |
Mouse Wheel | Mouse Wheel | Zoom in/out (when mouse is over the Panel) |
A | A | Toggle Select All/Select None |
B | B | Toggle Widget Borders |
C | C | Center the panel |
F | F | Zoom to fit (one hand shortcut ;) |
Q | Q | Quick View (while being held) |
R | R | Toggle Rails (also toggle Panel X-Ray to see the rails) |
X | X | Toggle Widget X-Ray |
Copy/Paste
Copy/Paste is available via popup menus only (no keyboard shortcut at this time):
Source (Copy) | Target (Paste) |
---|---|
A single widget (copies all attributes) |
|
A single widget attribute value |
|
Selected widgets |
|
Quick View
Quick View is achieved by holding theQ
key while hovering some items. One way to think about it is "tooltip on demand":
- When hovering above a widget on the Panel
- When hovering above a widget name in the "Widgets" window
- When hovering above a property path
- When hovering above a graphics attribute
- When hovering above an entry in the "Open Recent" submenu
Layout
RE Edit uses ImGui dock space which allow for having each window either free floating or docked. As you move a window around (by LMB dragging it from its title bar) you will see docking icons to let you tailor the UI to your own needs. By default, all windows are docked in a sensible location. Feel free to rearrange (it is automatically saved with the preferences for the rack extension under edit).Use the Window/Horizontal Layout or Window/Vertical Layout to revert to the default built-in layouts.
Main Window
The main window (named after the Rack Extension under edit) has several sections:
- Tabs to switch between the 4 different views of the device (note that Note Players only have 2 views)
- zoom: Changes the zoom level of the panel rendering
- grid: Defines a movement constraint grid: when you move a widget around, it will move by the amount specified. To disable the grid entirely, set its size to 1. To disable the grid temporarily press the Alt key while you move widgets around.
- Widgets: how all widgets are rendered
None widgets are not rendered at all (can be useful for example combined with Border/Normal) Normal widgets are rendered at full opacity X-Ray widgets are rendered at reduced opacity which makes them transparent (perfect to see the background below for better alignment purposes) - Widgets Border: how the border of all widgets is rendered
None no border is rendered Normal the border (aka bounding box) is shown Hit B. the hit boundaries of the widgets are shown instead. Selecting this option adds a section in the Attribute/Graphics section to modify it - Panel: how the panel (background) is rendered
None panel is not rendered at all Border just the outline of the panel Normal panel is rendered at full opacity X-Ray panel is rendered at reduced opacity which makes it transparent (can be very useful to see the rails below in order to align screws, etc...) - No Graphics: how a widget defined by its size only is rendered (no image)
None not rendered Border an empty rectangle Fill a filled rectangle - Custom Display: lets you change how custom displays are rendered
None not rendered Main the "main" image (as defined by the "graphics" attribute) SD Bg. the low resolution graphics if provided/available ("background" attribute) HD Bg. the high resolution graphics if provided/available ("background" attribute) - Sample Drop Zone: lets you change how sample drop zone are rendered
None not rendered Fill a filled rectangle - Fold Icon: the icon rendered in the Reason UI to fold/unfold the device (not available for players since players are not foldable)
None not rendered Show show the fold icon - Rack Rails: the same rails that are rendered in the Reason UI
None not rendered Show show the rails (since they are rendered below the panel, to really see them you might need to use X-Ray toggle for the panel rendering)
Panel
Panel window is the primary window which renders the device with all the widgets
- As mentioned previously, the zoom level of this panel is controlled in the main window
- LMB Clicking on a widget, selects it and displays its information in the Panel Widgets window.
- LMB Dragging on a widget lets you move the widget to a different location
- LMB Clicking outside any widget selects the Panel itself
- LMB Dragging outside any widget lets you move the Panel around freely
- Space Bar + LMB Move the Panel around freely (particularly useful in the event that there is a widget under the mouse since clicking on a widget selects it)
- Shift + LMB Clicking lets you extend the selection to multiple widgets by drawing a rectangle
- Command + LMB Clicking (macOS) or CTRL + LMB Clicking (Windows), selects/unselects multiple widgets (same shortcut as the file selection in the macOS Finder/ Windows Explorer window)
- RMB Clicking on a widget or outside any widget brings up a popup menu with various actions like adding another widget
Panel Widgets
This window displays the currently selected widget(s). If no widget is selected, it displays the panel itself. If 1 widget is selected, it displays information about this widget. If more than 1 widget is selected, it lets you move them all at once (achievable by dragging in the Panel window as well) and aligning them.
Widgets
This window displays the list of all widgets on the current panel.
- LMB Clicking on a widget name, selects it and displays its information in the Panel Widgets window.
- RMB Clicking on a widget name, brings up a popup menu with various actions possible (including a shortcut to show the widget if it is hidden)
- Double LMB Clicking on a widget name, will make it visible if it was hidden (shortcut that sets the
visibility_switch
property to a value that makes the widget visible) - Command + LMB Clicking (macOS) or CTRL + LMB Clicking (Windows), selects/unselects multiple widgets (same shortcut as the file selection in the macOS Finder / Windows Explorer window)
- Shift + LMB Clicking selects the range of widgets between the last 2 clicks (same shortcut as the file selection in the macOS Finder window)
- Clicking on
hdgui_2D.lua
file). Since widgets are not allowed to overlap, it is only important forstatic_decoration
which can be rendered above or below another widget
or lets you change the order in which widgets are rendered (and represents the order in the
Properties
This window displays the properties that you are "watching". It lets you change the value of all properties which at this moment is useful only for visibility.
Decals
Rack extensions can have "anonymous" nodes in device_2D.lua
. These nodes simply get composited during the
render2D phase into the background image. RE Edit calls these nodes "decals" and let you name them.
Sponsor
pongasoft produces a variety of high quality and free/open source software. If you would like to support my work and help offset the cost of development tools, web hosting, etc. here are a couple ways to do so:
- Send money via PayPal
- Sponsor Me on github
Release Notes
1.3.0 - 2023/01/31
- Implemented Copy/Paste for bulk editing/changes
- You can copy a single widget (copies all attributes), and it can be pasted into:
- any panel where the type of the widget is allowed => duplicates the widget
- another widget => copy all (possible) attributes to the widget
- selected widgets => copy all (possible) attributes to all selected widgets
- You can copy a single widget attribute value, and it can be pasted into:
- another widget => copy this attribute to the widget (if possible)
- selected widgets => copy this attribute to the selected widgets (if possible)
- You can copy the selected widgets, and it can be pasted into:
- any panel where the type of the widgets is allowed => duplicates the widgets
- You can copy a single widget (copies all attributes), and it can be pasted into:
- Removed "Duplicate Widget(s)" menu entry since it is redundant with copy/paste (duplicate only allowed duplication on the same panel, copy/paste does not have this restriction)
- Added Select All/Select By Type menu entries (use
Alt
for adding hidden widgets) - Simplified popup menu on Panel (added Widgets submenu instead of multiple menu entries)
- Added
A
keyboard shortcut to toggle between Select All/Select None - Added
Q
keyboard shortcut to show a Quick View (while the key is being held). Essentially a tooltip on demand:- When hovering above a widget on the Panel
- When hovering above a widget name in the "Widgets" window
- When hovering above a property path
- When hovering above a graphics attribute
- When hovering above an entry in the "Open Recent" submenu
- Shift + click now also selects the widget under the mouse pointer (no need to move)
- Added more visible error icon in the tab bar
- Moved the notification section up to be sure it is always visible
- Various UI tweaks
- Fixed some issue with Undo/Redo
- Source Code v1.3.0
1.2.1 - 2023/01/22
- Fixed application name on macOS
- Fixed trackpad and mouse wheel sensitivity issue when zooming in/out
- Source Code v1.2.1
1.2.0 - 2023/01/20
- Major redesign of the panel:
- no more scrollbars
- input shortcuts
- click + drag to move freely (or space + click + drag if on top of a widget to disable selecting the widget)
- arrows to move the panel
- mouse wheel to zoom in/out (zoom focus point is wherever the mouse pointer is)
X
to toggle Widget X-RayF
for Zoom to fitC
for Center panelB
to toggle Widget bordersR
to toggle Rails (+ panel X-Ray to see them)
- added "Clear Recent List" menu entry
- fixed crash on redo
- fixed improper error reporting when moving multiple widgets
- Source Code v1.2.0
1.1.0 - 2023/01/12
- Added Fold Icon / Rack Rails (thanks to @jengstrom at Reason Studios for the icons)
- Added Panel rendering (None / Border / Normal / X-Ray) (for example, to see the rails)
- Changed zoom to be common to all panels and added Zoom to Fit (now defaults when device opens)
- Added keyboard shortcuts (Save, Undo/Redo, Zoom In/Out/Fit, Quit)
- Fixes #1: RE Edit fails to load nested decals
- Fixes #2: Decals are not rendered properly
- Some minor performance improvements
- Source Code v1.1.0
1.0.0 - 2023/01/02
- First release.
- Source Code v1.0.0