Building a DAW in max/MSP

LStonehouse's icon

I'm writing my undergraduate dissertation on reproducing and trying to improve a digital audio workstation in max and I was wondering if anybody knows of any good academic literature on DAW architecture? I'm finding tonnes of rubbish on how to use all sorts of software but I need literature that deals with the skeleton/building of a digital audio workstation. Any help would be greatly appreciated :)

dhjdhjdhj's icon

Why don't you look at Ardour? It's open source so you can look at the code and see exactly how it's designed.

stringtapper's icon

Looking at code ≠ "academic literature."

oli larkin's icon

It seems like a very strange idea to me, to try and build a DAW in Max. I can understand if you just want to prototype some new ideas, but if you are looking to make anything that is even close in terms of usability to existing DAW software, I honestly don't think Max is the right way to go about programming it. Even for prototyping new DAW ideas, I think it will be a massive task to get something working well.

I don't mean to be negative about your project, it's just that there are good reasons why very little commercial software is built with Max, and to my knowledge nobody has ever made a DAW with it! Some of those reasons are efficiency, scalability, debug-ability, maintain-ability, flexibility. C++ is better choice for these kind of projects.

In terms of literature, maybe there are some papers on the design of ardour in the linux audio conference proceedings (not sure). Otherwise, since most of these projects are closed source and commercial, it's probably not so easy to find literature describing the design. You might have more luck trying to interview developers. The team that develop reaper are particularly accesible, see http://www.askjf.com/

oli

---------------------------------------------
Endless Series v3 out now - A unique synthesis and effect plugin/app based on the Shepard Tone auditory illusion.
http://www.olilarkin.co.uk

dhjdhjdhj's icon

Indeed --- but not much "academic" stuff around DAW development. Based on the question I figured the real goal was to understand the architecture of a DAW. So I figured that if he (or she) wanted to know how a DAW is built, then why not look at one?

Best bet for academic stuff is probably CMJ (http://www.computermusicjournal.org/)

dhjdhjdhj's icon

I doubt that an undergrad dissertation requires a commercial grade DAW.

There's http://www.noteformax.net/data/index.php/en/homepage for the MIDI stuff. I wish they hadn't appended "~" to the name though as it's not doing MSP stuff.

Actually, while one would certainly not want to compete with Logic or Digital Performer etc, I imagine one could actually build quite an interesting and flexible, if non-traditional, DAW with Max. All the pieces are there (record audio, play it back, adjust it, host VSTs and so forth)

--------------
nobody has ever made a DAW with it

vichug's icon

hi,

look at the rs.delos objects, they are not free, but not expensive, and they could save you a precious time while allowing you to build something useful.

woyteg's icon

Hello
I am really sure i can remember some video here on the cycling site(i think it should have been some science fair video, i've tried to find it, but no luck so far) presenting some professor from i don't know where (south america?) who made something that really looked as powerful as propellerheads reason.. He said he created something like a virtual studio within max for his students to be able to practice at home.
Can anyone remember that guy? Maybe he could help. At least it looked like somebody has tried to create something DAW like.
Cheers!

LStonehouse's icon

the idea of the project isn't to try and make a commercial DAW or anything of the sort in max, it's more an exploration of signal processing and how max can be used to mimic functions in a traditional DAW and how max allows much more user flexibility. I know c++ would be a better option, but like I said the end product is not the DAW it's the dissertation, plus i've only just started C and C++ so I probably wouldn't be able to write much of a dissertation based on that.

dhjdhjdhj's icon

Ignore "Tokyo Rose". As the great Pauli once said, "he's not even wrong".

Now that you've provided more information, I would recommend the following two books for excellent examples of what you need

1) Electronic Music and Sound Design - Alessandro Cipriani & Maurizio Giri
2) Designing Sound - Andy Farnell

Both of these have extensive coverage of audio and signal processing using Max/MSP and/or PD to implement their examples. The first is probably easier to get started and the second is deeper.

dhjdhjdhj's icon

I forgot about Eric Lyon's new book, Designing Audio Objects for Max/MSP and Pd. Although its focus is on building externals, it has some excellent introductions into signal processing, again in the context of Max/MSP so that will probably be helpful as well.

Roman Thilenius's icon

i dont find his request so absurd.

building a DAW-style patch is by far easier than for example building a good compressor or reverb patch.

recording and playing from a buffer, recording and playing from disk, as simple mixer with AUX and inserts, using the vst~ object, recording fader automation, using metro, sychnronising messages with audio stuff ... all belong to your daily needs also when you are about to program idiosyncratic mangling effects. so why not just start with a "DAW" when someone is new to max?

-110

LStonehouse's icon

Yeah I have Electronic Music and Sound Design, superb book! I was planning on ordering Designing sound as well. The book on building externals will be useful as well since the final chapters will be discussing that matter (and I'm looking at doing postgraduate research in software developments, specifically for max so it will be a good book for the collection, although I don't think it's available in the UK yet.)

I'll be building and discussing compressors and reverbs (and a bunch of other standard signal processing stuff you find in a DAW) as well and how abstractions can be used almost as plug ins, but with the advantage of being customisable. I think the vst~ object is going to get its own section because that provides a cross over between existing DAW's and eliminates the problem of being stuck with a completely standalone patch.

Thanks for the help folks

LS

oli larkin's icon

I think the key is in the word "Workstation". I have to disagree with Roman, in that I think that building a compressor or reverb is something very possible and well suited for Max (or Max4Live even!), where as building something that compares in usability to even a basic digital audio workstation is hard, and Max is ill-suited for that purpose. If you are talking about making a single-track sampler/recorder with a record~ , play~ and buffer~, plus a vst~ - that is a VERY different thing to a making a DAW, and bears little resemblance to the architecture of modern DAWs as was asked about.

To the OP - from what say, you seem to have already decided that Max is a suitable replacement for a DAW, which offers advantages over existing DAWs. I really don't think it is, sorry! Max4Live, FLSynthmaker or Reaktor, are good examples of software which let you customise your effects chain within a proper DAW.

Basically I don't think this is a good premise for a dissertation/final project!

dhjdhjdhj's icon

Actually, I think it would be quite nice to build a single-track recorder as described by Oli and then instantiate it a few times and wrap some control infrastructure around it to get basic multi-tracking. There would have to be a way to record/trigger audio at different points in time to make it more useful. I wonder in fact whether one could use something like note~ or rs.delos to do timeline management.

I wouldn't mind having something like that available in my own toolkit to use with my bands rather than the hacks I'm using now to trigger some background loops.

On the other hand, now that OP has described what he is trying to do, I agree strongly with Oli that he would be far better served working with something like Reaktor.

LStonehouse's icon
Max Patch
Copy patch and select New From Clipboard in Max.

OL I understand what you're saying, but you don't seem to be listening to what I'm saying. I'm not trying to replace a DAW with max/MSP, the project is not the DAW or building something to customise my effects chain, it's a written discussion on signal processing works in different features and how they can be replicated in max. Max is an ideal was of taking a diagrammatic model of something that would be traditionally used in a DAW and re-creating these features using a visual programming language. For example the 10 band graphic EQ patch attached I have built and now I have a better understanding of how an EQ works, which is the kind of thing that will be included in my dissertation. It's a piece of written work I am handing in, not the patch, or even abstractions from the patch.

LStonehouse's icon

And my university doesn't support Reaktor, I can't write 10000 words on something I know nearly nothing about

roger.carruthers's icon

The question is surely, when is a DAW not a DAW? (When it's a .jar ? ;-)

Actually someone (Tim Place?) did make a very creditable attempt at building a traditional 'multitrack + mixer' style DAW in Max a number of years ago, though iirc it was shared as an abandoned project - I'm sure I still have it somewhere, but I can't for the life of me remember what it was called.

My initial question is not just a really bad pun; the beauty of Max is that you can build your own 'workstation' that doesn't have to imitate the well-trodden multitrack/mixer analogue - you'll find plenty of examples on the Projects page, including my own poor efforts (talking of abandoned projects...).
Patching together a mixer with a timeline based on note~ or rs.delos would be interesting and possibly useful, but look also outside the box(es),
Cheers
Roger

ak's icon

I have to agree with Oli. You wrote "reproducing" in opening post, and so people try to save your time (not merely discourage). The core of a DAW is a playlist and editing capabilities. EQ, as Reaktor or EWQLSO, is just a plugin. Which DAW's "features" do you want to "replicate in max"?
btw. Nice EQ. Quite similar to Stefan Tiedje's one (https://cycling74.com/forums/4-band-eq-how-to-made). Maybe you are after exploring Max as an effect box?

LStonehouse's icon

Yeah I do appreciate the help and I know you're trying to save me the trouble, but if it proves a failure and impossible to use, it will still be a success in terms of my dissertation because my conclusion will be (in a nutshell) "despite the benefits discussed blah blah blah, trying to build a DAW in max/MSP is impractical because...... a better option to explore would be...." I'm just trying to emphasise that the patch isn't the important thing, I'm using max as the vehicle because I know how work with it (it's impractical for me to take the time to learn another software whilst doing the research for an undergraduate dissertation) the functionality of the end product isn't the most important thing.

And I suppose you could say I'm exploring max as an FX box, but the idea is using abstractions as customisable plugins, going into a master mixer. All the facilities are there in max, it may not be the most practical option, but it's the best way for me to explore and mimic a DAW using a visual coding medium.

Funnily enough the question on literature about DAW architecture is the main thing I'm after here (I know it's a max forum) and is for the first chapter that is general technical information on DAW's. Max won't actually be mentioned until the second chapter.

Cheers

LStonehouse's icon
broc's icon
ak's icon

so you can start writing the last chapter ;-) good luck!

dhjdhjdhj's icon

@broc
That paper by Roger and Ross does not seem to be accessible. I'm getting a "Forbidden" notice when try to get it.

broc's icon

Strange. I've just tried again and the link works for me (using Safari).

Roman Thilenius's icon

@ oli and others:

i think you have a strange look at DAWs when you really think that a flexible effect plug-ins matrix or offline sample editing is the "core" of these programs.

the core is the harddiskrecording and the mixer. and the basic architecture for that is like 20 objects in max and i would suggest it as a nice homework for undergraduate students.
and when it is too difficult to get multitrack recording working, then one can still use buffers and export after "stop", and you still have something similar.

yes, when you compare a modern DAW against a simple reverb you are right that a simple reverb is easier.
but if you want to be fair you have to compare a basic DAW against a modern reverb, and probably come to another result.

as long as you are not trying to create a product for others to use, maxmsp seems the perfect
tool to make a little custom STEM mixing application. (for 32-200 tracks and the need to do wave
editing i would of course still go back to steinberg or avid, but that is mostly a matter of CPU)

-110

dhjdhjdhj's icon

@Roman
+1

Roman Thilenius's icon

to each his own, well yes, but look at the history how these programs started 15 years ago. record and play, mix, edit, automate, add effects, add realtime effects, plug-in and channel- delay compensation, fully dynamic layout and architecture .. in that order and not the other way round.

Roman Thilenius's icon

never mind. ^^

dhjdhjdhj's icon

+1

________
never mind. ^^

prof_lofi's icon

Heya,

Someone built one in PD. Can't find the link, but it was a while ago and very basic, but it worked and might provide you with at least an example. Good luck with the project,

Best, Bill

vichug's icon

Hey Bledar where did you read that ? (i'm interested !)

Rick's icon

King of Limbs quote from Jarvis Cocker's Sunday Service on BBC Radio 6 at around 37'40" http://www.youtube.com/watch?v=9VtqrzwCOmU

vichug's icon

oh, thanks

Man With Feathers's icon

I'd love to see a DAW in Max.

I'm building a sample editor in Max, which enables use with external Haptic controllers etc. I've just figured out how to get it to launch as external sample editor for ableton (and hopefully other DAWs). Be interested to see other people's DAW type things so I can steal their superior editing functions (with credit) :)

shawn56's icon

I hope the idea is not dead. I am still looking if anyone has build a daw in Max that will work great with rewire. Even if there is maxforlive (that i dont have) still a great idea. Here is what i found on the net but i can not compile or find it https://ccrma.stanford.edu/~seanbrat/220c.html dose this even work? can someone comile the object for me and there is this that i can not find. evala氏制作のMaxパッチ http://www.cbc-net.com/topic/2011/09/a4a-maxmsp-ws/. The one for pd i do have lost. But i thing that it can replicated in max.