rgb-master-team / RGBMaster

A .NET app that runs in the background and synchronises the matching colour of the background sound to both Razer Chroma's devices & Xiaomi Yeelight bulbs.
MIT License
63 stars 3 forks source link

Logitech SDK limts gradients, OpenRGB replacement needed. #22

Open Bitwolfies opened 3 years ago

Bitwolfies commented 3 years ago

Currently its the only compatible device I have, so maybe that's it, but enabling the feature does nothing but turn off the light.

deankevorkian commented 3 years ago

Hey! Thanks for opening this issue. Unfortunately, due to limitations of Logitech's LED SDK, the "maximum" I can allow for Logitech devices is either a "pulse" or "flash" effect. I can't use the "pulse" effect of Logitech for our gradient effect, because the way pulse works is -

  1. Color changes immediately
  2. Smoothly transitions into darkness
  3. Smooths back from darkness to that color

But, if you change the color or set the pulse effect to "another" color between steps 2 or 3 - it won't change smoothly, but rather immediately. I can give this to users as a "better than nothing" choice - but I don't like it, and I'd rather continue not to support it now.

However, we should be able to implement Gradient sync on G502 mice through the OpenRGB project, and utilize it - but that will take some time and tests.

TL;DR - for now, since we can't implement it perfectly in G502 - we will not be able to support it I'm afraid - that is until we try to change Logitech so it works with OpenRGB instead of Logitech's official SDK.

Bitwolfies commented 3 years ago

Right, that's good to know, question, once you support an sdk, does that mean all devices that work with it become compatible? I have Logitech g33 headphones, but they're not listed in app.

deankevorkian commented 3 years ago

That depends on the SDK, and in what you define in "supported". For example - Razer lets you sync a color to all chroma devices. So technically, once I support the Razer Chroma SDK, I can sync colors and effects to all Chroma devices.

But that in itself isn't completely "support"; What if a user desires to change the color, or apply an effect, only to his headphones? And wants his keyboard to remain the same? So even if an SDK supports syncing to all devices - we still need to manually opt-in and opt-out from devices and let the user choose.

So the answer to your question is - sometimes no (when there is no "sync to all devices" function like in Chroma) and sometimes - kind of yes (you can sync to all devices - but not to specific devices).

Currently, users who have a Razer keyboard can choose to sync colors to their keyboard only, if they like to. But users who have a Razer mouse can't choose to sync colors only to their mouse - they have to use the "All Razer Chroma connected devices" option, as I still haven't supported all types of Chroma devices.

image

It is extremely hard for us to test all these scenarios since we don't own 30-40% the devices we support (and that surely will grow overtime).

Another issue is that as of now not all SDKs report to me what devices are connected. Yeelight reports me the connected devices with a discovery method, so does MagicHome and Hue. Razer and Logitech do not give me that option - so I simply display on the app all the devices I know to support - but they are not necessarily connected to the machine.

We'll have to iterate all devices connected to a computer via USB (HID) - which should be ready in the next version or two. Sorry for the long answer - your question deserves a complete answer lol

Bitwolfies commented 3 years ago

Right, thank you, its fantastic this software even exists right now, and I cant wait to see it grow, cant wait to see the rest of my devices supported, once you get to it that is. :) (How can I live without my mouse being synced to my glowy headphone stand?)

Bitwolfies commented 3 years ago

And while I'm sure you know of this, the Aurora project also can sync between devices, for different purposes. maybe they've figured out the logitech sdk replacement.

deankevorkian commented 3 years ago

Thank you! And yes, I understand your struggle. And in all seriousness it's a real shame RGB providers are so disconnected and isolated of each other, hope we can make it as much better as possible, in addition to giving as many good effects as we can to users! And while we're at it - you can join our Discord server to follow progress or follow here, whatever you like - but I could use help for testing Logitech Headsets since I don't own a pair. I'll let you know when I finish implementing it, and you can help testing it if you'd like!

Yes, I am aware of the Aurora project - recently talked about it with OpenRGB's creator on reddit. They are using the same SDK I'm using (and not OpenRGB) for their Logitech communication - but syncing headsets with mice isn't the issue for us - we will implement it with ease. Do you know if Aurora has a cycle effect for Logitech devices? I'd be surprised if it's a yes - and I'll have to check how they implemented it

Bitwolfies commented 3 years ago

Id be happy to test, just joined, I have a couple of devices (all logi and corsair) so ill be there for that. As for Aurora, I do not believe so? Problem is not every game has a preview mode, and I don't own/have installed all the games.

deankevorkian commented 3 years ago

Yeah. I'll assume for now that since they are using the Logitech SDK and the SDK doesn't support it, it isn't supported. Still - OpenRGB is on the table as a replacement. And I'll let you know once I ship Logitech headsets & anything-Corsair :)

Bitwolfies commented 3 years ago

Not to bring up old wounds, since we have to wait for openrgb, but how come its able to transition smoothly just fine if I use the color picker sync, and just move my mouse around?