Noir is a modern, obsidian glassmorphic audio control center for Windows that gives you real-time patchbay cable routing between individual applications and physical audio endpoints.
Download Installer (.exe) โข Download Portable (.exe) โข Documentation
| Feature | Description |
|---|---|
| ๐ธ๏ธ Spider Connection Patchbay | Dynamic glowing SVG cubic Bezier cables visually connect active applications to their assigned audio devices with animated audio particle flow. |
| โก Interactive Cable Dragging | Drag connection cables directly from any app's port socket and plug them into output devices with live rubber-banding physics. |
| ๐ Multi-Device Output Routing | Route audio from a single application simultaneously across multiple audio outputs with independent checkbox selection. |
| ๐ค Automation Engine | Trigger-based automation for process launches/exits (e.g. auto-switch to Gaming profile on Valorant start) and recurring time schedules. |
| ๐ฆ Smart Volume Ducking | Automatically lower background music/media volumes during voice calls (Discord, Zoom, Teams, Meet). |
| ๐ช Mini Overlay Mode | Compact, always-on-top frameless floating widget for lightning-fast volume control and profile switching during gaming or streaming. |
| ๐จ Theme Engine | 4 curated obsidian palettes: Midnight Velvet, Cyberpunk Neon, Emerald Matrix, and Solar Amber. |
| ๐๏ธ Low-Latency WASAPI Mixing | In-memory session volume control and instantaneous mute toggles powered by native-sound-mixer. |
| ๐ Dynamic VU & Waveform Visualizers | Real-time animated multi-band VU meters and live canvas waveform visualizers scaled to audio activity. |
| ๐ท๏ธ Hardware Disambiguation | Distinguishes identical device types by their hardware adapter (e.g. Headphones (Realtek) vs Headphones (USB DAC)). |
| ๐พ Persistent Audio Profiles | Instant 1-click presets (Gaming, Music & Focus, Work / Meetings, Cinema) with custom profile snapshotting stored in %APPDATA%/Noir/profiles.json. |
| ๐ System Tray Background Service | Runs in the background, enables 1-click profile switching from the Windows taskbar tray context menu, and auto-starts with Windows. |
| ๐ฎ Obsidian Glassmorphic UI | Frameless, responsive desktop interface with curated dark color palettes, CSS custom properties, and smooth 60fps spring transitions. |
+---------------------------------------------------------------------------------------+
| ๐ต Noir Patchbay [โ] [_] [โก] [โ] |
+---------------------------------------------------------------------------------------+
| |
| OUTPUT ENDPOINTS (3 active) AUDIO SOURCES (4 sessions) |
| |
| +--------------------------+ +-------------------------------+ |
| | ๐ง Headphones (Realtek) |โ- - - - - - - - - - -โ| ๐ฏ VALORANT | |
| | Default ยท 2 apps | \ | [๐ง Headphones] [ ๐ 90% ]| |
| +--------------------------+ \ +-------------------------------+ |
| \ |
| +--------------------------+ \- - - - - - - -โ| ๐ฌ Discord | |
| | ๐ง Headset (AKKORD-USB) | | [๐ง Headphones] [ ๐ 100%]| |
| | USB ยท 1 app |โ +-------------------------------+ |
| +--------------------------+ \ |
| \- - - - - - - - - -โ| ๐ข Spotify | |
| +--------------------------+ | [๐ง Headset USB] [ ๐ 45% ]| |
| | ๐ Speakers (Realtek) |โ +-------------------------------+ |
| | Speakers ยท 1 app | \ | ๐ Chrome / YouTube | |
| +--------------------------+ \- - - - - - - - - -โ| [๐ Speakers] [ ๐ 50% ]| |
| +-------------------------------+ |
| |
+---------------------------------------------------------------------------------------+
| PROFILES: [ ๐ฎ Gaming (Active) ] [ ๐ต Music & Focus ] [ ๐ผ Work ] [ โ New ] |
+---------------------------------------------------------------------------------------+
graph TD
subgraph Frontend ["๐จ Renderer Process (Obsidian Glassmorphism)"]
UI_Spider["๐ธ๏ธ Spider Patchbay Canvas (SVG Bezier Engine)"]
UI_Apps["๐ต Audio Source Nodes (Sliders & VU Meters)"]
UI_Devs["๐ Output Device Nodes (Status & Sockets)"]
UI_Profiles["๐๏ธ Presets Bar & Creation Modal"]
end
subgraph IPC_Bridge ["๐ Secure IPC Bridge (preload.js)"]
Bridge["contextBridge API / Event Emitters"]
end
subgraph Backend ["โก Main Process (Electron & Node.js)"]
AudioMgr["AudioManager (audioManager.js)"]
ProfileMgr["ProfileManager (profiles.json)"]
TrayMgr["TrayManager (Windows Taskbar Tray)"]
WindowMgr["WindowStateManager (Multi-monitor Bounds)"]
DevMonitor["DeviceMonitor (1.5s Change Polling)"]
end
subgraph OS ["๐ฅ๏ธ Windows Subsystem"]
WASAPI["WASAPI Core Audio API (native-sound-mixer)"]
PolicyConfig["IPolicyConfig API (SoundVolumeView)"]
Registry["Windows Login Items (Autostart)"]
end
UI_Spider <--> Bridge
UI_Apps <--> Bridge
UI_Devs <--> Bridge
UI_Profiles <--> Bridge
Bridge <--> AudioMgr
Bridge <--> ProfileMgr
Bridge <--> TrayMgr
Bridge <--> WindowMgr
DevMonitor --> Bridge
AudioMgr --> WASAPI
AudioMgr --> PolicyConfig
TrayMgr --> Registry
| Preset | Target Device Mappings | Volume Defaults |
|---|---|---|
| ๐ฎ Gaming | โข Games (Valorant, CS2, Steam, CoD) โ Headphonesโข Voice Chat ( Discord, TeamSpeak) โ Headphonesโข Media & Browsers ( Spotify, Chrome) โ Speakers |
Game: 90%Discord: 100%Music: 45% |
| ๐ต Music & Focus | โข Music Apps (Spotify, Tidal, Apple Music) โ Headphonesโข Communications ( Discord, Slack, Teams) โ Muted |
Music: 100%Chat: 10% (Muted) |
| ๐ผ Work / Meetings | โข Conference Apps (Zoom, Teams, Meet, Discord) โ Headsetโข Background Music โ Speakers (Low) โข Game processes โ Muted |
Meetings: 95%Media: 25%Games: 0% (Muted) |
| ๐ฌ Cinema / Media | โข Video Players (VLC, Netflix, Prime, YouTube) โ Speakers / HDMI Soundbarโข Background Voice Apps โ Headphones (Low) |
Media: 100%Chat: 30% |
Download and run Noir Setup 1.1.0.exe. It will install Noir with desktop shortcuts, Start Menu integration, and a clean uninstaller.
Download Noir 1.1.0.exe to run Noir standalone with zero installation.
- Windows: 10 (1903+) or 11 (x64)
- Node.js: v18.0.0 or higher
- npm: v9.0.0 or higher
# 1. Clone the repository
git clone https://github.com/RajX-dev/Noir.git
cd Noir
# 2. Install dependencies
npm install
# 3. Start development server
npm run dev
# 4. Run ESLint code verification
npm run lint
# 5. Build production executable & installer
npm run build # Generates unpacked directory in dist/win-unpacked
npm run package # Generates NSIS installer & portable .exe in dist/- Tab / Shift+Tab: Navigate between interactive app cards, sliders, and profile pills.
- Arrow Left / Right: Fine-tune volume levels in 5% increments.
- Space / Enter: Activate mute toggles, open device menus, or switch profiles.
- Esc: Dismiss active dropdowns or modals.
- Click Tray Icon: Toggle hide/show and focus Noir instantly.
- Right-Click Tray Icon: Open quick-switcher menu for background audio presets.
Noir/
โโโ assets/
โ โโโ icon.png # Official Noir 512x512 app logo
โ โโโ tools/
โ โโโ SoundVolumeView.exe # NirSoft endpoint routing bridge
โโโ docs/ # Comprehensive Architecture Documentation
โ โโโ architecture.md # Data flow & IPC contracts
โ โโโ phases.md # 7-phase development roadmap
โ โโโ product-requirements.md # PRD & specs
โ โโโ tech-stack.md # Technology choices & rationale
โ โโโ visuals.md # CSS tokens & design guidelines
โโโ src/
โ โโโ audio/ # Audio Engine
โ โ โโโ audioManager.js # Device & session coordinator & multi-output
โ โ โโโ deviceMonitor.js # Real-time event polling
โ โ โโโ nativeBridge.js # Native C++ WASAPI wrapper
โ โโโ automation/ # Phase 7: Automation Engine
โ โ โโโ automationEngine.js # Rules coordinator & persistence
โ โ โโโ processWatcher.js # Active process monitor
โ โ โโโ scheduler.js # Time/day schedule triggers
โ โ โโโ volumeDucker.js # Dynamic speech/call volume ducker
โ โโโ profiles/ # Presets & Profile Engine
โ โ โโโ profileManager.js # JSON serialization in %APPDATA%/Noir/
โ โโโ renderer/ # Frontend UI
โ โ โโโ index.html # Main window markup & Spider canvas
โ โ โโโ mini.html # Always-on-top Mini Player window
โ โ โโโ js/
โ โ โ โโโ app.js # Main UI controller & cable drawing
โ โ โ โโโ activityLog.js# Live action & automation history
โ โ โ โโโ automationUI.js # Automation rules builder modal
โ โ โ โโโ mini.js # Mini overlay controller
โ โ โ โโโ notifications.js # Toast notifications
โ โ โ โโโ themeManager.js # 4 obsidian color themes
โ โ โ โโโ visualizer.js # VU level meter physics
โ โ โ โโโ waveformVisualizer.js # Real-time canvas waveform
โ โ โโโ styles/
โ โ โโโ main.css # Design tokens & glassmorphism
โ โ โโโ components.css # Spider board, sockets & modals
โ โ โโโ mini.css # Mini player styles
โ โโโ tray/ # System Tray
โ โ โโโ trayManager.js # Tray icon & live radio profile menu
โ โโโ utils/
โ โ โโโ windowState.js # Multi-monitor bounds persistence
โ โโโ main.js # Electron main process & IPC handlers
โ โโโ preload.js # Secure contextBridge IPC
โโโ LICENSE # MIT License
โโโ package.json
โโโ README.md
Distributed under the MIT License. See LICENSE for more information.
Developed with ๐ by RajX-dev.