Overview
This guide walks you through compiling Lumix from source code. Building from source is ideal for developers who want to contribute to the project, customize the DAW, or test the latest features.Prerequisites
Required Software
Install .NET 6 SDK
The .NET 6 SDK is required to compile Lumix.Download and Install:Expected output:
- Visit https://dotnet.microsoft.com/download/dotnet/6.0
- Download the SDK (not just the runtime) for your platform
- Run the installer and follow the instructions
6.0.x or higherMake sure to install the SDK, not just the runtime. The SDK includes the compiler and build tools.
Install Git
Required to clone the repository.
- Windows: Download from git-scm.com
- Verify:
git --version
Install an IDE (Recommended)
Choose one of the following:
- Visual Studio 2022 (Community, Professional, or Enterprise)
- Free Community edition: visualstudio.microsoft.com
- Install the ”.NET desktop development” workload
- Visual Studio Code with C# extension
- JetBrains Rider
Visual Studio 2022 is recommended as it provides the best .NET development experience on Windows.
Clone the Repository
Configuration
Choose Your Build Configuration
Debug Mode Configuration
By default, the project defines a
LOCAL_DEV constant in Debug mode. If you want to run the DAW in Debug mode, you must remove this constant.Lumix/Lumix.csproj and comment out or remove these lines:
Building the Project
- Visual Studio
- Command Line
- Visual Studio Code
Open Solution
- Launch Visual Studio 2022
- Click File > Open > Project/Solution
- Navigate to the Lumix folder and open
Lumix.csproj
Select Platform
In the toolbar, select your target platform:
- x64 (recommended for modern systems)
- x86 (for 32-bit systems)
Select Configuration
Choose between:
- Debug: For development with debugging symbols (remember to remove
LOCAL_DEVconstant) - Release: For optimized builds
Restore NuGet Packages
Visual Studio will automatically restore packages. If not:
- Right-click the solution in Solution Explorer
- Select Restore NuGet Packages
Build the Project
- Press F6 or click Build > Build Solution
- Wait for the build to complete
- Check the Output window for any errors
Dependencies and Libraries
Lumix uses the following open-source libraries:ImGui.NET
Version: 1.90.8.1.NET wrapper for Dear ImGui - provides the entire user interface
NAudio
Version: 2.2.1Audio playback and recording library for .NET
DryWetMidi
Version: 7.2.0MIDI file processing and playback library
VST.NET2-Host
Version: 2.1.0VST2 plugin hosting support
- Veldrid (4.9.0): Cross-platform graphics library
- Veldrid.StartupUtilities (4.9.0): Window and graphics initialization
- Veldrid.ImageSharp (4.9.0): Image loading support
- Vanara.PInvoke.User32 (4.0.1): Windows API interop
All dependencies are automatically downloaded via NuGet during the restore phase.
Output Structure
After a successful build, you’ll find the compiled application in:Common Build Issues
NuGet Restore Failures
Issue: Package restore fails or times out Solution:Platform Target Errors
Issue: “Platform target ‘AnyCPU’ is not supported” Solution: Always specify x64 or x86:LOCAL_DEV Constant Issues
Issue: Application behaves differently in Debug mode Solution: EditLumix.csproj and remove/comment out the LOCAL_DEV constant definition:
Missing cimgui.dll
Issue: Application fails to start with “cimgui.dll not found” Solution: The DLL should be copied automatically. If not:- Locate
cimgui.dllinLumix/Resources/ - Copy it to the output directory (e.g.,
bin/Release/net6.0/win-x64/)
ASIO Driver Process Won’t Close
Issue: After closing Lumix, the process remains active Solution:- Use Task Manager to end the process manually
- This is a known issue with ASIO4ALL driver cleanup
- The code includes a temporary
Process.GetCurrentProcess().Kill()workaround
Development Workflow
Running in Debug Mode
Set Breakpoints
In Visual Studio or your IDE, set breakpoints in the code where you want to pause execution.
Testing Changes
The project is under active development. Pull requests are not currently accepted, but you can fork the repository for personal modifications.
- Make changes to the source code
- Build in Debug mode for testing
- Test with various audio/MIDI files
- Check VST plugin compatibility
- Build in Release mode for performance testing
Publishing a Build
To create a distributable version of Lumix:Contributing
The project currently does not accept pull requests as it’s still in early development stages. However, you can:
- Report bugs via GitHub Issues
- Fork the repository for personal modifications
- Follow development progress on the Development branch
Useful Keyboard Shortcuts
While testing your build:- F11: Toggle fullscreen
- Space: Play/Stop playback
- Ctrl+;: Open Preferences
Next Steps
Now that you have Lumix compiled:Explore the Codebase
Browse the source to understand Lumix’s architecture
Introduction
Learn how to use Lumix’s features
Additional Resources
- Source Repository: github.com/ImAxel0/Lumix
- Dear ImGui: github.com/ocornut/imgui
- ImGui.NET: github.com/ImGuiNET/ImGui.NET
- NAudio: github.com/naudio/NAudio
- DryWetMidi: github.com/melanchall/drywetmidi
- VST.NET: github.com/obiwanjacobi/vst.net