As the initial version did not meet some of my expectations the project is currently undergoing a major refactoring. The main problems I wish to address are:
- Using WPF was not an optimal choice. I struggled to create a good user experience, especially for the main dashboard.
- Communication between the frontend and the service via named pipes caused security problems on some machines.
Additionally, as I currently work mostly in web development and feel more comfortable there, this led me to start a big refactoring process, which involves:
- Recreating the UI as a web app based on React and using the React-Flow library
- Converting the service communications to a REST API
Because of this, the development of new features will be on hold until I reach feature parity with the old architecture.
Micser is a modular audio routing application for Microsoft Windows (mostly) written in C#.
The application includes the following parts:
- WPF application with graphical audio routing using widgets
- Audio engine Windows service
- Virtual audio cable driver with a configurable number of devices (WIP, will require an extended validation code signing certificate)
- Visual Studio 2019
- .NET Core SDK 3.1
- Windows 10 SDK, version 10.0.18362.0
- WDK for Windows 10, version 1903
- MSVC v142 build tools & spectre-mitigated libs (v14.21)
- WiX Toolset 3.11.1
Building the installer (Micser.Setup project) and the driver (Micser.Vac.* projects) in Release mode requires the presence of a code signing certificate. The certificate needs to be named "Certificate.pfx" and placed in the folder "crt" in the repository root.
Micser is a modular framework and can easily be extended with plugins.
The main modules (Device In-/Output, Gain, Compressor, ..) are provided in the Micser.Plugins.Main assembly, which serves as an example for how to implement a plugin for Micser.
This project uses the following libraries: