Jump to content
Corsair Community

iHue: A Phillips Hue sync clone for Corsair RGB Lighting


djhexx
 Share

Recommended Posts

I just wanted to showcase something I'm working on using @DarthAffe's RGB.net library. It's basically a program to emulate the functionality of the Phillips Hue Sync on Corsair devices. For those who don't know, this will pick the dominant color from the screen and set the led lights to the color it finds. It will work with any app, video, or game with low latency and relatively low CPU.

 

So far its coming along very well. Although it's still in very early stages, I couldn't help but to show you guys what I have accomplished so far. There is still tons of work to be done. I have a lot of plans to do a lot of pretty cool things with this.

Next features will be a richer color palette, color fading transitions, and the ability to split the screen into multiple regions and assign the appropriate LED lights to capture the color in the corresponding area of the screen.

 

It's just the beginning! Enjoy!

 

UPDATE (4/1): added gradient fading between color transitions. Also did A LOT of code cleanup / refactoring. No this is not an April Fool's joke :)

UPDATE: Added multi-part lighting zones. See Part 2 demo below.

 

Demo (PART 2): [ame]

[/ame]

Demo (PART 1): [ame]

[/ame]

 

 

Hope you guys enjoy.

Edited by djhexx
Link to comment
Share on other sites

  • Replies 54
  • Created
  • Last Reply

Top Posters In This Topic

I just wanted to showcase something I'm working on using @DarthAffe's RGB.net library. It's basically a program to emulate the functionality of the Phillips Hue Sync on Corsair devices. For those who don't know, this will pick the dominant color from the screen and set the led lights to the color it finds. It will work with any app, video, or game with low latency and relatively low CPU.

 

So far its coming along very well. Although it's still in very early stages, I couldn't help but to show you guys what I have accomplished so far. There is still tons of work to be done. I have a lot of plans to do a lot of pretty cool things with this.

Next features will be a richer color palette, color fading transitions, and the ability to split the screen into multiple regions and assign the appropriate LED lights to capture the color in the corresponding area of the screen.

 

It's just the beginning! Enjoy!

 

Demo:

Code: https://github.com/MetalHexx/iHue

 

Hope you guys enjoy.

 

This is awesome! I'm using Hue Sync, too. IMO iCue should have that functionality by itself. Keep on!

Link to comment
Share on other sites

ohh... nice.... i will have a play buddy :).. been using hue Sync my self, which only works with my Hue equipment, i have 3 hue play bars behind my screen..

 

 

 

I've seen your setup man and it's one of the videos that inspired me to work on this code. Really nice work. Maybe you'll be able to dump the Hue soon.

 

I just realized that the Hue sync app for iPhone is called iHue, so I guess I need to change the name of my project haha.

Link to comment
Share on other sites

Actually there is no Hue Sync App for iPhone. The Hue Sync App is for PC and Mac only. The Hue App for iPhone is just called "Hue".

 

Good to know. However iHue does exist even if its not the official app. Maybe it doesn't matter. We'll see. =P

 

https://www.google.com/search?q=ihue&oq=ihue&aqs=chrome..69i57j69i61l2j69i60j35i39j0.1775j0j7&sourceid=chrome&ie=UTF-8

Link to comment
Share on other sites

Got screen splitting working. You can split the screen in as many equal size parts as desired in a 2 dimensional matrix. Here I am arbitrarily splitting the LEDs across the surface into 2 zones and it looks like that resulted in my strips being blue and the peripherals red. Nice thing is, the CPU utilization wasn't affected even if I go as high as 10x10 (currently hitting around 10%) and latency seems unaffected.

 

Shouln't take too long to figure out how to fine tune the led addressing and get some sort of configuration scheme working. Ignore that direct x exception. It doesn't seem to affect anything. Bigger fish to fry. :)

 

(See attached screenshot)

IMG_20190330_020542.thumb.jpg.421a6b455a697746d93a92a393377e7a.jpg

Link to comment
Share on other sites

I wonder why Philips and/or Corsair don't get the multiple screen parts thing working

 

Oh does the phillips hue sync not do this? When watching demos on YouTube, I was under the assumption that it did...

Link to comment
Share on other sites

By the way folks, I got the fading between color transitions working as well which mitigates / eliminates the flashyness depending on many colors it's configured to generate between the transition. It seems 250 colors between color transitions is a nice sweet spot for fast moving video and games. 1000 (or whatever the max between colors is) is a nicer experience for chilling on the web and such. This setting will be configurable when I release binaries...
Link to comment
Share on other sites

Oh does the phillips hue sync not do this? When watching demos on YouTube, I was under the assumption that it did...

 

Actually not. It only recognizes the "major" color in the middle of the display. Not with the Sync App definitely. The Philips Ambilight TVs have a 2x2 partition (as far from what I've seen, no proof for that).

Edited by TackDaniels
Link to comment
Share on other sites

Actually not. It only recognizes the "major" color in the middle of the display. Not with the Sync App definitely. The Philips Ambilight TVs have a 2x2 partition (as far from what I've seen, no proof for that).

 

I see. Well as of right now, we've one upped them. As of the latest commit, you can now configure any arbitrarty partition(s) you want from a configuration file. This will lead to some very interesting applications.

 

Example: Rocket League

I have included a configuration profile that will change the color of your lighting to match the team you're on. This is done by creating a 1 pixel screen detection area on your teams score (which changes color depending on the team you're on. Now your lighting can match that.

 

Config:

{

"ConfigurationType": 1,

"ScreenAreaDimensions": [

{

"FromTop": "20px",

"FromLeft": "1065px",

"Height": "1px",

"Width": "1px"

}

],

"ColorChoices": [

"Blue",

"OrangeRed"

]

}

 

Future updates:

  • Color choices per screen area: Currently, I support configuring color choices across all screen areas. Soon you'll be able to assign a list of color choices PER area.
  • Configurable Devices: Device/Screen area assignments so you can customize to your own lighting setup.

Edited by djhexx
Link to comment
Share on other sites

device and screen area configurations have been split out into seperate files. Much cleaner. Specific color choices can be made per screen area. Think about this. You can split the entire game screen in to functional color choices per game element (health bar, score box, map, getting shot). Lots of creativity can go into this.

 

I'm thinking about getting saucy and have it select different profiles depending on whether your in game mode or the menu screen, etc. Maybe I'm going overboard haha.

Link to comment
Share on other sites

I see. Well as of right now, we've one upped them. As of the latest commit, you can now configure any arbitrarty partition(s) you want from a configuration file. This will lead to some very interesting applications.

 

Example: Rocket League

I have included a configuration profile that will change the color of your lighting to match the team you're on. This is done by creating a 1 pixel screen detection area on your teams score (which changes color depending on the team you're on. Now your lighting can match that.

 

Config:

{

"ConfigurationType": 1,

"ScreenAreaDimensions": [

{

"FromTop": "20px",

"FromLeft": "1065px",

"Height": "1px",

"Width": "1px"

}

],

"ColorChoices": [

"Blue",

"OrangeRed"

]

}

 

Future updates:

  • Color choices per screen area: Currently, I support configuring color choices across all screen areas. Soon you'll be able to assign a list of color choices PER area.
  • Configurable Devices: Device/Screen area assignments so you can customize to your own lighting setup.

 

Nice, love it!

Link to comment
Share on other sites

How about we skip the manual text file configuration and just build it into the UI?

 

Right now, I can snag a single screenshot, display and draw rectangles. Next I want to make the rectangles selectable and resizeable. When you select a screen area, you'll be able to select a list of devices from your device configuration that you want to assign to that area. :)

 

Capture.png

Edited by djhexx
Link to comment
Share on other sites

Ok so I did a lot of work this weekend and we now have a working version of the device configuration UI. It's a bit rough looking, but we'll improve that. Next up, I need to go back to the screen configuration page so we can link the device groups up to a screen area, and then we're ready to rock a beta test.

 

Capture.png

Link to comment
Share on other sites

 Share


×
×
  • Create New...