-
The user interface has been entirely developed using immediate mode gui dear-imgui library, with the ImGui.NET wrapper. This allows for a fast and bloat free experience but, at the same time, harder customization for a task of this size, since the library isn't really suited to the development of end-user applications. On the other side, it's what I'm most familiar to work with.
-
CodeRabbit
CodeRabbit: AI Code Reviews for Developers. Revolutionize your code reviews with AI. CodeRabbit offers PR summaries, code walkthroughs, 1-click suggestions, and AST-based analysis. Boost productivity and code quality across all major languages with each PR.
-
The user interface has been entirely developed using immediate mode gui dear-imgui library, with the ImGui.NET wrapper. This allows for a fast and bloat free experience but, at the same time, harder customization for a task of this size, since the library isn't really suited to the development of end-user applications. On the other side, it's what I'm most familiar to work with.
-
For audio handling, since working with .NET there really wasn't a choice, if not using the NAudio library. This is working pretty well so far, with the ASIO support to get low latency (a must have in the audio world) and many useful features to work with audio samples.
-
While NAudio includes MIDI support itself, it didn't feel as developed as the DryWetMidi library, so I decided to stick with DryWetMIDI for MIDI data handling. It allowed to read and play midi files, in addition to creating midi compositions using the daw piano roll.
-
VST's plugins support is possible thanks to the VST.NET library, which allowed to load and process audio samples through vst2 plugins. The daw also has support for creation of built in plugins (such as the "Utility" and "SimpleEq" plugins which are already included) using imgui for the UI rendering, just like Ableton has its own plugins.
-
The source code can be found at https://github.com/ImAxel0/Lumix splitted in the main and Development branches (this last one containing the latest commits) and can be built on windows by anyone who has the NET6 SDK installed.