This repository contains a program that provides dynamic control and visualization of WiZ lights using audio frequencies. It combines a graphical user interface (GUI) for configuration with a powerful C++ backend for real-time audio processing and light control.
- Easy Configuration: Use the GUI to configure light settings, including IP addresses, effects, and colors.
- Device Selection: Allows manual or dropdown selection of audio input devices.
- Advanced Settings: Fine-tune advanced options like sample rates, frame sizes, brightness thresholds, and more.
- Reset to Defaults: Restore default settings with a single click.
- Real-Time Frequency Mapping: Maps audio frequencies to light colors in real-time.
- Dynamic Brightness Control: Adjusts brightness based on audio energy levels.
- Customizable Colors: Supports user-defined color palettes for frequency changes.
- Smooth Transitions: Enables or disables smooth color transitions for effects.
- Beat Detection: Triggers light changes based on dynamic thresholds.
- Installer Included: A single installer sets up the GUI and the backend C++ program, ready to run.
- Configurable Paths: Simplifies deployment with easy-to-edit configuration files.
- Color Changes: Dynamically change light colors based on audio frequency.
- Brightness Adjustment: Automatically adjust light brightness according to energy levels.
- On/Off Switching: Trigger lights to turn on or off in response to beats or silence.
- Silence Threshold Calibration: Automatically adjusts the silence threshold to account for varying noise levels.
- Dynamic Gain Control: Ensures consistent light response across different audio volumes.
- Configurable JSON Files: Allows advanced users to directly modify
config.json
for granular control. - Flexible Effects: Choose between color changes, brightness adjustments, or turning lights on/off.
- Install the Program: Run the installer and follow the prompts to set up the program.
- Launch the GUI: Use the provided GUI executable to configure your settings.
- Connect Your Lights: Ensure your WiZ lights are on the same network as your PC.
- Set Up Your Audio Device: Follow the guide below to configure your audio device.
- Run the Visualizer: Start the visualizer from the GUI or by running the backend C++ program.
- Enable Stereo Mix:
- Right-click on the speaker icon in the taskbar and select Sounds.
- Go to the Recording tab.
- If you see "Stereo Mix," right-click and select Enable.
- Set as Default Device:
- Right-click "Stereo Mix" and choose Set as Default Device.
- Select Stereo Mix in the Program:
- Open the GUI and select "Stereo Mix" as the audio input device.
- Download VB Audio Cable:
- Visit the VB Audio Cable website and download the free VB-CABLE package.
- Install VB Cable:
- Run the installer as an administrator and follow the on-screen instructions.
- Restart your computer after installation.
- Download Voicemeeter:
- Go to the Voicemeeter website and download the "Voicemeeter Banana" or "Voicemeeter" application.
- Install Voicemeeter:
- Run the installer as an administrator and follow the on-screen instructions.
- Restart your computer after installation.
- Set Up VB Audio Cable:
- Open the Windows Sound Settings (right-click the speaker icon > Sounds > Recording tab).
- Set "VB-Audio Cable Output" as the default recording device.
- Open Voicemeeter:
- Launch the Voicemeeter application.
- Configure Hardware Input:
- In Voicemeeter, under Hardware Input 1, select your physical microphone or audio source.
- Configure Hardware Output:
- Under Hardware Out, select your default audio playback device (e.g., your headphones or speakers).
- Route Audio Through VB Cable:
- Set Hardware Input 2 to "CABLE Output (VB-Audio Cable)."
- Enable the "B1" button for Hardware Input 2 to route the audio to the VB Audio Cable.
- Set Up in the Program:
- In the GUI, select "VB-Audio Cable Output" as the audio input device.
- Save your Voicemeeter configuration to ensure it loads automatically with your preferred routing.
--calibrate
: Calibrate the silence threshold for improved accuracy.- Example:
visualizer.exe --calibrate --duration=10
- Example:
--duration
: (Optional) Specify the duration for calibration in seconds.
- Operating System: Windows 10 or later.
- Dependencies: Installed with the program:
- PortAudio
- FFTW3
- Boost Asio
- WiZ Lights: Requires WiZ smart lights connected to the same network.
The program uses config.json
for storing settings. Key options include:
audio_device
: Name of the audio input device.advanced_settings
: Contains options likeSAMPLE_RATE
,FRAMES_PER_BUFFER
, and more.lights
: Define each light’s IP, effect, and color settings.
- Duplicate entries may appear in the light list if names are renamed and refreshed.
- White color display inconsistencies in some scenarios.
- Lights not on the network will not respond but are displayed in the preview.
Contributions to improve functionality or address issues are welcome. Please submit pull requests or open issues for discussion.