Releases: AbsenteeAtom/Adrilight3
v3.7.2 — Spanning toggle bug fix
Bug fix: toggling Span two displays on or off invalidated the primary DXGI capture session, causing GetNextFrame() failed errors on the next frame. Both duplicator instances are now discarded and rebuilt cleanly on toggle.
Requires .NET 8 Desktop Runtime x64.
adrilight 3.7.1 - Dual-Display Spanning
What's new in 3.7.1
Dual-display spanning - enable Span two displays on the General tab to stitch two side-by-side monitors into one wide ambient surface. Both displays are captured simultaneously and stitched at 1/8 scale before spot sampling. Set SpotsX to the total LED count across both monitors' top and bottom runs. Takes effect immediately without restart.
What's new in 3.7.0
Multi-monitor support - a new Capture Display selector on the General tab lets you choose which monitor drives the LEDs. Displays are labelled with resolution and primary status. Changing selection takes effect immediately. Single-monitor users see no behaviour change.
Installation
- Download
adrilight-3.7.1.zipand extract it. - Run
adrilight.exe(requires .NET 8 Desktop Runtime x64). - Flash
Arduino/adrilight/adrilight.inoto your Arduino if not already done.
See INSTALLATION.md for full setup instructions.
adrilight 3.6.5 - piecewise frequency-to-colour mapping
What's new in 3.6.5
Sound to Light: piecewise frequency-to-colour mapping
The frequency-to-colour mapping is now split into three segments:
- 20 Hz - 10 kHz - logarithmic curve, red through to cyan
- 10 kHz - 14 kHz - linear, cyan to blue
- 14 kHz - 20 kHz - linear, blue to violet (magenta-purple at the extreme)
Both transition points are mathematically continuous - no visible colour step at the boundaries. Blue and violet are reserved exclusively for cymbal, hi-hat, and air content above 10 kHz, making them meaningful visual indicators rather than rarely-reached gradient endpoints.
Sound to Light: extended violet range
Wavelength range extended from 400-700 nm to 380-700 nm. Deepest violet (380 nm, magenta-purple) is now reachable and reserved for audio content above 14 kHz.
Sound to Light: Band Spread toggle
New toggle on the Sound to Light settings tab. When on, each LED also responds to energy in adjacent frequency bands (plus/minus 1 band at 50%, plus/minus 2 bands at 15%), keeping more LEDs active during narrow-spectrum content. Off by default; does not affect colour assignment, only brightness.
Sound to Light: smooth reshuffle transitions
Fixed: LED brightness used to snap to black on every bass-triggered reshuffle, then ramp up through the attack smoothing - a stepped, stuttering effect especially at startup. Brightness is now preserved across reshuffles; each LED fades smoothly into its new band assignment.
Installation
- Download
adrilight-3.6.5.zipand extract it - Run
adrilight.exe(requires .NET 8 Desktop Runtime x64) - Flash
Arduino/adrilight/adrilight.inoto your Arduino if not already done
See INSTALLATION.md for full setup instructions.
adrilight 3.6.4
What's new in 3.6.4
Sound to Light: Auto BPM detection - new Auto detect toggle on the Sound to Light settings tab. When on, adrilight analyses the spectral flux of the audio in real time using a windowed autocorrelation algorithm to estimate the music's tempo, and uses that tempo to control the LED reshuffle rate automatically.
- A confidence score and live status line (
Detected: 124 BPM - Good lock,Weak signal,Detecting.) are shown below the slider - When Auto detect is on, the slider is relabelled Fallback BPM and applies whenever detection confidence is too low (quiet passages, arrhythmic music, or the first few seconds of playback)
- When Auto detect is off, the slider behaves exactly as before and is labelled Max BPM
- A hard ceiling of 240 BPM is always enforced regardless of detected tempo
- Default: Auto detect on, Fallback BPM 120
Installation
- Extract
adrilight-3.6.4.zip - Run
adrilight.exe- it will start minimised to the system tray - The
Arduino/subfolder containsadrilight.ino- flash this to your Arduino if you haven't already
Requires .NET 8 Desktop Runtime (x64).
adrilight 3.6.3
What's new in 3.6.3
Sound to Light: Max BPM slider - new slider on the Sound to Light settings tab controls how frequently LED colour assignments can reshuffle on a strong bass hit. Range is 30-240 BPM in steps of 5; the label updates live to show the current value. Default is 120 BPM (500 ms between reshuffles). Previously the rate limit was hardcoded at 1000 ms.
Installation
- Extract
adrilight-3.6.3.zip - Run
adrilight.exe- it will start minimised to the system tray - The
Arduino/subfolder containsadrilight.ino- flash this to your Arduino if you haven't already
Requires .NET 8 Desktop Runtime (x64).
See the README and INSTALLATION.md for full setup instructions.
adrilight 3.6.2 - Diagnostics polish
What's new in 3.6.2
- All settings changes logged to Diagnostics tab - every user setting change now appears in the Diagnostics tab in real time, showing the property name and new value
What's new in 3.6.1
- Sound to Light: beat-triggered reshuffles now fire reliably - the previous beat detector caught up within ~300 ms so reshuffles stopped firing. Replaced with a sensitivity-scaled fixed floor threshold.
- Sound to Light: surround/7.1 audio devices now work correctly - mono mix now capped at 2 channels (front-L + front-R); mixing all channels was diluting the signal by up to 4x.
- Beat events visible in Diagnostics tab - each reshuffle logs a Beat detected entry at Info level.
Requires .NET 8 Desktop Runtime (x64).
adrilight 3.6.1 - Sound to Light fixes
Bug fixes
Sound to Light - beat-triggered reshuffles now fire reliably
The previous beat detector compared the raw bass level against a smoothed running average. The smoother adapted to the signal within ~300 ms, after which the threshold was always >= rawBass and reshuffles stopped firing. Replaced with a sensitivity-scaled fixed floor threshold. The rate limit (once per second) prevents over-triggering.
Sound to Light - surround/7.1 audio devices now work correctly
WASAPI loopback on surround devices reports multiple channels (e.g. 8 for 7.1). Stereo content from browsers and media players only populates the front-left and front-right channels; mixing all reported channels was diluting the mono signal by up to 4x, making beat detection fail silently. The mono mix is now capped at front-L + front-R regardless of how many channels the device reports.
Beat events visible in Diagnostics tab
Each reshuffle now logs a Beat detected (rawBass=...) entry at Info level, visible in the Diagnostics tab in real time.
Installation
- Download
adrilight-3.6.1.zipand extract it - Run
adrilight.exe- it starts minimised to the system tray - Flash
Arduino/adrilight/adrilight.inoto your Arduino if you have not already
Requires .NET 8 Desktop Runtime (x64).
See the README for full setup instructions.
adrilight 3.6.0 - AbsenteeAtom Edition
What''s new in 3.6.0
Sound to Light
New audio-reactive lighting mode using WASAPI loopback capture (no microphone required).
Physics colour model: 32 logarithmically-spaced frequency bands from 20 Hz to 20 kHz. Each band''s colour is mapped to the visible spectrum using wavelength (700 nm red ? 400 nm violet via the Bruton approximation) - bass glows red/orange, mids shift through yellow/green, treble lights up cyan/blue/violet.
Dynamic reshuffling: Each LED is randomly assigned a frequency band. A strong bass hit reshuffles all LED assignments for a dynamic, ever-changing pattern (rate-limited to once per second).
Controls: Sensitivity and Smoothing sliders for gain and attack/decay envelope. RGB Colour Gain sliders (Red/Green/Blue, range 0-2) to tune colour balance for your LED strip (defaults: Red 0.60, Green 1.05, Blue 1.50).
Lighting mode selector added to General Setup (Screen Capture / Sound to Light).
Tray icon mode switching
Right-click the system tray icon to switch lighting mode without opening Settings. The active mode is indicated with a check mark.
Diagnostics
''Copy log'' button copies all visible Diagnostics tab entries to the clipboard as plain text for easy sharing.
Requirements
- Windows 10 or later (x64)
- .NET 8 Desktop Runtime (x64)
Installation
- Extract the zip
- Flash Arduino/adrilight/adrilight.ino to your Arduino (requires FastLED library)
- Run adrilight.exe
See INSTALLATION.md for full hardware and software setup.
adrilight 3.5.0 - AbsenteeAtom Edition
adrilight 3.5.0 - AbsenteeAtom Edition
What'''s new in 3.5.0
Bug Fix - LEDs now resume reliably after all sleep, lock, and screen saver combinations
In earlier versions, the LEDs could fail to turn back on after unlocking Windows if the screen saver had also activated while the session was already locked. This happened because the session-lock handler and the screen-saver handler both wrote to the same internal saved-state variable - whichever fired second would overwrite what the first had stored. When the session was then unlocked, the saved state read back as "off" even though the LEDs had been on before any of this happened, so they would stay off permanently until restarted or toggled manually.
This is now fixed. Each event source - sleep, session lock, and screen saver - is tracked independently. All active sources must clear before the LEDs resume, and the original state (on or off) is always restored correctly regardless of the order or combination in which the events fire.
Smarter handling of sleep, lock, and screen saver
- Sleep ? wake: LEDs resume as before
- Lock ? unlock: LEDs resume as before
- Screen saver ? dismissed: LEDs resume as before
- Lock, then screen saver while locked, then unlock: LEDs now resume correctly (this was the broken case)
- Any other combination of the above in any order: LEDs resume correctly
TCP control server additions
The STATUS command now returns the active lighting mode alongside the on/off state:
STATUS ? {"status":"on","mode":"screen"}
Four new mode-switching commands are available for external integrations:
| Command | Effect | Response |
|---|---|---|
MODE SCREEN |
Switch to screen capture mode | {"status":"ok","mode":"screen"} |
MODE SOUND |
Switch to sound reactive mode | {"status":"ok","mode":"sound"} |
MODE GAMER |
Switch to gamer mode | {"status":"ok","mode":"gamer"} |
MODE STATUS |
Query active mode | {"mode":"screen"} |
Note: Sound to Light and Gamer Mode are not yet implemented. Sending
MODE SOUNDorMODE GAMERwill switch the reported mode but the LEDs will continue using screen capture until those modes are built in a future release.
Foundation for Sound to Light and Gamer Mode
This release lays the internal groundwork for two planned future modes. No user-facing changes yet - but the switching infrastructure is in place so that when Sound to Light and Gamer Mode arrive, they can be added cleanly without disrupting the existing screen capture behaviour.
Changes since 3.4.2
(3.4.2 was an interim release - if upgrading from 3.4.1, all 3.4.2 changes are also included below.)
3.4.2 - Night Light and UI polish
- Fixed: Night Light detection did not recognise the ON state on some Windows builds. Different Windows versions write different byte values to the registry at the detection position; both known ON values are now handled.
- Fixed: Night Light state changes (ON / OFF) were not appearing in the Diagnostics tab log.
- Navigation sidebar label changed from the version string to "Menu".
- White Balance page info card icon, title, and body text updated for clarity.
Installation
Requirements
- Windows 10 or later (64-bit)
- .NET 8 Desktop Runtime (x64) - if not already installed, Windows will prompt you on first launch
Hardware required
- Arduino UNO (or compatible)
- WS2812b LED strip
- 5V power supply (at least 1A per 50 LEDs)
- USB cable
Steps
- Download
adrilight-3.5.0.zipfrom this release and extract it anywhere. - Flash the Arduino - open
Arduino/adrilight/adrilight.inoin the Arduino IDE, edit theNUM_LEDSandLED_DATA_PINconstants to match your setup, and upload. - Run
adrilight.exe- the app starts minimised to the system tray. Double-click the tray icon to open settings. - In Serial Communication Setup, select your Arduino'''s COM port and enable Transfer.
- In Physical LED Setup, enter the number of LEDs across the top/bottom (
SpotsX) and down each side (SpotsY). - Adjust White Balance and Offset LED as needed until colours align correctly.
For a detailed first-time setup guide covering power wiring, LED layout, corner connectors, and troubleshooting, see INSTALLATION.md.
adrilight 3.4.2 - AbsenteeAtom Edition
adrilight 3.4.2 - AbsenteeAtom Edition
This release covers two updates since 3.3.1. Both are included in this download.
What changed in 3.4.0
Night Light detection - replaced with a direct Windows registry read
The previous Night Light detection used a machine-learning model that read your screen brightness data to predict whether Night Light was active. It worked reasonably well but had some limitations: it returned a probability score rather than a definitive answer, it flagged uncertain readings near 50%, and it bundled several MB of ML libraries into the download.
In 3.4.0, all of that is gone. adrilight now reads the Night Light state directly from the Windows registry, where Windows stores a definitive ON or OFF flag. The result is exact - no probability, no guessing, no uncertainty warnings.
- Night Light ON or OFF is now determined with certainty every poll cycle
- If Night Light has never been configured on your PC (the registry key does not exist), the Diagnostics tab shows Unknown and logs a warning rather than silently assuming Off
- The Microsoft.ML dependency has been removed entirely - the download is noticeably smaller as a result
- The Diagnostics tab Night Light display is simplified: it shows Night Light: ON, Night Light: OFF, or Night Light: Unknown
No settings changes are needed for this update. If you were using Auto detect mode for the alternate white balance, it will continue to work and will now switch more reliably.
What changed in 3.4.1
White balance slider values could be saved incorrectly
A bug was found where any of the six white balance sliders (Normal and Alternate, Red/Green/Blue) could occasionally write a value above 100 to the settings file. This happened due to a quirk in the MaterialDesign slider control: when snapping to a tick position, it could write back a pixel-position-based value rather than the correct 1-100 range value. On the next launch, adrilight would load the corrupt value and the slider would appear at the wrong position.
What is fixed:
- All six white balance setters now clamp any incoming value to the valid range [1, 100]. Out-of-range values from the slider (or any other source) are silently corrected before being saved
- A settings migration runs automatically on first launch after upgrading: if any of your saved white balance values are outside [1, 100], they are repaired before the app starts. You will not need to reconfigure anything manually
White Balance page - icon alignment
The three mode icons on the White Balance page (Forced On, Auto detect, Forced Off) were misaligned vertically relative to their label text. They now line up correctly.
What changed in 3.4.2
Night Light detection - additional Windows build support
Different Windows builds write different byte values to the registry at the Night Light detection position. Previously only one known ON value was handled; a second ON value (observed on this machine) was being silently classified as Off, meaning Night Light state changes were not being detected.
Both known ON values are now handled. If you were on Auto detect mode and Night Light switching was not working, this release fixes it.
Night Light state changes now appear in the Diagnostics tab
Night Light ON/OFF transitions were being written to the log file but not appearing in the in-app Diagnostics tab log viewer. Fixed - state changes are now always visible in the UI.
UI polish
- Navigation sidebar label changed from the version string to Menu
- White Balance page info card: icon updated, title and body text rewritten for clarity, calibration tip corrected to explain colour ratio rather than giving misleading absolute-value advice
Installation
Requirements
- Windows 10 or later (64-bit)
- .NET 8 Desktop Runtime (x64) - if not already installed, Windows will prompt you on first launch
First-time setup
- Download adrilight-3.4.2.zip and extract it anywhere (e.g. C:\Program Files\adrilight)
- Flash Arduino\adrilight\adrilight.ino to your Arduino using the Arduino IDE (install the FastLED library first if you have not already - Sketch ? Include Library ? Manage Libraries ? search FastLED)
- Edit the three constants at the top of the sketch to match your LED count, data pin, and brightness, then upload
- Run adrilight.exe - it will minimise to the system tray
- Double-click the tray icon to open settings, select your COM port, enable Transfer, and enter your LED counts
Upgrading from 3.3.x, 3.4.0, or 3.4.1
- Close adrilight (right-click tray icon ? Exit, or send the EXIT TCP command)
- Replace your existing adrilight.exe and supporting files with the contents of the zip (the Arduino subfolder can be skipped if you have already flashed the sketch and have not changed your LED count or pin)
- Run the new adrilight.exe - your settings are preserved and any corrupt white balance values are repaired automatically on first launch
TCP Control API
adrilight listens on 127.0.0.1:5080 for plain-text commands from local applications or scripts:
| Command | Effect | Response |
|---|---|---|
| ON | Turn LEDs on | {status:on} |
| OFF | Turn LEDs off | {status:off} |
| TOGGLE | Toggle on/off | {status:on/off} |
| STATUS | Query current state | {status:on/off} |
| EXIT | Shut down adrilight | {status:exiting} |
Forked from fabsenet/adrilight v2.0.9 (MIT). Original Desktop Duplication sample by jasonpang.