Electron + React mobile MIDI controller for Sunlite Suite 2 and FreeStyler. It lets a phone or tablet control lighting software through a local Wi-Fi web interface and loopMIDI.
Phone / tablet
-> Wi-Fi web controller
-> Electron app on PC
-> loopMIDI
-> Sunlite / FreeStylerFor feedback colors and fader values:
Sunlite / FreeStyler MIDI OUT
-> loopMIDI
-> Electron app
-> WebSocket
-> Phone / tablet UI- Install loopMIDI.
- Create two loopMIDI ports:
Sunlite Mobile In
Sunlite Mobile Out- In Sunlite or FreeStyler, select:
MIDI input -> Sunlite Mobile In
MIDI output -> Sunlite Mobile Out- Start the app.
- Scan the QR code from your phone.
- Map the MIDI notes and CC controls in the lighting software.
Use separate ports:
App -> Sunlite Mobile In -> Lighting software
Lighting software -> Sunlite Mobile Out -> App feedbackDo not use the same port for both input and output.
The app renders the active MIDI console from a controller model definition in:
src/shared/midi-controllers/The current default model is akai-apc-mini-mk2. Additional console models should be
created as their own files, then added to CONTROLLER_MODELS in
src/shared/controller-models.ts.
- 8×8 pad matrix.
- Pads start at MIDI note
36. - Right-hand scene buttons use MIDI notes
112through119. - Bottom pads use MIDI notes
100through107. - Bottom-right corner pad uses MIDI note
122. - Faders use CC
1through9.
Pad 1 / Blackout -> Note 36
Pad 2 / Full On -> Note 37
Pad 3 / Scene 1 -> Note 38
Pad 4 / Scene 2 -> Note 39
Pad 5 / Scene 3 -> Note 40
Pad 6 / Scene 4 -> Note 41
Pad 7 / Strobe -> Note 42
Pad 8 / Move 1 -> Note 43
Scene Launch 1 -> Note 112
Scene Launch 2 -> Note 113
...
Scene Launch 8 -> Note 119
Bottom 1 -> Note 100
Bottom 2 -> Note 101
...
Bottom 8 -> Note 107
Corner -> Note 122
Dimmer -> CC 1
Speed -> CC 2
Red -> CC 3
Green -> CC 4
Blue -> CC 5
White -> CC 6
FX -> CC 7
Size -> CC 8
Master -> CC 9Incoming MIDI note velocity controls the pad color using the APC RGB velocity table.
Examples:
Velocity 0 -> off
Velocity 9 -> orange
Velocity 21 -> green
Velocity 45 -> blue
Velocity 96 -> orange
Velocity 127 -> dark brownThe MIDI channel controls LED behavior or brightness. The velocity controls the color.
bun install
bun run startbun run format
bun run checkbun run dist:winBuild files are generated in:
release/PowerShell:
$env:MIDI_OUTPUT_NAME="My MIDI Input Port"
$env:MIDI_INPUT_NAME="My MIDI Feedback Port"
bun run startCMD:
set MIDI_OUTPUT_NAME=My MIDI Input Port
set MIDI_INPUT_NAME=My MIDI Feedback Port
bun run startThe default port is 3000. If it is busy, the app tries the next available port.
To set a preferred port:
$env:PORT="3005"
bun run startThe phone must be on the same Wi-Fi network as the PC. Windows Firewall must allow the app, Node, or Electron to accept private network connections.
For update hosting details, see:
UPDATE_SETUP.md