Skip to content

Releases: davidnoeee/SickRGB

SickRGB 1.3.0

Choose a tag to compare

@davidnoeee davidnoeee released this 11 Aug 22:51

All three additions here are about making the Directional Sound readout trustworthy for
someone who cannot rely on their ears to place a sound.

New

Take sound from one app. A picker under Sound lists everything currently playing and
lets you follow just one of them. Windows hands over that process's audio directly, so a
notification or a song playing alongside your game cannot pull the lights around.

This matters more than it sounds. If you run any kind of hearing correction, equalizer or
per-ear balance tool, capturing your PC as a whole captures that tool's output, with your
correction already applied. The panning a game put into its audio has been flattened by
then and no amount of processing here can recover it. Pointing this at the game instead
takes its stream before anything else touches it.

Even out left and right. If one side of your headphones runs far louder than the other,
every sound reads as coming from that side. This watches the long-run level of each channel
and cancels the difference, leaving only the moment-to-moment changes that actually carry
direction. It reports what it measured in decibels, and there is a Measure again button for
after you change a volume setting. A manual nudge is there for anything the automatic side
cannot know about; it shifts the answer rather than turning a channel up, so nothing gets
amplified into the picture that was not there before.

Directional sound as an overlay. It can now sit on top of whatever effect you are
already running, at whatever strength you choose. Silence leaves the effect underneath
completely untouched, so the lights only change when there is something to point at. It
uses the colours and spot width you saved under the Directional Sound effect itself.

Changed

  • Direction is worked out in decibels rather than as a ratio between the two channels. The
    old form ran out of room almost immediately, so any real correction pushed the answer flat
    against one edge and every sound read as hard left or hard right. Panning now moves the
    spot proportionally, with 20 dB of separation counting as fully to one side.
  • The Sound settings appear whenever anything is listening, including when only the overlay
    is on, instead of only on the effect that owns them.

Fixed

  • The app picker listed nothing. It asked each audio session whether it was the system
    sounds session, and on at least some machines every session answers yes to that, so the
    whole list was discarded.

Install

Download SickRGB.exe below and run it. One file, .NET runtime bundled, no installer and no
administrator rights.

Using a Turtle Beach or ROCCAT keyboard? Close its own software first, or it will fight for
control of the lighting.

Licence

SickRGB is under
PolyForm Noncommercial 1.0.0:
free for any noncommercial purpose, not for selling.

SickRGB 1.2.0

Choose a tag to compare

@davidnoeee davidnoeee released this 11 Aug 17:51

New

Directional Sound. Shows which side a sound came from, rather than what it was. Games
pan positional audio between the left and right channels, so comparing them reads out
direction, and this puts that on your lights: a bright spot on the left of the keyboard
means something happened on your left.

This exists as an accessibility feature. If placing sound by ear is difficult, through
single-sided hearing loss or otherwise, it gives you the same information by eye. Colour
carries loudness on a deliberately restrained ramp, so position stays the message rather
than competing with it.

It needs a device with at least four lights to point with. Anything smaller cannot describe
a direction, so those devices show how loud the sound was instead.

Device report, under Settings > Debug. Collects what a keyboard or mouse says about
itself: which interface carries its lighting, the shape of its reports, what it answers when
asked, and what it sends while you use it. That is what someone needs in order to add
support for hardware that does not work yet.

Building the report only reads from your devices; nothing is written to any of them. It can
also listen to what a device sends while in use, which is a separate, explicit step, because
on a keyboard that can include what you type. It says so where you switch it on, and nothing
is saved anywhere unless you save it.

Changed

  • Audio capture keeps the left and right channels separate instead of mixing to mono.
    Averaging destroys precisely the information direction depends on. The music visualiser
    averages them back together when it reads, so nothing changed for it.
  • The Sound settings panel now only shows the frequency controls for the visualiser, since
    they mean nothing for a directional readout.

Install

Download SickRGB.exe below and run it. One file, .NET runtime bundled, no installer and no
administrator rights.

Using a Turtle Beach or ROCCAT keyboard? Close its own software first, or it will fight for
control of the lighting.

Licence

From this release, SickRGB is under
PolyForm Noncommercial 1.0.0:
free for any noncommercial purpose, not for selling. Earlier releases remain under the terms
they were published with.

SickRGB 1.1.0

Choose a tag to compare

@davidnoeee davidnoeee released this 11 Aug 17:14

New

Music Visualiser. Listens to whatever your PC is playing and turns it into light. Every
device is its own display: one with plenty of lights shows a spectrum across itself, one
with only a few pulses with the volume instead, because three lights cannot draw a shape.

Each device picks which part of the music it shows on the Devices page, so a keyboard can
carry the whole range while a mouse takes only the bass and a case takes the treble.

Five colour stops drive the output and are always visible. Presets fill them with a rainbow
or level-meter colours, and editing any stop makes the palette yours. Sensitivity,
smoothing, noise gate, frequency range and minimum glow are all adjustable.

Audio is only listened to while the effect is running, and is never recorded or sent
anywhere.

VIA keyboard support, including the QMK-based Sharkoon SKILLER boards. Keyboards are
found by asking whether they understand the VIA protocol rather than by matching USB IDs,
because several vendors share an OEM identifier with unrelated hardware. Nothing is ever
written to keyboard flash.

Rotate and resize on the layout canvas. Drag a corner to resize, or drag just outside a
corner to turn. Rotation snaps to 15 degrees while dragging (hold Alt for any angle); the
toolbar buttons step 45. Scaling is always uniform, because effects measure real distance
between lights and a distorted device would place them where none exist.

Per-device update rates. Memory on SMBus cannot absorb 60 updates a second, and sending
faster only builds a backlog so what you see falls behind. Every device now has its own
rate, defaulting to something sensible for its hardware.

Fixed

  • Addressable RGB headers (motherboard ARGB, fan hubs) report zero LEDs until told how long
    the strip is, which left them invisible and dark. They now get a working default
    automatically, and the length can be corrected on the Devices page.
  • OpenRGB writes moved off the render thread, so one slow bus no longer stalls every other
    device.
  • OpenRGB now starts minimised and no longer quits when one of its dialogs is dismissed.
  • Devices are blanked on exit rather than falling back to whatever colour was stored in
    OpenRGB.
  • Reactive effects default to true black. The old near-black tint read as "off" through a
    keyboard diffuser but showed as visible purple on bare LEDs.
  • A single failed write no longer triggers a rescan, which used to blank the keyboard every
    few seconds in a loop of its own making.
  • build.ps1 no longer picks a runtime-only .NET install and then fails to build.

Install

Download SickRGB.exe below and run it. One file, .NET runtime bundled, no installer and no
administrator rights.

Using a Turtle Beach or ROCCAT keyboard? Close its own software first, or it will fight for
control of the lighting.

SickRGB v1.0.0

Choose a tag to compare

@davidnoeee davidnoeee released this 11 Aug 15:17

RGB lighting for Windows that treats every device you own as lights in one shared space.

Every light gets a real position in millimetres on a shared canvas. Effects are written as
functions of position and time, so a click on your mouse ripples outward and reaches your
keyboard before it reaches your case — arrival time is just distance ÷ speed, not a per-device
delay faked to look like one.

Install

  1. Download SickRGB.exe below.
  2. Run it.

Single file, .NET runtime bundled. Nothing to install, no administrator rights, nothing written
outside your own user folder. Settings live in %AppData%\SickRGB\settings.json.

Windows 10 / 11, x64.

Turtle Beach or ROCCAT keyboard? Close Swarm II first — it runs a background lighting
thread that will fight for control of the keyboard.

What's in it

Devices — native drivers for Turtle Beach / ROCCAT Magma keyboards and Logitech mice.
Everything else (memory, motherboards, GPUs, coolers, case fans) bridges through
OpenRGB; Add more lights downloads and wires it up for you.

Effects — Static, Palette, Gradient, Breathing, Rainbow Cycle, Colour Wave, Ripple,
Reactive Wave, Reactive Flash, Activity Heat, and Screen Ambient. Set one effect for
everything, or give any device its own from the Devices page — they still share one canvas, so
the result stays spatially coherent.

Layout — drag your devices to match how they actually sit on your desk. Move something and
the effect timing changes immediately, because the distance did.

About the input hook

Four effects need to know when you press a key or click, which means a system-wide input hook.
The hook is installed only while a reactive effect is running. A key press becomes a
position on the keyboard inside the hook callback and is then dropped — which key you pressed
never leaves that callback. Clicks carry nothing at all. Nothing is stored, written to disk, or
transmitted, and every event is passed straight on. Both hooks are short and worth reading:
KeyboardHook.cs
· MouseHook.cs

Hardware notes

The Turtle Beach Magma protocol was reverse-engineered from scratch and verified against real
hardware — PROTOCOL.md
documents the HID topology, handshake, packet layout and checksum. Turtle Beach re-badged the
ROCCAT Magma and changed its USB ID from 1E7D:3124 to 10F5:5024, so OpenRGB never claims it
even though the protocol is byte-for-byte identical.

Notes

First public release. Support for more hardware is the most welcome contribution — adding a
device means writing one small class, and the effect engine, canvas and UI never need to know it
exists. See
CONTRIBUTING.md.