All Projects → SimoDax → MSI-mystic-light-tool

SimoDax / MSI-mystic-light-tool

Licence: GPL-3.0 license
Open project to implement our own led effects for Mystic Light-enabled MSI products

Programming Languages

C++
36643 projects - #6 most used programming language
c
50402 projects - #5 most used programming language

Projects that are alternatives of or similar to MSI-mystic-light-tool

MSI-LED-Control
This is a custom controller for the MSI graphics cards.
Stars: ✭ 20 (-54.55%)
Mutual labels:  led, msi
iswix
Industrial Strength Windows Installer XML Application
Stars: ✭ 75 (+70.45%)
Mutual labels:  msi
Ailight
AiLight is a custom firmware for the esp8266 based Ai-Thinker (or equivalent) RGBW WiFi light bulbs
Stars: ✭ 248 (+463.64%)
Mutual labels:  led
RGB-Fusion-Tool-PS
Powershell that use RGB Fusion CLI to associate profiles with Windows Processes
Stars: ✭ 30 (-31.82%)
Mutual labels:  led
awesome-ws2812
A curated list of awesome resources for ws2812 LED strips and matrices
Stars: ✭ 84 (+90.91%)
Mutual labels:  led
ESP8266 ArtNet-LED-DMX-Node
ESP8266 based WiFi ArtNet-Node for WS2812B-LED Pixel
Stars: ✭ 67 (+52.27%)
Mutual labels:  led
Jled
Non-blocking LED controlling library for Arduino and friends.
Stars: ✭ 197 (+347.73%)
Mutual labels:  led
kiosk-demo-electron
Package and distribute Electron Apps and run them in Kiosk mode on Windows 10
Stars: ✭ 68 (+54.55%)
Mutual labels:  msi
intel-nuc-led-controller
GUI tool to control the front panel LED ring on Intel NUCs
Stars: ✭ 20 (-54.55%)
Mutual labels:  led
EnvelopLX
Interactive LED lighting control for Envelop
Stars: ✭ 39 (-11.36%)
Mutual labels:  led
ledcat
Control lots of LED's over lots of protocols
Stars: ✭ 89 (+102.27%)
Mutual labels:  led
cyclops
Precision current source, with optional optical feedback, for driving LEDs and laser diodes
Stars: ✭ 38 (-13.64%)
Mutual labels:  led
homebridge-magichome-platform
Homebridge Plugin for MagicHome LED Strips with Preset Scene Automation Support (Cycle Color/Fade/Strobe)
Stars: ✭ 46 (+4.55%)
Mutual labels:  led
MSI-GS63VR-Hackintosh
macOS Monterey on MSI gs63vr 7rf (hackintosh)
Stars: ✭ 19 (-56.82%)
Mutual labels:  msi
status-o-cat
GitHub system status indicator
Stars: ✭ 13 (-70.45%)
Mutual labels:  led
Lpd8806
Arduino library for LED strips and pixels using LPD8806 (and probably LPD8803/LPD8809)
Stars: ✭ 207 (+370.45%)
Mutual labels:  led
stm8s-sdcc-examples
Example codes using sdcc to target STM8S MCUs.
Stars: ✭ 31 (-29.55%)
Mutual labels:  led
ESP8266-MQTT-JSON-Lights
ESP8266 MQTT JSON Lights. Supports brightness, effects, speed and OTA uploads. Works with MQTT JSON and Home Assistant
Stars: ✭ 27 (-38.64%)
Mutual labels:  led
uchroma
An advanced driver for Razer Chroma hardware in Linux
Stars: ✭ 45 (+2.27%)
Mutual labels:  led
lemon
Lemon – LED Monitor – is a $79.43 opensource alternative to LaMetric that supports GitHub-, IFTTT- and Zapier-webhooks and even integrates with Pushover!
Stars: ✭ 45 (+2.27%)
Mutual labels:  led

MSI-mystic-light-tool

Open project to implement our own led effects for Mystic Light-enabled MSI products

You may know that MSI has released a C++ SDK (update: I uploaded here the sdk reference since the link on MSI's own website is broken) to embed led control in third-parties applications. As the official Gaming App doesn't support many effects (and in my case, I'm limited to 7 colors), I'm planning to code a customizable led tool to get the most out of our leds :)

If your system is not compatible with Mystic Light 2, there's a nice alternative which interfaces directly to the hardware and doesn't rely on MSI's stuff: MSIRGB. Unlike Mystic Light, there is no colour limitation (which is a software limitation, not a hardware one)

UPDATE: For now there's just a stub on how to use it. You need to run the program as administrator to make it work (thanks jugglincode, see issue #1). It works with Mystic Light 2 compatible systems, I tested with ML1 and I got errors after initializing the sdk, feel free to try tho. I'm going to build a user friendly program with Qt soon (I think it's the best library to interface C code with an UI), so even people not comfortable with programming can use this. For reference, here's a link to Mystic Light 1 installer, and another one to Mystic light 2. I got the library working in Visual Studio 2017, I suggest using that. Remember to compile for x86, the dll won't load in 64 bit applications. If you manage to get it working, please let us know, feedback is much appreciated!

How it works

If you look at the documentation (which is more a reference than a documentation as there's no hint about what every function does), you'll see that every function (except for Initialize and GetDeviceInfo) require as input parameters BSTR type, DWORD index, which are exactly the elements of the two SAFEARRAYs returned by GetDeviceInfo (pDevType and pLedCount).

About 'type':

The reference says that pDevType contains the "defined type of all devices". With this they mean that every element of this array is a string (BSTR, to be precise) containing the identifier of each hardware you can control leds of (ex: item #1: motherboard name, item #2: gpu name ...and so on). This way the functions setting the lights know which part of the pc you are referring to.

About 'index':

The second paramater, index, lets the functions know which led (or led area, if they aren't controllable one by one) you want to set the colors of, and again, pLedCount will give you the led (or led areas) count for each hardware (ex: item #1: 2 (e.g. mobo may have two led zones), #2: 1 (e.g. gpu may have just one led area) ). This way you know the maximum index you can pass to the functions.

If you're not familiar with Safearrays, here's a MSDN article about them: https://msdn.microsoft.com/en-us/magazine/mt795188.aspx

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].