feat: Custom Acrylic backdrop + Win2D 3D visualizer#3
Conversation
Adds "Acrylic personnalisé" option to the Backdrop section that replaces the flyout content with sliders for tint opacity, luminosity, tint/fallback colors, and Base/Thin style. Defaults to max tint opacity and min luminosity. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Review Summary by QodoWin2D 3D audio visualizer + custom Acrylic backdrop with inline settings
WalkthroughsDescription• Add Win2D GPU-accelerated 3D audio visualizer with 4 modes (Classic, Bars, Circle, Wave) • Implement custom Acrylic backdrop with inline settings (tint opacity, luminosity, colors, style) • Create VisualizerRenderer orchestrating mode switching, effects pipeline (glow, reflection) • Add visualizer settings persistence (mode, color, glow, dark background) Diagramflowchart LR
A["SpectrumAnalyzer<br/>Audio data"] -->|GetSpectrum| B["VisualizerRenderer<br/>Orchestrator"]
B -->|IsClassicMode| C["DispatcherTimer<br/>+ WaveformCanvas"]
B -->|Win2D modes| D["CanvasAnimatedControl<br/>GPU rendering"]
D -->|Render| E["BarsMode<br/>CircleMode<br/>WaveMode"]
E -->|Effects| F["EffectsHelper<br/>Glow, Reflection"]
G["DesktopAcrylicController<br/>Custom backdrop"] -->|Apply| H["MainWindow<br/>System backdrop"]
I["Settings UI<br/>Sliders, ColorPicker"] -->|Persist| J["SettingsManager<br/>AppSettings"]
File Changes1. Audiomatic/MainWindow.xaml.cs
|
Code Review by Qodo
1. Visualizer color parse crash
|
|
Caution Review failedThe pull request is closed. ℹ️ Recent review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (2)
📝 WalkthroughWalkthroughAdds a Win2D-based GPU audio visualizer system: new VisualizerRenderer, IVisualizerMode API, three Win2D modes (Bars, Circle, Wave), UI selector and controls, SettingsManager extensions, MainWindow integration to support classic and Win2D rendering, and a Win2D NuGet dependency. Changes
Sequence DiagramsequenceDiagram
participant User
participant MainWindow
participant VisualizerRenderer
participant SettingsManager
participant SpectrumAnalyzer
participant CanvasAnimatedControl
participant IVisualizerMode
User->>MainWindow: open app
MainWindow->>VisualizerRenderer: initialize
VisualizerRenderer->>SettingsManager: load visualizer settings
VisualizerRenderer->>VisualizerRenderer: build selector UI
User->>VisualizerRenderer: choose mode / change color / toggle glow
VisualizerRenderer->>SettingsManager: save settings
VisualizerRenderer->>CanvasAnimatedControl: set visibility (Win2D modes)
loop per-frame
SpectrumAnalyzer->>VisualizerRenderer: provide bands
CanvasAnimatedControl->>VisualizerRenderer: draw frame
VisualizerRenderer->>IVisualizerMode: Render(session, bands, w, h, settings)
IVisualizerMode->>CanvasAnimatedControl: draw visuals
end
Estimated code review effort🎯 4 (Complex) | ⏱️ ~50 minutes Possibly related PRs
Poem
🚥 Pre-merge checks | ✅ 2 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (2 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches
🧪 Generate unit tests (beta)
📝 Coding Plan for PR comments
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Summary
DesktopAcrylicControllerCanvasAnimatedControl, configurable color via ColorPicker, glow toggle, and persistent settingsTest plan
Summary by CodeRabbit
New Features
Chores
Tweaks