Building a DAW in max/MSP

Nov 2, 2012 at 5:23pm

Building a DAW in max/MSP

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 :)

#65043
Nov 3, 2012 at 4:06am

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.

#234514
Nov 3, 2012 at 4:10pm

Looking at code ≠ “academic literature.”

#234515
Nov 3, 2012 at 4:19pm

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

#234516
Nov 3, 2012 at 4:27pm

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/)

#234517
Nov 3, 2012 at 4:45pm

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

#234518
Nov 3, 2012 at 5:13pm

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.

#234519
Nov 3, 2012 at 5:18pm

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!

#234520
Nov 3, 2012 at 8:22pm

I think Oli Larkin had the best advice(the rest is just amateur guessing >:D).

#234521
Nov 3, 2012 at 10:23pm

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.

#234522
Nov 4, 2012 at 1:10am

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.

#234523
Nov 4, 2012 at 1:13am

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.

#234524
Nov 4, 2012 at 1:23am

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

#234525
Nov 4, 2012 at 10:32am

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

#234526
Nov 4, 2012 at 12:15pm

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!

#234527
Nov 4, 2012 at 1:04pm

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.

#234528
Nov 4, 2012 at 3:16pm

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.

– Pasted Max Patch, click to expand. –
#234529
Nov 4, 2012 at 3:22pm

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

#234530
Nov 4, 2012 at 4:18pm

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

#234531
Nov 4, 2012 at 4:27pm

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 (http://cycling74.com/forums/topic.php?id=19644). Maybe you are after exploring Max as an effect box?

#234532
Nov 4, 2012 at 4:45pm

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

#234533
Nov 4, 2012 at 4:48pm

#234534
Nov 4, 2012 at 6:30pm

Here is a scientific paper about some relevant aspects of a DAW.

http://www.cs.cmu.edu/~rbd/doc/icmc2005workshop/real-time-systems-concepts-design-patterns.pdf

#234535
Nov 4, 2012 at 9:36pm

If you say, ‘ignore Tokyo Rose’ you’ve only proven that you can’t ignore and i’m still in your head.
dhjdhjdhj makes such irrelevant software and comments anyways :p

#234536
Nov 4, 2012 at 10:23pm

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

#234537
Nov 4, 2012 at 11:10pm

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

#234538
Nov 4, 2012 at 11:41pm

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

#234539
Nov 5, 2012 at 3:06am

@ 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

#234540
Nov 5, 2012 at 3:16am

@Roman
+1

#234541
Nov 5, 2012 at 3:33am

Roman wrote:
“@ 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.”

to each his own. but actually, part of my ‘strange’ look at DAWs incorporates the idea of a ‘linear’ timeline as well(as narrow-minded as that may seem, so is the general idea of a DAW as it has been generally come to be used and known). this is what separates a DAW from a more flexible ‘audio programming environment’ in general.
Max is a strange choice to narrow down into a DAW,…
but you’re right, it is still an interesting exercise. For that matter, relevant to this thread, i suppose we should link to all the timeline solutions(such as the nice JS one posted awhile back). i’m just too lazy to find them… a bit like creating a DAW in max/msp: there’s so many other more interesting things to learn in the environment, i’m just worried boredom will overtake me halfway through the process >:D

#234542
Nov 5, 2012 at 8:44pm

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.

#234543
Nov 6, 2012 at 2:29am

“to each his own, well yes, but…”
but nothing. you can’t refute subjectivity

“in that order and not the other way round”
sorry, were you trying to make some kind of point? i think you may have forgotten to include it, if so :)

#234544
Nov 6, 2012 at 3:12pm

never mind. ^^

#234545
Nov 6, 2012 at 7:07pm

+1

________
never mind. ^^

#234546
Nov 15, 2012 at 12:01am

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

#234547

You must be logged in to reply to this topic.