Skip to content

Lighting

hifihedgehog edited this page May 4, 2026 · 12 revisions

Lighting

The Lighting tab is visible when the active slot has a DualShock 4, DualSense, or DualSense Edge assigned as a physical device. It controls the lightbar base color, audio-driven color modulation, palette-based color cycling, input-reactive pulses, the player-indicator LEDs below the touchpad, and the mute LED above the microphone. Game writes always win; user settings apply when no game is driving the lightbar.

Lighting tab with mode picker and audio-band cards


Lightbar mode picker

A single dropdown selects the active mode. The picker exposes thirteen entries:

Mode Effect
Off (Game Owns the Lightbar) PadForge writes nothing. The game (or the firmware default) controls the bar.
Static Color Solid color from the configured RGB.
Breathing (Single Color Fades) Single color fades in and out at the configured period.
Rainbow Cycle Smooth hue rotation through the full color wheel.
Color Cycle Steps through the configured palette. Smooth blend toggle.
Audio Pulse — Static Color Modulates the configured base color by the system audio peak.
Audio Pulse — Random Color per Beat New random hue selected on each detected onset.
Audio Pulse — Rainbow Cycle Hue rotation modulated by audio peak.
Audio Bands — Three Colors, Hard Transitions Three colors (Quiet / Medium / Loud), instant switch at thresholds.
Audio Bands — Three Colors, Smooth Gradient Same three colors with linear interpolation between thresholds.
Audio Bands — Three Colors, Crossfade at Boundaries Same three colors with a configurable crossfade width at each threshold.
Input Reactive — Random Color per Press Each button press flashes a fresh random hue, decaying over time.
Input Reactive — Cycle Through Palette Each button press steps to the next palette color.

Below the mode picker, conditional sub-sections show only the controls relevant to the active mode (period, palette, audio bands, decay, etc.).


Single-color picker

Visible for Static Color, Breathing, and Audio Pulse — Static Color. Wraps a color picker, hex input, R/G/B sliders with reset buttons, and a swatch preview in a bordered card.

The hex input accepts six-digit RGB (RRGGBB or #RRGGBB). Press Enter or click away to apply.


Period

Visible for Breathing, Rainbow Cycle, Color Cycle, and Audio Pulse — Rainbow Cycle. Ranges 250–10000 ms. Default 3000 ms (3-second cycle). Reset returns to the default.


Color cycle palette

Visible for Color Cycle and Input Reactive — Cycle Through Palette. A wrapping list of palette entries; each entry has an in-place color picker with hex + RGB sliders and a remove button. Add Color appends a new swatch with a rolling hue distinct from the last entry. Reset Palette restores the four default colors (red, green, blue, yellow).

The Color Cycle mode also exposes a "Blend smoothly between palette colors" checkbox — on, the bar lerps between consecutive palette entries; off, it hops.

The palette can hold any number of entries from 1 to N — there is no fixed cap.


Audio-driven settings

Visible for every Audio Pulse and Audio Bands mode.

Sensitivity

Slider 1.0–20.0 (default 4.0). Multiplies the WASAPI loopback peak before the lightbar reacts, so quiet content can still drive a noticeable response. The same WASAPI capture as Audio Rumble is used, but reads the full waveform (no bass-cutoff filter).

Audio bands sub-section

Visible only for Audio Thresholds, Audio Gradient, and Audio CrossFade. Three bordered cards side-by-side: Quiet, Medium, Loud. Each card has a color picker, hex input, R/G/B sliders, and per-channel reset buttons.

Above the cards: the Quiet→Medium and Medium→Loud thresholds (% of the peak range), each with a reset button. For Audio CrossFade, a "Crossfade Width" slider controls how wide the transition zone is at each threshold (0–50 %, default 5 %).


Input Reactive — Pulse Decay

Visible for both Input Reactive variants. Slider 100–3000 ms (default 600). Sets how long a press-flash takes to fade to black. Reset returns to the default.

The decay curve is linear from full brightness at press time to zero at decay milliseconds after the rising edge. The synth tracks rising edges off the same combined output state the rest of the slot uses, so it fires for any button on any device mapped to the slot.


Indicator LEDs

A separate card below the lightbar mode picker. Five small white LEDs below the DualSense touchpad show a player-slot pattern; an additional mute LED sits above the microphone.

Control Values
Player Pattern Off, Player 1, Player 2, Player 3, Player 4, All
Mute LED Mode Off, Solid, Pulse
LED Brightness High, Medium, Low — only affects the player row; firmware exposes no separate brightness register for the mute LED.

Wire format

The synth (Ds5EffectSynthesizer.cs) writes the DualSense USB Report 0x02 / BT Report 0x31 payload (47 bytes plus CRC for BT). The lightbar fields:

Byte Field
41 Lightbar setup flags (0x02 to enable RGB write)
42 LED brightness
43 Player indicator (low 5 bits = pattern, bit 5 = no-fade flag — important for hot-plug reliability)
44–46 Lightbar R/G/B

The "no-fade" flag (bit 5 of byte 43) tells the firmware to skip its default boot/connect fade animation and apply the requested state immediately — without it, late-connect packets are visually overridden by the firmware's default lightbar state.

The animated modes (everything except Off and Static) drive a 30 Hz timer in the dispatcher. Idle modes only push when the config changes; animated modes push every tick.

The audio peak feeding the audio modes comes from the same WASAPI loopback capture as Audio Rumble, but reads the full waveform (no bass-cutoff filter). The capture runs at the same 30 Hz tick.


Tips

  • For best audio response, keep Sensitivity in the 4–8 range. Above 12 the bar is at peak most of the time.
  • For Color Cycle, "Blend smoothly" gives a smoother visual but uses more dispatch cycles. With the smooth blend off, the bar hops between palette entries at the period boundary.
  • For Input Reactive, picking the Cycle variant requires a non-empty palette. The Random variant doesn't use the palette and renders the palette editor hidden.
  • The Audio Bands modes assume your Quiet→Medium and Medium→Loud thresholds are in ascending order. Reversing them produces the wrong band selection.
  • For DualShock 4, only the lightbar RGB and player indicator pattern are honored — DS4 has no audio Pulse path, no mute LED, no animated lightbar in firmware. PadForge skips the DS5-specific writes when the assigned device is a DS4.

Clone this wiki locally