A lightweight LV2 plugin host for real-time audio processing on Windows.
Audio Engine
- β WASAPI audio backend with device enumeration
- β Real-time audio processing with configurable buffer sizes
- β Low-latency audio pipeline (< 10ms roundtrip)
- β Multi-channel audio support
- β Audio device selection (input/output)
- β Sample rate configuration (44.1kHz - 192kHz)
- β Buffer size configuration (64 - 2048 samples)
- β Detailed error messages with troubleshooting guidance
Plugin Management
- β LV2 plugin discovery and loading (LILV integration)
- β Plugin parameter management and automation
- β Real-time parameter updates (100ms refresh)
- β Plugin state save/restore infrastructure
- β URID mapping for LV2 features
MIDI Support
- β Windows MIDI API integration
- β MIDI input handling
- β MIDI parameter mapping for plugin control
User Interface
- β Modern Windows application with menu bar and status bar
- β Plugin Browser Panel: Tree view with search and category filtering
- β
Active Plugins Panel: Vertical list with inline parameter controls
- Round parameter knobs laid out three per row with live value readouts
- Bypass toggle button per plugin
- Remove button per plugin
- Remove All button to clear chain
- Auto-expand/collapse functionality
- Vertical scrolling for many plugins
- β Plugin Parameters Window: Floating window with detailed controls
- β
Audio Settings Dialog: Configure audio devices and format
- Select input and output audio devices
- Choose sample rate and buffer size
- Real-time device enumeration
- Hot-swap audio devices without restart
- β Drag-and-Drop: Drag plugins from browser to active panel to load
- β Plugin loading via double-click from browser
- β CPU usage and latency monitoring in status bar
Configuration
- β INI-style configuration system
- β Audio device and buffer size settings
- β Window position and layout persistence
- β Theme preference persistence
Theme System
- β Light theme with modern color scheme
- β Dark theme for low-light environments
- β System theme (follows Windows 10/11 preference)
- β View menu for easy theme switching
- β Dark mode title bar integration
Session Management
- β Save sessions to .violet files
- β Load sessions with full plugin chain restoration
- β Parameter values preserved across sessions
- β Recent sessions tracking
- β File β New/Open/Save/Save As menu integration
Real-time Audio Processing
- β WASAPI audio engine with low-latency processing
- β Auto-start on application launch
- β Real-time plugin chain processing
- β Audio β Start/Stop menu controls
- β Live CPU usage and latency monitoring in status bar
- β Configurable sample rates (44.1kHz - 192kHz)
- β Configurable buffer sizes (64 - 2048 samples)
- π§ Audio file playback and recording
- π§ User manual and comprehensive documentation
- Audio file playback and recording
- Individual plugin windows with custom UIs
- Plugin preset management
- Advanced routing and mixing
- Testing framework and comprehensive error handling
On Fedora Linux (for cross-compilation):
sudo dnf install meson ninja-build mingw64-gcc mingw64-gcc-c++ \
mingw64-lilv mingw64-lv2- Set up the build directory:
meson setup build --cross-file cross-mingw64.txt- Compile:
ninja -C build- The executables will be in
build/:violet.exe- GUI application (8.9MB)violet-console.exe- Console version with debug output
./build.shRequires NSIS (Nullsoft Scriptable Install System):
- Prepare the distribution directory:
mkdir -p /home/djshaji/projects/violet-dist
cp build/violet.exe violet-dist/
cp build/violet-console.exe violet-dist/
cp README.md violet-dist/README.txt
cp LICENSE violet-dist/LICENSE.txt- Build the installer:
makensis violet-installer.nsi- The installer will be created as
violet-0.78-setup.exe
- Download
violet-0.78-setup.exefrom the releases page - Run the installer (requires administrator privileges)
- The installer will:
- Install Violet to
C:\Program Files\Violet - Create Start Menu shortcuts
- Create a desktop shortcut
- Set up the LV2_PATH environment variable
- Register the application in Add/Remove Programs
- Launch shortcuts from the Violet install directory for predictable working paths
- Install Violet to
- Launch Violet from the Start Menu or desktop shortcut
- Copy the executable to a Windows machine
- Place LV2 plugins in a directory
- Set
LV2_PATHenvironment variable or run from plugin directory - Launch
violet.exe
- Windows 10 or later (64-bit)
- LV2 plugins (the application will scan standard LV2 paths)
- Audio interface (WASAPI-compatible, built into Windows)
See docs/USER_GUIDE.md for comprehensive documentation.
-
First Launch
- The audio engine starts automatically with your default audio device
- If no audio device is detected, go to Audio β Audio Settings
-
Loading Plugins
- Browse available LV2 plugins in the left panel
- Use the search box to filter plugins by name
- Double-click a plugin to add it to your chain
- OR drag-and-drop from browser to the active plugins panel
-
Controlling Plugins
- Adjust parameters: Use inline sliders in the active plugins panel
- Real-time updates: Changes apply immediately to audio
- Bypass: Click the bypass button (B) to disable a plugin temporarily
- Remove: Click the X button to remove a plugin from the chain
- Reorder: Drag plugins up/down in the chain (planned feature)
-
Audio Configuration
- Go to Audio β Audio Settings to configure:
- Input/Output audio devices
- Sample rate (44.1kHz, 48kHz, 96kHz, 192kHz)
- Buffer size (64-2048 samples, affects latency)
- Changes apply immediately (engine restarts if needed)
- Go to Audio β Audio Settings to configure:
-
Managing Sessions
- File β New Session: Clear current chain and start fresh
- File β Save Session: Save plugin chain with all parameters
- File β Open Session: Load a previously saved setup
- Sessions are saved as
.violetfiles
-
Monitoring Performance
- CPU Usage: Displayed in the status bar (lower right)
- Latency: Round-trip audio latency shown in status bar
- High CPU usage? Increase buffer size in Audio Settings
-
Themes
- View β Theme: Choose Light, Dark, or System theme
- Dark theme is ideal for low-light studio environments
- Theme preference is saved automatically
Overall Completion: ~94%
Completed Phases:
- β Phase 1: Core Infrastructure (100%)
- β Phase 2: Audio Engine Foundation (100%)
- β Phase 3: Plugin Management (100%)
- β Phase 4: User Interface Implementation (100%)
- π Phase 5: Advanced Features (70%)
Current Focus: Audio file I/O, testing, and documentation
Current Focus: Enhancing UI with drag-and-drop and theme system
See PROJECT_OUTLINE.md for detailed development roadmap.
src/
βββ main.cpp # Application entry point
βββ audio/
β βββ audio_engine.cpp # WASAPI audio backend
β βββ audio_buffer.cpp # Circular buffer implementation
β βββ plugin_manager.cpp # LV2 plugin loading and management
β βββ audio_processing_chain.cpp # Plugin chain and routing
β βββ midi_handler.cpp # Windows MIDI API integration
βββ ui/
β βββ main_window.cpp # Main application window
β βββ plugin_browser.cpp # Plugin browser tree view
β βββ active_plugins_panel.cpp # Active plugins with inline controls
β βββ audio_settings_dialog.cpp # Audio device/format configuration
β βββ plugin_parameters_window.cpp # Floating parameters window
βββ core/
β βββ config_manager.cpp # Settings persistence
β βββ utils.cpp # Utility functions
βββ platform/
βββ windows_api.cpp # Windows API wrappers
- Project Outline - Detailed development plan and timeline
- Plugin Browser - Plugin browser implementation details
- Active Plugins Panel - Active plugins panel documentation
- Plugin Parameters Window - Parameters window guide
MIT License - see LICENSE file for details.
Violet is an LV2 plugin host. LV2 plugins are separate software with their own licenses.
Each LV2 plugin you use with Violet:
- Has its own copyright holder(s) and license terms
- May be GPL, LGPL, MIT, BSD, Apache, proprietary, or other licenses
- Is the user's responsibility to obtain legally and use compliantly
- Is NOT covered by Violet's MIT license
Before using any plugin:
- Check the plugin's license terms
- Ensure you have the right to use it (especially for commercial use)
- Comply with the plugin's license requirements
Violet makes no warranties about third-party plugins. See LICENSE for complete details.