From december 2024 I've been working on an open source digital audio workstation (DAW) heavily inspired to the famous Ableton Live daw.
Why?
There isn't really an answare to why I started this project.
I used to play around a lot in Ableton and other daws back then and I felt like this was a fun sideproject to dive into (and also such a monumental task).
The DAW
The project is built in C# around the .NET ecosystem, an unusual choice when most daws and audio softwares out there are made in C++ to achieve maximum performances.
In the last three months I've been using several open source libraries to get the project to the current state. As of now there isn't really some real usage with it since the daw is still a work in progress, but it can do some daw like operations.
Here is an overview of the project tech stack:
1. UI
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.
2. Audio
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.
3. Midi
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.
4. Plugins
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.
Source code
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.
There is also a YouTube playlist with some development and showcase from genuary.
Please note that I currently do not accept any contribution to the project for the time being since a lot of the code base will need to be changed.
That's all for now.
In future posts I plan to write about the different aspects of the daw, going into more technical details such as the implementation of plugins and what will probably need to be changed, what is working and what not.
Thank you for taking the time to read this post.
Bye, Alex.
Top comments (0)