Colore Versions Save

A powerful C# library for Razer Chroma's SDK

v6.0.0

3 years ago

This is very long overdue and it includes a lot of changes.

Much of the API has been completely re-organized and is not backwards compatible, users of the library will need to update their code. The new locations should hopefully feel more logical though.

Major changes

API restructuring

The organization of the API felt off in many places, and has been adjusted to feel more natural. Hopefully everything should feel logical to our users. If there are any questions about this after the changes, don't be afraid to voice your concerns! Another breaking change would be unlikely very soon, but we will take any feedback into consideration.

Removal of WPF and WinForms extensions

As part of upgrading the project to support the SDK REST API and be async, the old extensions to enable integration with WPF and WinForms data classes were dropped. We will likely update these in the future to support the new version of Colore, but for now we felt like focusing on the main library.

Support for the SDK REST API

Colore v6.0 brings support for Razer's REST API for the Chroma SDK.

Async support

All APIs in Colore have been reworked to support the async/await pattern. This was partly done in order to better support the REST API. If there is a need, we may look into adding back the synchronous versions of the APIs, mainly for use with the native SDK.

Et.c...

Apart from the major points above, we have of course done bug fixes in general and added support for new things that have appeared in the SDK.

Known issues

SDK initialization delay

After creating a new Chroma instance (ColoreProvider.Create...Async) or manually initializing one (IChroma.InitializeAsync), you have to delay the rest of the code interacting with Colore/Chroma by a second or two. This is due to internal undocumented delays in Razer's Chroma SDK that cannot be reliably predicted by Colore itself. This problem is detailed in issues #274 and #279.

An alternative, more reliable method, is to wait for the DeviceAccess event on IChroma to be raised with Granted set to true. This event being raised with Granted set to true means the SDK has finished initializing and you now have access to make calls to the hardware. For this to work you must have a Win32 event loop going, and register your window handle with IChroma.Register, then forward any messages to IChroma.HandleMessage.

Once the relevant message is dispatched and handled in Colore, the event will be raised.

We still recommend having a timer as a fallback in case the events fail to propagate fully.


This is a big change, but we know a fair amount of people have been using the release candidates of 6.0 for a while so hopefully most of our core users are familiar with the changes.

Again, if you have any concerns, all feedback is appreciated! You may create an issue if you have bugs or feature requests, or visit the discussions for more general questions and concerns.

v6.0.0-rc3

5 years ago

The third (but first real) release candidate for version 6.0 of Colore!

You can install this either from the artifacts in this GitHub release (you probably want colore_6.0.0-rc.3_netstandard1.3_anycpu.zip), or by getting it from NuGet or MyGet.

Until we do a stable release, you can refer to the latest development documentation for API references (and some usage guides).

v5.2.0

6 years ago

The final release for the 5.x line!

This brings some fixes to various effect types and support for Chroma Link.

Many other changes have been made in 5.2.0 that are not related to the final binaries themselves, but more about project restructure.

As usual, you can either download the binaries from this release page or install Colore from NuGet!

You can read the documentation online or download the colore_5.2.0_docs.zip in this release and open the index.html file in your browser.

v5.1.0

7 years ago

In this version

  • Fixed Clear methods to clear internal state
  • Fixed enum names for forward/back slash characters
  • Added version property to Chroma class
  • Explicitly set version of Colore NuGet dependency
  • Support for newer devices
  • Removed Starlight effect

This release is also available on NuGet!

Documentation for Colore is available online or in the colore_docs.zip file below.

Unity developers

If you are developing for Unity, the version you want is colore_5.1.0.99_unity.zip. You will need to import the Corale.Colore.dll into a plugins folder.

Colore will also be available in the Unity asset store for download soon!

v5.0.0

7 years ago

This is the fifth major release of Colore and brings a lot of new things to the table, as well as fixing and improving some issues.

Some of the key features of this release include:

  • Added support for Unity out of the box with no additional configuration required. :tada:
  • Added support for Razer Chroma SDK v1.6.x
    • Added Regional keyboard layout grid.
    • Added Starlight effect.
    • Added System (and future) device effects.
  • Refactored WinForms/WPF into separate projects for Unity support.
    • Now available as separate NuGet packages.
  • Updated Clear() methods to use Effect.None where it no longer causes delay.
  • Updated logging to use System.Diagnostics instead of log4net, this now means that Colore has no third party dependencies outside of the Chroma SDK!
  • Updated registry functionality.

This release is also available on NuGet!

From this version onwards, WPF and WinForms compatibility will be contained in separate packages. These extension packages are also available at NuGet as Colore.WPF and Colore.WinForms.

Documentation for Colore is available online or in the colore_docs.zip file below.

Unity developers

If you are developing for Unity, the version you want is colore_5.0.0.97_anycpu.zip.

Colore will also be available in the Unity asset store for download soon!

v4.0.0

8 years ago

Can also be downloaded from NuGet!

Documentation for this release is not currently available online as the documentation generation failed, you can view it by downloading the colore_docs.zip file or viewing it on TeamCity.

v3.0.0

8 years ago
  • Fixed SDK detection integration issue from Chroma SDK v1.* onwards.
  • Fixed finalizer of Corale.Colore.CoreChroma calling SDK UnInit function under unsafe conditions.
  • Added LED indexer to Corale.Colore.Core.Mousepad.
  • Added IsKeySafe methods on Corale.Colore.Core.Keyboard to give more flexibility around the SDK key ghosting.
  • Added support for System.Windows.Media.Color (yay WPF developers).
  • Updated Corale.Colore.Core.Color.Orange so it is now ... actually orange.
  • Updated some key names to be more descriptive of the actual key.
  • Updated device GUIDs for new products.
  • Reduced thrown exceptions where a Chroma App priority system was introduced in Chroma SDK v1.0.4.
  • Initialization is now thread-safe.
  • Color conversions between Colore's type and system types are now implicit.
  • EnvironmentHelper is now internal.
  • Plus other minor bug fixes.

Also available from NuGet!

Documentation can be read online.

v2.3.2

8 years ago

Also available on NuGet!

Documentation can be read online or found in the colore_docs.zip archive in this release.