$ show A-tG/VoicemeeterFancyOSD
VoicemeeterFancyOSD is a Windows desktop application that provides a customizable on-screen display (OSD) for the Voicemeeter virtual audio mixer. It overlays real-time audio parameter changes (gain, mute, solo, bus assignments, etc.) on top of fullscreen applications without hooking into graphics APIs, using a combination of WPF, native WinAPI calls, and a custom DXGI bridge DLL. The application runs as a system tray icon and continuously polls the Voicemeeter Remote API to detect parameter changes, then displays animated OSD strips that mimic Voicemeeter's own UI style. It supports multiple Voicemeeter versions (Standard, Banana, Potato) and offers extensive configuration via an INI file and a settings window. The architecture is a hybrid .NET WPF application with a native C++ host and bridge. The main .NET assembly (VoicemeeterOsdProgram) handles UI, configuration, Voicemeeter API communication, and update management. A separate native host (VoicemeeterFancyOsdHost) loads the .NET runtime and hosts the WPF window, while a DXGI.dll bridge intercepts DirectX calls to achieve true topmost overlay behavior. Key entry points include Program.cs (application startup), App.xaml.cs (initialization), OsdWindowManager (OSD lifecycle), VoicemeeterApiClient (API polling), and BandWindow (custom topmost window). The application relies on several NuGet packages (ini-parser, WpfScreenHelper, Hardcodet.NotifyIcon, a-tg.VmrapiDynWrapExt) and internal WinAPI functions. The codebase demonstrates solid engineering practices with MVVM separation, custom reusable controls, and a modular structure. However, it suffers from maintenance risks due to its reliance on undocumented WinAPI, a fragile host process trick (renamed ApplicationFrameHost.exe), and a preview .NET version. There are no automated tests or CI pipelines, and the repository shows no recent commits, indicating a stale maintenance state. Despite these issues, several components (e.g., BandWindow, OptionsBase, Logger) are well-crafted and could be extracted for reuse in other Windows desktop applications.
The LLM identified 5 files worth highlighting for reuse:
Implements a custom WPF window using CreateWindowInBand for true topmost behavior, with support for blur effects, click-through, DPI scaling, and window cloaking detection. Demonstrates advanced WinAPI usage and is reusable for any application needing a non-intrusive overlay window.
Generic base class for configuration options with INI file persistence, property change notification, and automatic serialization. Provides a clean pattern for managing application settings that can be reused in any .NET desktop application.
Async channel-based logger with file rotation, configurable log levels, and thread-safe output. Uses System.Threading.Channels for efficient non-blocking writes. A self-contained logging utility that can be extracted and used in any .NET application.
Extension methods for PeriodicTimer that provide convenient async wait patterns with cancellation support. Simplifies periodic polling loops and is reusable across any async .NET project.
Base ViewModel implementing INotifyPropertyChanged with a SetProperty helper method. A standard but well-implemented MVVM base class that can be reused in any WPF or XAML application.