DAW construction kit

DSP, Plug-in and Host development discussion.
KVRist

Topic Starter

135 posts since 18 Mar, 2012

Post Thu May 06, 2021 11:05 am

GaryG wrote:
Thu May 06, 2021 6:04 am
You'd be adding levels of abstraction which I don't think would be very useful. Take the plugin handler for instance; you'd be hosting a plugin and talking to it through the VST (say) protocol, have you read the VST specs? Lots of parameters and event controls to deal with. So you get audio data(?) from the plug, then what? Pass it through another set of protocols (your new ones) to get it to where ever you want it to go?
I guess DAWs that support multiple plugin formats need to abstract anyway.

KVRist

Topic Starter

135 posts since 18 Mar, 2012

Post Thu May 06, 2021 11:11 am

Here's a sketch that serves as an example. The hardest part would be the protocol of course.

Code: Select all


#include "kit.h"
#include "venus.h"
#include "mars.h"
#include "mystuff.h"

int main()
{
	// a barebone daw...

	kit::daw daw;


	// ...now gets its parts

	kit::project_manager *pm = new mystuff::MyProjectManager();

	daw.add_project_manager(pm);

	kit::mixer *mixer = new venus::MixerFromVenus();
	kit::mixer_track *track = new mars::MixerTrackFromMars();
	mixer->add_track(track);

	daw.add_mixer(mixer);

	kit::sequencer *seq = kit::load_sequencer("SequencerFromSaturn.so");
	// or kit::sequencer *seq = kit::load_sequencer("SequencerFromSaturn.dll");

	daw.add_sequencer(seq);

	// blah, blah, blah, ...

	return daw.run();
}


User avatar
KVRian
980 posts since 25 Sep, 2014 from Specific Northwest

Post Thu May 06, 2021 11:32 am

I think this would work well for an open source DAW where if you didn't like the current mixer plugin, say, you could write/modify your own to drop in. Although, I think one would mostly be looking at cosmetics and not function. It might be easier to add all the features, but allow enabling/disabling the ones you want and to use a script to describe the GUI. Either way, the user is stuck into the original chosen paradigm.

User avatar
KVRAF
3947 posts since 8 Mar, 2004 from Berlin, Germany

Post Thu May 06, 2021 12:21 pm

frizzbee wrote:
Thu May 06, 2021 4:46 am
don't get me wrong, but why would we need more daws if they're then doing all the same and why would one have the idea to just create a daw at all?
i think, the main motivation (for me, at least) to contemplate such a thing would be that i may want to tweak the workflow and add certain usability features that current daws just don't have. i'm not thinking about anything specific here - just generally and abstractly speaking

KVRist

Topic Starter

135 posts since 18 Mar, 2012

Post Thu May 06, 2021 12:47 pm

syntonica wrote:
Thu May 06, 2021 11:32 am
I think this would work well for an open source DAW where if you didn't like the current mixer plugin, say, you could write/modify your own to drop in. Although, I think one would mostly be looking at cosmetics and not function. It might be easier to add all the features, but allow enabling/disabling the ones you want and to use a script to describe the GUI. Either way, the user is stuck into the original chosen paradigm.
It's not only a matter of replacing a component.
If you start from scratch, you have to build all
the parts yourself and it takes time and tests
to find bugs. With a daw kit, you would look around
to find the parts you need. Some might be for free,
some might have a price. In any case, you have your
daw up and running in a short time.

It's just like looking for a jpeg decoder library when
you need to create a program that shows pictures.

KVRist

Topic Starter

135 posts since 18 Mar, 2012

Post Thu May 06, 2021 12:48 pm

Music Engineer wrote:
Thu May 06, 2021 12:21 pm
frizzbee wrote:
Thu May 06, 2021 4:46 am
don't get me wrong, but why would we need more daws if they're then doing all the same and why would one have the idea to just create a daw at all?
i think, the main motivation (for me, at least) to contemplate such a thing would be that i may want to tweak the workflow and add certain usability features that current daws just don't have. i'm not thinking about anything specific here - just generally and abstractly speaking
Yes.

User avatar
KVRAF
3947 posts since 8 Mar, 2004 from Berlin, Germany

Post Thu May 06, 2021 3:00 pm

FigBug wrote:
Thu May 06, 2021 5:45 am
There is Tracktion Engine: https://github.com/tracktion/tracktion_engine

You can get a DAW like application going with not much code.
yep, you beat me to it. are there any open source example projects out there that use it?

KVRAF
6400 posts since 12 Feb, 2006 from Helsinki, Finland

Post Thu May 06, 2021 5:52 pm

bitwise wrote:
Thu May 06, 2021 11:05 am
GaryG wrote:
Thu May 06, 2021 6:04 am
You'd be adding levels of abstraction which I don't think would be very useful. Take the plugin handler for instance; you'd be hosting a plugin and talking to it through the VST (say) protocol, have you read the VST specs? Lots of parameters and event controls to deal with. So you get audio data(?) from the plug, then what? Pass it through another set of protocols (your new ones) to get it to where ever you want it to go?
I guess DAWs that support multiple plugin formats need to abstract anyway.
There's a good chance that if a plugin supports multiple plugin formats it's probably going to be abstracting internally as well.

That said.. I'm not sure how I feel about the whole "construction kit" idea, because I feel like much of the complexity in a DAW might come from getting all the pieces to interoperate nicely.
Preferred pronouns would be "it/it" because according to this country, I'm a piece of human trash.

KVRAF
1677 posts since 16 Jan, 2013 from USA

Post Thu May 06, 2021 6:30 pm

As they all do basically the same thing internally, I think an interface construction kit would have more merit. Fully customizable looks, menus, key commands, mouse and controller actions, etc. Something like Reaper, but even more so.

User avatar
GRRRRRRR!
11967 posts since 14 Jun, 2001 from Somewhere else, on principle

Post Thu May 06, 2021 7:15 pm

antic604 wrote:
Thu May 06, 2021 3:57 am
On paper it sounds interesting, but in practice the HOW certain feature is implemented and HOW it works with everything else decides about DAWs' appeal. It would be really difficult to build an environment covering e.g. different "flavours" of sequencers, mixers, device chains, etc. And if there would only be one of each, then what's the point?
The point is you could have only those features you need and none you don't. You mention video tracks and notation but what about things that make the application less efficient because they are always running, even if you don't use them? e.g. I am amazed at how difficult it is to get Studio One running reliably (no clicks or pops) on hardware that Orion handles without any problems. If I could work out what it is that makes it such a CPU hog and remove those components, I'd pay money to be able to do so.
NOVAkILL : Zenbook Duo, Core i7, 16GB RAM, Win10, UR44C | Studio One | JP6K, Union, Hexeract, bx_oberhausen, Odyssey, TRK-01, Vacuum Pro, Invader, Concept, GR-8, Viper, Equator, VG Carbon | Uno Pro Desktop, Uno, Rocket.

KVRist
107 posts since 13 Aug, 2017 from Gothenburg

Post Thu May 06, 2021 10:19 pm

I would love if something like a modular DAW happened.

There is an analogue in the 3d graphics world. In programs like Maya or 3dsMax you can replace parts like the animation, rendering or physics modules with different ones if you don't like the ones that comes built in.

Imagine being able to plug in a different piano roll or mixer interface into your DAW. That would be something :)

I guess ARA is a step towards that for the audio editor part. Something similar for MIDI editing doesn't seem that far fetched.

I remember sending an email to Karl Steinberg about this about 20 years ago and to my surprise actually got a response. He thought it was an interesting idea but it would be too much work and be hard to define stable plugin interfaces that didn't make it too hard to keep developing Cubase.

KVRist
483 posts since 2 Nov, 2014

Post Thu May 06, 2021 11:12 pm

I was at least expecting a modular DAW concept by now. You could customize at the start ,check the components you want and make it a template. For example I would love to lock out VR, Surround, VST Transit, VST Connect, VST Rack Instruments out of Cubase. So less menu items, less clutter, less problems maybe, I don't know. Likewise Studio One. I never even checked out Show or Project page. Never used scratchpad thing.

User avatar
KVRAF
9382 posts since 4 Jan, 2017 from Warsaw, Poland

Post Thu May 06, 2021 11:17 pm

BONES wrote:
Thu May 06, 2021 7:15 pm
...I am amazed at how difficult it is to get Studio One running reliably (no clicks or pops) on hardware that Orion handles without any problems. If I could work out what it is that makes it such a CPU hog and remove those components, I'd pay money to be able to do so.
That's the exact application where such a construction kit wouldn't help, I think.

DAWs are very demanding realtime applications, in many ways much more so than video games and in that space every 3rd party engine (Unity, Unreal, CryEngine, etc.) is less performant than dedicated in-house built solutions, that are tailored and optimised for specific, particular application, workflow, data structures, etc.

Regarding S1, make sure to read up on the relationship between audio buffer, dropout protection and realtime monitoring.
Music tech enthusiast.
DAW, VST & hardware hoarder.
My "music": https://soundcloud.com/antic604

KVRAF
7708 posts since 2 Dec, 2004 from North Wales

Post Thu May 06, 2021 11:52 pm

If we could make our own perfect DAWS, what the hell would we complain about! Stupid idea, I want to criticise other peoples work, not be open to having my work criticised!! :clown:
PC, Studio One, BWS, Live, FL Studio, Renoise, Reason, X32 Desk, Hardware Synths, Drum Machines + Eurorack, TD27 V Drums, Guitars & Basses

KVRAF
13019 posts since 13 Oct, 2009

Post Fri May 07, 2021 12:05 am

SLiC wrote:
Thu May 06, 2021 11:52 pm
If we could make our own perfect DAWS, what the hell would we complain about! Stupid idea, I want to criticise other peoples work, not be open to having my work criticised!! :clown:
If we could this it would be like Reaper skins. A bunch of half-finished U/I concepts with too much fluff, not enough substance, and bugs for days.

Return to “DSP and Plug-in Development”