DAW construction kit

DSP, Plugin and Host development discussion.
RELATED
PRODUCTS

Post

GaryG wrote: Thu May 06, 2021 2:04 pm 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.

Post

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();
}


Post

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.
I started on Logic 5 with a PowerBook G4 550Mhz. I now have a MacBook Air M1 and it's ~165x faster! So, why is my music not proportionally better? :(

Post

frizzbee wrote: Thu May 06, 2021 12:46 pmdon'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
My website: rs-met.com, My presences on: YouTube, GitHub, Facebook

Post

syntonica wrote: Thu May 06, 2021 7:32 pm 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.

Post

Music Engineer wrote: Thu May 06, 2021 8:21 pm
frizzbee wrote: Thu May 06, 2021 12:46 pmdon'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.

Post

FigBug wrote: Thu May 06, 2021 1:45 pm 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?
My website: rs-met.com, My presences on: YouTube, GitHub, Facebook

Post

bitwise wrote: Thu May 06, 2021 7:05 pm
GaryG wrote: Thu May 06, 2021 2:04 pm 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.

Post

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.

Post

antic604 wrote: Thu May 06, 2021 11:57 amOn 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 : Asus RoG Flow Z13, Core i9, 16GB RAM, Win11 | EVO 16 | Studio One | bx_oberhausen, GR-8, JP6K, Union, Hexeract, Olga, TRK-01, SEM, BA-1, Thorn, Prestige, Spire, Legend-HZ, ANA-2, VG Iron 2 | Uno Pro, Rocket.

Post

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.

Post

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.

Post

BONES wrote: Fri May 07, 2021 3:15 am...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

Post

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:
X32 Desk, i9 PC, S49MK2, Studio One, BWS, Live 12. PUSH 3 SA, Osmose, Summit, Pro 3, Prophet8, Syntakt, Digitone, Drumlogue, OP1-F, Eurorack, TD27 Drums, Nord Drum3P, Guitars, Basses, Amps and of course lots of pedals!

Post

SLiC wrote: Fri May 07, 2021 7:52 am 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.

Post Reply

Return to “DSP and Plugin Development”