Orestes‐One Module User Guide - rjsmith/rsbatech-modules GitHub Wiki

This is the user guide of the Orestes-One VCV Rack module.

Orestes-One enables two-way remote control of a VCVRack patch using the Electra One MIDI controller together with the related Electra One preset.

[!NOTE] Orestes-One is a customised version of the excellent MIDI-CAT module from stoermelder. Please see the MIDI-CAT documentation for more details on its basic mapping operations, per-parameter settings and so on. This guide focuses on the changes made on top of the MIDI-CAT module that makes it work with the Electra-One controller.

[!IMPORTANT] A large proportion of Orestes-One code was directly copied from the Stoermelder plugin-one codebase. Please do not contact stoermelder for support of Orestes-One. Any issues or bugs in Orestes-One should be reported on this repo, thanks.

MIDI Connections

Orestes-One needs two pairs of MIDI connections to an Electra-One device, to a data port and the dedicated E1 CTRL port. The MIDI setup is saved with the module state in each Rack. You can also create a module preset so you can quickly re-apply it when adding Orestes-One to new racks.

Orestes-One MIDI Connections

Orestes-One Main Context Menu

MIDI-CAT Options

Menu Option Action
Panel Select light or dark UI theme
Preset Load Change what mapping list data is imported from a loaded Orestes-One preset
Precision Sets the feedback message rate back to Electra-One
Mode Set the parameter mapping mode between normal "Operating" and "Locate and indicate", useful for checking which module parameter is mapped
Re-send MIDI feedback Manually send mapping snapshot to Electra One, shouldn't be necessary in normal operation
User interface UI settings
Scroll to module (Added) Optionally centre rack viewport on selected module
Status overlay Toggle the mapped parameter value overlay on the VCV Rack UI

Parameter Mapping

Menu Option Action
Automap this rack and save One-click parameter mapping for every module in the VCV Rack patch. See Automapping below. Mappings are immediately saved into the current module mapping library file (with a "(A)" suffix)
Map module (select) Sub-menu to choose how to add parameters to the active mapping list, then select a module. Its parameters will be added to the mapping list where you can then map to the controls on pages 1-6 of the preset
Map module (select) -> Automap and save All mappable parameters of the next selected module will be automatically mapped and immediately added to the mapping library, in the order in which the module's programmer specified them in the module code
Map module (select) -> Clear first The current active parameter mappings list will be cleared and replaced with the parameters from the next selected module, ready for manual control mapping. Recommended for manual control to parameter mapping
Map module (select) -> Keep assignments The parameters from the next selected module will be added to the active mappings list re-using any existing control mappings
Add module to library This lists the module(s) for parameters in the active mapping list. Selecting one adds the mapped parameters for that module to the Mapping Library
Save rack - level mapping This saves the current mapping list as a special Rack - level mapping (overwriting an existing rack-level mapping, if defined).
Clear Mappings Clears the mapping list. Does not affect the Mapping Library
Apply module mapping Turns on the apply mode. Then select a module in the VCV Rack patch. If it has a mapping in the Mapping Library, it will be written into the active mapping list and sent to Electra-One
Apply rack-level mapping Switches the active mapping list to the saved rack-level mapping

Mapping Library

Menu Option Action
Autosave changes into mapping library If on, it will immediately save any new or amended module mappings into the Mapping Library JSON file
Manage library mapping Lists all of the VCV Rack Plugins and modules in the current loaded Mapping Library. You can delete and export module mappings here
Import module mappings from file Select a JSON mapping library file to import module mappings from (e.g. from the individual factory plugin mapping files in the RSBATechModules plugin presets folder). You can choose to skip importing mappings for modules already mapped in the current loaded mapping file, or overwrite all mappings from the imported file.
Import module mappings from factory library Import mappings from the Orestes-One factory mapping library file. You can choose to skip importing mappings for modules already mapped in the current loaded mapping file, or overwrite all mappings from the factory library.
Save mapping library... Manually save the loaded mapping library to a mapping library JSON file
Change mapping library Select a different mapping library JSON file to load into Orestes-One
Create empty mapping library file... Start again with an new empty mapping library file, letting you curate a subset of module mappings e.g. for a specific VCVRack patch
mapping library filename Shows the filename of the current loaded Mapping Library JSON file

Orestes-One Mapping List Context Menu

Right-clicking on any row in the main mappings list shows a per-parameter context menu. This lets you add slew and range changes to each mapped parameter. It is identical to the MIDI-CAT per-parameter menu (except it only handles 14 bit NPRN values 0..16383).

You can override the normal parameter name with a custom label, which, if set, will be sent and displayed on Electra One instead. For example, if certain modules report long parameter names, you can shorten the names so they are more readable on the Electra One display. Custom labels are stored in the module mapping library.

Mapping Library

Orestes-One holds a library of per-module parameter mappings in internal memory. Once loaded, you will be able to control any instances of mapped modules in the current VCVRack patch from your Electra-One.

The library is loaded from a JSON file into Orestes-One memory, and can be automatically and / or manually dumped back into the same file. You can also:

  • Load a different library file
  • Import module mappings into your current library from other Orestes-One library files (so people can curate and share their own mappings)
  • Import module mappings from the Orestes-One factory mapping library file
  • Export mappings for modules in a single VCVRack plugin into a new library file

[!WARNING] Orestes-One presets and saved VCVRack patch data only store the path to a local mappings library file, not the mappings themselves. When you open a VCVRack patch with a saved library filepath, add an Orestes-One module to a patch, or switch Orestes-One presets, the library file is read and loaded into Orestes-One. If you want to re-open a patch with exactly the same mapped modules available every time, it is suggested you make a copy of the library file and save it alongside the .vcv file, then select it in the Orestes-One in that patch and then save the patch again.

Automapping

Orestes-One (directly) copies the manual parameter mapping capabilities from Stoermelder's MIDI-CAT module. This is great if you want to hand-craft parameter layouts across the six pages of 36 controls each on the Electra-One (which will saved in the mapping library for re-use in any other patch that loads the same library file).

However, to help speed that workflow up if you are OK just to have the controls mapped in order that they are defined in the code of a given VCVRack module across the Electra-One controls starting from the top of page 1, then use the Automap functions:

  • You can automap all the parameters of a single module and add that to your module library. Automapped modules show up in the "Manage library mappings" list with a (A) after the module name.
  • You can automap all the parameters of *all the modules in a patch in one go. You can decide to either skip any modules that you already have mappings for in your current loaded library, or overwrite them with the new automapped ones.

Rack - Level Mapping

Designed to let you switch between a single rack patch - level mapping, and individual module mappings. This works really well for patches that use the MindMeldModular PatchMaster to create performance controls.

Map the PatchMaster controls to up to 216 Electra-One controls in pages 1-6, then save that as the rack-level mapping. The rack-level mapping is saved with the VCV rack patch and Orestes-One presets. You can now play the patch via Electra-One and the PatchMaster performance controls. But you can load the mapping for any individual mapped module at any time (e.g. from page 12 of the E1 VCVrack preset), then switch back to the rack-level mapping again.

Changes to MIDI-CAT features

Unless otherwise stated below, all of the MIDI-CAT features (up to packOne v2.0.0-beta4 at time of writing this version of the wiki) are supported.

  • Removed MIDI CC7 and MIDI Note mapping, replaced with packed 14bit sysex messages
  • Added two more required MIDI port selections, for Electra-One's CTRL MIDI ports
  • Combined the MIDI-CAT-MEM expander controls into the Orestes-One module widget
  • Removed the "Map module (left)" right-click mapping option, to help cut down the size of the context menu list.
  • Removed importing presets from VCV MIDI-MAP
  • An active mapping slot can be unmapped by hitting the CTRL + SPACE-key while hovering the mouse over MIDI-CAT
  • The functionality in the MIDI-CAT-MEM expander was folded into the Orestes-One module and then extended.
  • Orestes-One does NOT provide expanders or support use with the MIDI-CAT expanders (expander - supporting code in MIDI-CAT was removed from Orestes-One)