Project Status
From the repository README:This repository is intended to showcase progress, provide updates, and occasionally share work in progress versions of the project as it evolves. Pull requests or any sort of contribution isn’t accepted for the time being since the DAW is still barebone.While direct contributions are not currently accepted, you can still:
- Report bugs and issues
- Suggest features and improvements
- Build custom plugins for your own use
- Fork and experiment with the codebase
Development Setup
Prerequisites
Install .NET SDK
Clone the Repository
For latest commits, check the Development branch.
Platform Configuration
Project must be compiled as x86 or x64.Configure in your IDE or via command line:
Building the Project
Development Environment
Recommended IDEs
Visual Studio 2022
Full-featured IDE with excellent C# and .NET support
- IntelliSense and debugging
- Built-in Git integration
- NuGet package management
Visual Studio Code
Lightweight editor with C# extension
- Install C# Dev Kit extension
- Integrated terminal
- Git source control
JetBrains Rider
Cross-platform .NET IDE
- Advanced refactoring tools
- Excellent code analysis
- Performance profiling
Required Extensions/Tools
- C# Language Support - Syntax highlighting and IntelliSense
- Git - Version control
- NuGet - Package management (usually built into IDEs)
Codebase Structure
Understanding the project organization:Coding Standards
General Guidelines
Naming Conventions
Naming Conventions
Follow standard C# naming conventions:
Code Organization
Code Organization
- One class per file
- File name matches class name
- Group related classes in folders
- Use namespaces matching folder structure
XML Documentation
XML Documentation
Document public APIs with XML comments:
ImGui Usage Patterns
Lumix uses immediate-mode GUI with ImGui:Testing Your Changes
Manual Testing
Since Lumix is still in early development:Test Core Functionality
- Create audio and MIDI tracks
- Load audio files and MIDI files
- Add plugins to tracks
- Test playback and recording
- Verify UI interactions
Common Issues
Audio Driver Issues
Audio Driver Issues
If using ASIO4ALL, the process may not close cleanly:
Program.cs
Plugin Loading Failures
Plugin Loading Failures
VST plugins must be:
- Valid VST2 format (not VST3)
- Same architecture (x86/x64) as Lumix build
- Located in configured plugin paths
ImGui Rendering Issues
ImGui Rendering Issues
Ensure graphics device is properly initialized:
- Check Veldrid backend compatibility
- Verify GPU drivers are up to date
Understanding the Audio Thread
Audio flow: Key principles:- No allocations in audio callbacks
- No locks that could block audio thread
- Pre-allocate buffers for audio processing
- Use lock-free patterns for thread communication
Plugin Development
For detailed plugin development guide, see Building Plugins. Quick start:Reporting Issues
While contributions aren’t accepted yet, you can report issues:- Check existing issues
- Provide detailed reproduction steps
- Include system information:
- OS and version
- .NET SDK version
- Build configuration (x86/x64, Debug/Release)
- Attach logs and error messages
Feature Requests
Before suggesting features, review the roadmap:Currently Working Features
- Audio and MIDI playback
- Track rendering and controls
- Built-in and VST2 plugin support
- Piano roll (partial)
- Grid snapping
- File preview
Not Yet Implemented
- Audio clip editing view
- Audio clip warping
- Plugin grouping
- Track grouping
- Parameter automation
- Project saving and loading
- Audio export
Features marked in bold are critical for production use.
Learning Resources
Understanding the Codebase
Architecture Overview
Learn about Lumix system architecture
NAudio Documentation
Audio library used for playback and processing
ImGui Documentation
Immediate-mode GUI framework
VST SDK
VST.NET wrapper documentation
Future Contribution Opportunities
While contributions aren’t accepted now, the project may open up when:- Core architecture stabilizes
- Essential features are implemented (save/load, export)
- Code quality reaches production standards
- Testing infrastructure is established
Community
Stay updated:- GitHub Repository: ImAxel0/Lumix
- Development Branch: Development - Latest commits
- Issues: Report bugs and track progress
License
Check the repository’s LICENSE file for usage terms and conditions.
Ready to Build Plugins?
Learn how to create custom audio processors and effects for Lumix