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 for hdgui_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 and device_2D.lua) as well as the Rack Extension definition (info.lua and motherboard_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 and device_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

Main Window (dark style)

Light Style

Main Window (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
Due to the open source/free nature of this application, it is currently not notarized. So this means that you will have to explicitely and manually grants it permission. You can read more about it in the Safely open apps on your Mac Apple Support page.

Big Sur Security Preferences
Screenshot showing the typical Security Preference you need to tweak (may vary per OS)

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 the pongasoft folder
  • To uninstall, go to the "Add or Remove program" Windows panel and uninstall it from there
Due to the open source/free nature of this application, Windows will ask for permission from an "Unknown" publisher.

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 represents a popup menu (more than one action available) when using LMB
  • 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

macOSWindowsDescription
⌘ =Ctrl + =Increment zoom (+10%)
⌘ -Ctrl + -Decrement zoom (-10%)
⌘ 0Ctrl + 0Zoom to fit
⌘ ZCtrl + ZUndo
⌘ ⇧ ZCtrl + Shift + ZRedo
⌘ SCtrl + SSave
⌘ QCtrl + QQuit
AltAltDisable the grid temporarily while being held
ArrowsArrowsMove the panel
Space Bar + LMBSpace Bar + LMBMove the panel (when mouse is over the panel)
Mouse WheelMouse WheelZoom in/out (when mouse is over the Panel)
AAToggle Select All/Select None
BBToggle Widget Borders
CCCenter the panel
FFZoom to fit (one hand shortcut ;)
QQQuick View (while being held)
RRToggle Rails (also toggle Panel X-Ray to see the rails)
XXToggle 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)
  • 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
A single widget attribute value
  • Another widget => copy this attribute to the widget (if possible)
  • Selected widgets => copy this attribute to the selected widgets (if possible)
Selected widgets
  • Any panel where the type of the widgets is allowed => duplicates the widgets

Quick View

Quick View is achieved by holding the Q 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
    Nonewidgets are not rendered at all (can be useful for example combined with Border/Normal)
    Normalwidgets are rendered at full opacity
    X-Raywidgets 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
    Noneno border is rendered
    Normalthe 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
    Nonepanel is not rendered at all
    Borderjust the outline of the panel
    Normalpanel is rendered at full opacity
    X-Raypanel 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)
    Nonenot rendered
    Borderan empty rectangle
    Filla filled rectangle
  • Custom Display: lets you change how custom displays are rendered
    Nonenot rendered
    Mainthe "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
    Nonenot rendered
    Filla 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)
    Nonenot rendered
    Showshow the fold icon
  • Rack Rails: the same rails that are rendered in the Reason UI
    Nonenot rendered
    Showshow 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 Up or Down lets you change the order in which widgets are rendered (and represents the order in the hdgui_2D.lua file). Since widgets are not allowed to overlap, it is only important for static_decoration which can be rendered above or below another widget

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.

Decals have their own section in the Widgets window because their order is always below all other widgets

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
  • 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
  • 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-Ray
      • F for Zoom to fit
      • C for Center panel
      • B to toggle Widget borders
      • R 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