Skip to content

MatthewInch/UI24RBridge

Repository files navigation

UI24RBridge

Bridge between the UI24R and a MIDI controllers. Current version can manage one or two controller. If you want to use more you can run more bridge instance.
This is a beta project. It tested only on Windows with Behringer X-Touch MIDI controller.

You can download the latest release here. The Linux and MacOS binaries wasn't tested.

Implemented the Mackie Control protocol (It can work with any DAW controller that can use in MC mode).
The earlier protocol has not been removed but the new functions only implemented in MC mode.

The Bridge functionalities:

  • Use 2 groups with 6 layers of faders for each bank
    • Bank I
      • Layer 1: Input 1-8
      • Layer 2: Input 9-16
      • Layer 3: Input 17-24
      • Layer 4: Line in, Player, FX 1-4
      • Layer 5: AUX 1-8
      • Layer 6: AUX 9-10; VCA 1-6
    • Bank V (configurable with Global View Groups in mixer app)
      • Layer 1: VIEW 1 (if set)
      • Layer 2: VIEW 2 (if set)
      • Layer 3: VIEW 3 (if set)
      • Layer 4: VIEW 4 (if set)
      • Layer 5: VIEW 5 (if set)
      • Layer 6: VIEW 6 (if set)
      • You have to select 8 channels per View group at least, otherwise the view group will be ignored
    • Bank U (user defined layers, load from ViewGroups.json file, initially the same as Bank I)
      • Layer 1: User defined
      • Layer 2: User defined
      • Layer 3: User defined
      • Layer 4: User defined
      • Layer 5: User defined
      • Layer 6: User defined
      • If you want to edit user bank, select channel in user group, hold USER button and select new channel with JOG wheel while still holding USER button.
      • Changes must be saved with Global View button, otherwise changes will be discarted on app restart
    • Switch between Banks with Fader Bank << and Fader Bank >> buttons or K (up) and J (down) key on the computer
    • Switch between Layers in current bank with Channel Bank << and Channel Bank >> buttons or M (up) and N (down) key on the computer
  • The faders work on every type of channels
  • The knobs set the gain on the input channels
  • Channel Select, Solo and Mute buttons work on every channel
  • Channel Rec button sets either Mtk rec or Phantom 48V (selected in appsettings.json)
  • Buttons F1-F8 switch to AUX1-8 sends
  • Button Switch, Option, Control and Alt switch to FX1-4 sends
  • Control Media player with <<, >>, Stop, Play buttons
  • Start Recording with Rec button
  • Global View button to save Layer Banks U
  • SMTPE/Beats Button to Tap Tempo
  • Automation buttons (Read/Off, Write, Trim, Touch, Latch, Group) to control Mute Groups
  • Save button to Mute All
  • Undo button to Mute FX
  • Cancel button to Clear Mute
  • Enter button to Clear Solo

Future functions

  • Pan, HPF, EQ, Dyn

Configuration

In the settings file (appsettings.json):

  • UI24R-Url: the mixer url (simply copy the url from the browser and replace http to ws and remove the /mixer.html from the end)
  • MIDI-Input-Name,MIDI-Output-Name: The controller name. If you don't know it simple remove these to row from the config file and modify the mixer url to an invalid value. The UI24RBridge write all of the available MIDI device to the console.
  • MIDI-Input-Name-Second,MIDI-Output-Name-Second: The second controller name. It can be an extender or any other MC device. The AUX, FX, Bank Up/Down, Layer Up/Down automatic link from the first controller
  • PrimaryIsExtender,SecondaryIsExtender: Default is false. If the controller channel lcd not working you can try "true" value.
  • PrimaryChannelStart,SecondaryChannelStart: It can be 0 or 1. 0 means the controller start with first layer, 1 means the controller start with second layer (if you use two controller you can decide which is the "left" and which is the "right")
  • Protocol: MC or HUI, or empty (for now use MC)
  • SyncID if you want to use the select button you can set the syncID to the same value that you use in the mixer's default surface (you can set it on the Settings/Locals page)
  • DefaultRecButton: If you press the rec button on the controller, the bridge start/stop the MTK and/or 2 track recording it depend the value of the "DefaultRecButton". Possible value is: onlyMTK, only2Track, 2TrackAndMTK
  • DefaultChannelRecButton: Sets what function has a rec button on controller. You can use phantom for controlling phantom voltage or rec to set multi-track recording for this channel; default is "rec
  • AuxButtonBehavior: If you want faders switched between main send, aux sends and fx send only during holding respective buttons (Release) or to be switched (Lock) to current aux/fx send until next press of aux/fx select button happened.
  • PrimaryButtons: Config file name for buttons behaviour. You can redefine the buttons functionality.

Example of the settings file

{
"UI24R-Url": "ws://192.168.5.2",
"MIDI-Input-Name": "X-Touch",
"MIDI-Output-Name": "X-Touch",
//"MIDI-Input-Name-Second": "X-Touch-ext", //Behringer BCF 2000: "BCF2000"
//"MIDI-Output-Name-Second": "X-Touch-ext", //Behringer BCF 2000: "BCF2000"
"PrimaryIsExtender": "false",
"SecondaryIsExtender": "true",
"PrimaryChannelStart": "0", //0: 1-8ch, 1: 9-16
"SecondaryChannelStart": "0", //0: 1-8ch, 1: 9-16\ "Protocol": "MC",
"SyncID": "Abaliget",
"DefaultRecButton": "2TrackAndMTK", //possible values: "onlyMTK", "only2Track", "2TrackAndMTK"; default is "2TrackAndMTK"
"DefaultChannelRecButton": "phantom", //possible values: "phantom","rec"; default is "rec"
"AuxButtonBehavior": "Lock", //possible values: "Release", "Lock"; Default is "Release"
"DebugMessages": "true",
"PrimaryButtons": "ButtonsDefault.json" }