Why Code for Chroma Link?

Razer has an ever expanding 3rd Party Lighting ecosystem. Some examples: PC Cases, Home Lighting, Monitors and Chair/Desks.

Picture1
Picture2
Picture3
Picture4

It is an impossible task for developers to code specifically for every device with different lighting profiles

What is Chroma Link?

From Chroma SDK 2.1.3 onwards, we have introduced a new API that allows developers to code for 5 virtual LEDs which will then be mapped to our growing 3rd Party Chroma ecosystem of products.

The Best Practices document will set a framework on what type of effects should be shown on each LED and it is key for developers to use it as a guide to ensure the best experience for the user.

Benefits of Supporting Chroma Link

  1. Code once, support an entire ecosystem
    Achieve maximum ROI by simply coding for Chroma Link to support an entire ecosystem of products without having to constantly add support for new products
  2. Exposure to other brand’s marketing and following
    Our growing ecosystem of partner products includes brands such as Lenovo (Monitors and Desktops), NZXT (PC Cases) and Lian Li (Desks). Having support will allow you to leverage off their immense following and marketing activities.

Virtual LED Overview

The API gives you access to 5 Virtual LEDs which will then follow this document’s guidelines on how it is mapped to the various product LEDs.

At minimum, we only require developers to code support for Chroma Link 1 (CL1). CL2-5 is entirely optional but will allow developers the flexibility to deliver more creative effects for products that allows for it.

Here are some core mechanics on the mapping:

  • CL1 will be constantly applied to ALL LEDs regardless of the position or amount and hence should always have a color associated to it
  • CL2 – 5 are meant for special animated effects and will be applied over CL1 before reverting back

Chroma Link 1: Best Practices

CL1 will operate as a Base Layer and coding support for it is the minimum requirement. It is a persistent effect and there should always be a color associated to it to ensure 100% up time (never a dull moment). Note that effects on CL2 – 5 will take overlap any effect on CL1.

Most importantly, the color set to CL1 will be applied to all existing LEDs in any product regardless of the quantity and position.

Recommended Effects in CL1:
1) Base Color
– Provides the core ambient lighting
– Examples:
  • Game theme color
  • Hero theme color (Hero 1 results in green, Hero 2 in purple etc)
2) Event Based Triggers
– Dynamic lighting based on key events
– Examples:
  • Breathe Red on low health
  • Flashes Blue for 3 seconds when your Ultimate is ready
  • Rainbow flashing on match win/MVP/Achieving Multi-Kills

Mapping Examples

chroma-link1chroma-indicator

Best Practices:
  1. Always have a color associated to CL1 to constantly keep it vibrant
  2. Ensure that the base color should be in effect 90% of the time with minimal light change
  3. Event based triggers will take up the remaining 10%
  4. This is important as having too many dynamic lightings constantly flashing will ruin the gaming experience
  5. Remember to have smooth color transitions when changing the base color

For Existing Integrations:

If you have an existing Chroma integration, supporting Chroma Link will be a breeze. Here is an example of how you can translate existing effects to CL1:

Existing EffectsCL1 (Will apply to all LEDs)
Ripples ambient hero theme color as you switchFades between the different ambient hero theme color
Breathe red when low on healthBreathe red when low on health
Unique keyboard effect such as a rainbow wave when you achieve MVP/success/level upQuickly fade between the color spectrum to simulate a rainbow effect
Flashing blue when the Ultimate is castFlashing blue when the Ultimate is cast
Orange loading animation “filling the keyboard” to signify progressLoading animation can be shown as breathing orange

Chroma Link 2 – 5: Best Practices

CL2 – 5 are for developers who are keen on developing positional based motion effects such as a ripple/wave. While it is entirely optional for developers, it is recommended as it allows for more complex and interesting effects.

Note that this effect will take priority over effects specified in CL1.

Recommended Effects in CL2 – 5:
Event Based Triggers
– Should only apply to key game events
– Examples:
  • Loading Animation – green bar that constantly fills from CL2 – 5
  • Explosion Effect – ripple emanating outwards from 3/4 to 2/5
  • Other examples: Ultimate Skills and Unique Powerups

Mapping Examples:

chroma-link2-loadingchroma-link2-explosion

Best Practices
  1. Like CL1, ensure that dynamic effects are only kept to key events, approximately 10% of the total experience to prevent it from being overly intrusive
  2. Take note that the 10% includes any Event Triggers in CL1

FAQ

It sounds very complicated, what is the minimum required effort from developers?

If you have an existing Chroma integration, supporting Chroma Link will be a breeze.

Our minimum requirement would be just to simply support CL1. Here is an example of how you can translate existing effects to CL1. However, some products will consist of CL1 and CL2 – 5 and may see both operating in tandem – highlighting the importance of always applying a color to CL1.

Existing EffectsCL1 (Will apply to all LEDs)
Ripples ambient hero theme color as you switchFades between the different ambient hero theme color
Breathe red when low on healthBreathe red when low on health
Unique keyboard effect such as a rainbow wave when you achieve MVP/success/level upQuickly fade between the color spectrum to simulate a rainbow effect
Flashing blue when the Ultimate is castFlashing blue when the Ultimate is cast
Orange loading animation “filling the keyboard” to signify progressLoading animation can be shown as breathing orange

 

What if there are products that has complicated LED arrangements that doesn’t allow for a fluid CL2 – 5 animation mapping?

For products like that, we will only apply the color mapped to CL1. Hence it is important that developers must always ensure CL1 is supported at minimum.

There are also some products that may have one zone supporting CL2 – 5 and other awkwardly placed zones with only 1 LED. In that situation, CL1 will be applied to 1 zone and CL2 – 5 on the other.