Main fundraiser photo

VirtualDAW

Donation protected
My goal is to continue the development of a DAW (Digital Audio Workstation) for anyone with a laptop or a small home-studio, who wants to produce modern music styles like EDM, Techno, HipHop, Dance, House, Deep House, Trance, Hardcore, HardTechno, HardStyle and more.
My DAW supports plugins (soft-synths and effects) and audio/media files only.

First I will continue to develop my software for Windows® 10 / 11 (64bit) only. Supported Plugins: VST3 Plugins (VST®).
From this private project I could create a real product with your help.

Here is the layout for the main goals of the project (its a 4K image. so if its displayed too small here, right-click on it and select "open in a new tab" in your browser):




Yet some base implementations are already on an advanced level in phase 1. For example my own Plugin Host (I refer to it as PH) is implemented using the Steinberg VST3 SDK and can already scan, load and run a lot of VST3 plugins without problems.
It also has 3 instances to choose from (IPC64, IPC32 and DLL versions; IPC here means an EXE with Inter-Process-Communication) for the way of communication with my AudioServer process (I call it AS). The IPC versions (32 and 64bit) will ensure, that unstable plugins (those which terminate in an unexpected way), can run always in their own process space, not disrupting the rest of the app.
Plugin automation, Preset Handling, Bypassing and SideChaining also is generally implemented from the "back-end" point of view. Any edit controller (the UI of the plugin) is always shown with DPI Awareness (PerMonitorV2).
Some special VST3-interfaces have already been added and tested for plugins, which communicate with each other (if both loaded from a DLL-based PH).
The AS also communicates with the Master Process, where the UI is executed; and so a project is always loaded in its own process space; This avoids any leftovers/memory leaks/etc when unloading and reloading a project. Its ensured to use a "clean" start on each time a project is loaded.
A XML-based human-readable project format can be properly read and written; So you can simply find any basic settings (except the plugin settings) in that project file, even without opening the app. For a later point in time the DAWproject format is on my list for being implemented. Also config file handling for global settings per user is provided. And the entire plugin database loading/saving/updating is implemented. Its format also is human-readable to make things easier.
Additionally to that there already is also a "Sample Manager" function: On any importing of an (til then unknown) audio sample, optionally the user can be asked (once) for the source and credits of that sample, which then are stored in the database. This makes things a lot easier, when you need to provide that Sample-Pack / Package-URL information to your streaming-service distributor, cause on exporting your track you can (optionally) simply get also a full "project meta data" file, with all used samples (including their credits), all used plugins and the Meta-Tags, which are also stored in the output file (if they are among those, which are supported and implemented for that file format). However, you should always double check that sample and meta-tag information before sending/uploading the final audio file to a distribution service.


All important input media file formats are already supported, especially WAV/MP3 files (and generally all of those audio/video formats supported by Media Foundation [if the required Media Source is on your system and can be used]; on video files of course only the audio channel is imported).
And also the output handling for WAV (uncompressed), FLAC, MP3 (up to 320kbps) and WMA formats for exporting the result is finalized. Same is valid for import/export of MIDI files type 1 (always only 1 track per file; on import the first track is used); If used in a project track, all of those input files are directly copied to a subfolder of the project folder, when saving the project.
During playing back the project (and on rendering) each MIDI note and related automation is passed to the plugins through my internal "Server Chain" format, which is compatible for several data exchanges. The buffering logic (for all the blocksize buffers) is reducing memory for all those blocks, which would be silence. The internal blocksize will be always a power-of-2 number to increase performance by only occupying required memory (already aligned blocks without memory gaps) and to support plugins, which require this power-of-2 blocksize. Since there are no analog input sources, the blocksize can be quite high. That gives an additional speed advantage, since bigger blocks of audio can be processed at once instead in many smaller steps.
You might ask, why wouldn't you need any analog input sources? Well, when you look at the music styles mentioned above, all of them have normally no analog input sources at all. The only non-digital source could be vocals. And even those in many cases are used from samples or from given stems. And if you really need to create a vocal recording, there are (even commercial) free tools out there, which can record your vocals properly. You simply then later can insert the recorded uncompressed WAV file into my DAW. And then its a digital input source! However, the feature for capturing audio, could be added later; It simply would be a separate mode, where only capturing (at a lower blocksize) is going on and maybe some playback for the singer's headphones is played at the same time.
For those who simply only have a laptop or a small home-studio, a completely virtual DAW could be a better solution, than buying an expensive bell-and-whistle-DAW. Also you can connect an USB-microphone to an USB-port of your computer, some decent active-speakers and headphones directly to your soundcard, then you even don't really need an audio interface (except you want to use monitor speakers or head phones, which require such an interface; or if you have a bigger studio where you need to connect many output devices).

Yet available languages are English, German and Brazilian.




When saving the project to disk, of course any plugin state is stored and restored, when re-opening it; including screen positions. An automatic versioning of project file name and sub-folders for MIDI-data and project/plugin data (not for WAV data) allows you, to go back to a saved previous project version, in case of a system crash, as long as your system did not crash within a save-process.
To reduce system resource usage, caching and bouncing tracks is implemented. Since caching is temporarily, it does not keep any previous version (that would really waste a lot of space, since caching is done in 64bit (double) float uncompressed WAV to keep the full audio quality). And there is a "Lock" button on each track, so that you can ensure not to accidentially un-freeze or un-bounce a track.
Caching is implemented in a way, that all dependent project tracks of one project track are taken into account (and therefore cannot be modified until the track they are dependend on is un-cached). Bouncing simply only bounces the selected project track; Its more a rendering for that one project track.
The complex MUTE and SOLO track-related dependency checking among the entire project (including SENDs) is also already in place. Volume Automation is already implemented in the AS "back-end".

Yet the UI is in a simulated stage. The next step I'm gonna add, will be a DirectX®-based UI for the Master to replace the simulated UI, which is very limited and which is not very pleasant to work with. And then any elements of that UI will follow. For the Audio and MIDI elements, the image masks of the waveforms are already created and passed to the Master. But yet they're not being applied for displaying in the UI.
A piano roll editor will follow in phase 2.
WASAPI audio is in development, but not ready yet.
ASIO® audio output and ARA2 support is planned for a later stage, same for Windows 11 support.
There are a lot of optional features still on my list, which hopefully make it into the project at a later point in time.

The funding goal is a combined estimation of all the (legal) and material aspects I need to achieve to create that product, especially an "IT liability insurance" to protect myself against legal problems, forming a company (funding to operate for at least 3 years) and some device updates to support newer hardware and OS versions.
And of course I'll continue to produce more music. Soon with my own VirtualDAW.

If you have any questions or suggestions, please contact me.

Thank You!

More about my project here: VirtualDAW Project Page

All trademarks, registered trademarks and logos are the exclusive property of their legal owners.
VST® is a trademark of Steinberg Media Technologies GmbH, registered in Europe and other countries.
ASIO® is a trademark of Steinberg Media Technologies GmbH, registered in Europe and other countries.
Microsoft® is a trademark or registered trademark of the company Microsoft Corporation.
Windows® is a trademark or registered trademark of the company Microsoft Corporation.
DirectX® is a trademark or registered trademark of the company Microsoft Corporation.

Illustration of helping hands

Give €20 and be a founding donor

Your donation is the start of Marcus’s journey to success. Your early support inspires others to donate.

Make a donation
Make a donation
Illustration of helping hands

Give €20 and be a founding donor

Your donation is the start of Marcus’s journey to success. Your early support inspires others to donate.

Make a donation
Make a donation

Organizer

Marcus Grote
Organizer
Isernhagen, Niedersachsen

Your easy, powerful, and trusted home for help

  • Easy

    Donate quickly and easily

  • Powerful

    Send help right to the people and causes you care about

  • Trusted

    Your donation is protected by the GoFundMe Giving Guarantee