Skip to content

stringandstickytape/MaxLights

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

35 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MaxLights

A Windows app to control Lifx, WLED and RGB.Net (Corsair/MSI/Logitech/ASUS currently supported) LEDs.

Overview

MaxLights uses drag-and-drop functions, which combine to create effects. The following diagram creates a chasing-rainbow effect by varying the hue across 258 LEDs, while setting the brightness and saturation to maximum (65535):

2

Features

  • Send lighting effects to LIFX, WLED and RGB.Net (Corsair/MSI/Logitech/ASUS) devices
  • Drag-and-drop functions which combine to create effects
  • Supports single- and multi-LED devices
  • Audio, Screen, Keyboard reactivity
  • More functions than you can shake a weirdly antialiased stick at

Any interested C# developer can add functions simply by adding a new class, which will be discovered at runtime via reflection. Add.cs is a good example of such a function. Suggestions for useful or fun functions are actively solicited; please raise a GitHub issue.

Installation

  1. Download the latest release from https://github.com/stringandstickytape/MaxLights/releases .
  2. Unzip it to the folder of your choice.
  3. Run MaxLights.exe
  4. If you see a Windows firewall popup, allow MaxLights appropriately

Desktop Window

On startup, MaxLights presents the following window:

1

Any LIFX devices detected on your LAN will be shown automatically. If "Enable PC Hardware Support" is ticked, there will be a ten-second delay on startup, and any detected devices will be listed. WLED devices must be added manually (see below).

You can use the Load and Save Diagram buttons on the Desktop UI to load and save the current state of MaxLights. When loading a diagram that references unavailable lights (for instance, if the diagram was prepared on a different PC), MaxLights will pop a window asking you to pick a replacement light that does exist. You can use the "Load and Remap Diagram" button to remap all the lights in a diagram.

Each device listed has a "Monitor" button. Clicking this button will make any values sent to that device, appear in the Desktop UI above the devices list, and incur an enormous performance penalty in so doing.

Web UI

Diagrams for effects are created through a web UI, to allow for easy visual programming. Click the "Launch Web UI" button to launch the UI.

If no diagram is currently loaded, the Web UI will look something like this:

3

To create a basic effect:

  1. Right-click some whitespace to pop the functions menu (note the search box at the top):

4

  1. Add a Number-To-List function. Set its Item to 65535 (the maximum value for hue, saturation or brightness), and set its Items to Generate to 1.

  2. Connect the Number-To-List output "List of Numbers" to the Hue, Saturation and Brightness inputs of your chosen device.

  3. Connect your chosen device's Rendered Light output to the Renderer. THIS IS CRITICAL - lights not connected to the renderer will not render (!), and indeed will not even be uploaded from client to server.

Your diagram should now look something like this:

5

  1. Now click "Upload" to upload the diagram to MaxLIghts. The first LED on the device you selected, should turn red, because we have set hue to 65535 (red), and saturation and brightness to 65535 (maximum).

Adding a WLED device manually

Hit "Add Device", and enter the IP address, WLED Broadcast port and number of LEDs for the WLED device you want to control. The WLED Broadcast port can be found in WLED -> Settings -> Sync Interfaces -> WLED Broadcast -> UDP Port.

11

Examples

  • Sound responsive

The following diagram will make the first ten LEDs on a device, react to a range of frequencies in the audio output. Auto Gain is used to ensure a full range of hues. You could also use one of the expand functions to make this into ten colour areas across a larger range of LEDs.

6

The following diagram will set the first 100 LEDs on a device to a random colour, on every beat of the currently-playing music:

7

  • Screen Responsive ("Ambilight")

The following diagram will take 300 screen samples in a line down the left-hand-side of monitor 0, and send them to the chosen device. Values were calculated by using the 3840x2160 helper button - but you must set Monitor manually. Note the use of "HSB" as an alternative to separate H/S/B connections:

8

The following diagram will take ten screen samples from each side of monitor 0, combine them into a list of twenty samples, shuffle that list, then send the first ten to one device and the remainder to another device (!) :

9

  • Keyboard response

The following diagram will set the first three LEDs of the selected device, to red. When a key is pressed, the colour will change to a hue based on the code of the key pressed:

10

Readme TODO:

  • Adding WLED devices manually
  • Acknowledgements for the various genuises upon whose work, MaxLights is built

About

Windows lighting control app

Resources

Stars

Watchers

Forks

Packages

No packages published