Building a DAW in max/MSP

    Nov 02 2012 | 5:23 pm
    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 :)

    • Nov 03 2012 | 4:06 am
      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.
    • Nov 03 2012 | 4:10 pm
      Looking at code ≠ "academic literature."
    • Nov 03 2012 | 4:19 pm
      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
      --------------------------------------------- Endless Series v3 out now - A unique synthesis and effect plugin/app based on the Shepard Tone auditory illusion.
    • Nov 03 2012 | 4:27 pm
      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 (
    • Nov 03 2012 | 4:45 pm
      I doubt that an undergrad dissertation requires a commercial grade DAW.
      There's 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
    • Nov 03 2012 | 5:13 pm
      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.
    • Nov 03 2012 | 5:18 pm
      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!
    • Nov 03 2012 | 8:22 pm
      I think Oli Larkin had the best advice(the rest is just amateur guessing >:D).
    • Nov 03 2012 | 10:23 pm
      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.
    • Nov 04 2012 | 1:10 am
      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.
    • Nov 04 2012 | 1:13 am
      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.
    • Nov 04 2012 | 1:23 am
      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?
    • Nov 04 2012 | 10:32 am
      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
    • Nov 04 2012 | 12:15 pm
      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!
    • Nov 04 2012 | 1:04 pm
      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.
    • Nov 04 2012 | 3:16 pm
      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.
    • Nov 04 2012 | 3:22 pm
      And my university doesn't support Reaktor, I can't write 10000 words on something I know nearly nothing about
    • Nov 04 2012 | 4:18 pm
      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
    • Nov 04 2012 | 4:27 pm
      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 ( Maybe you are after exploring Max as an effect box?
    • Nov 04 2012 | 4:45 pm
      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.
    • Nov 04 2012 | 4:48 pm
    • Nov 04 2012 | 6:30 pm
      Here is a scientific paper about some relevant aspects of a DAW.
    • Nov 04 2012 | 9:36 pm
      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
    • Nov 04 2012 | 10:23 pm
      so you can start writing the last chapter ;-) good luck!
    • Nov 04 2012 | 11:10 pm
      @broc That paper by Roger and Ross does not seem to be accessible. I'm getting a "Forbidden" notice when try to get it.
    • Nov 04 2012 | 11:41 pm
      Strange. I've just tried again and the link works for me (using Safari).
    • Nov 05 2012 | 3:06 am
      @ 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)
    • Nov 05 2012 | 3:16 am
      @Roman +1
    • Nov 05 2012 | 3:33 am
      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
    • Nov 05 2012 | 8:44 pm
      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.
    • Nov 06 2012 | 2:29 am
      "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 :)
    • Nov 06 2012 | 3:12 pm
      never mind. ^^
    • Nov 06 2012 | 7:07 pm
      ________ never mind. ^^
    • Nov 15 2012 | 12:01 am
      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
    • May 02 2014 | 1:04 am
      ""For the King of Limbs, the band actually programmed their own DAW in Max, which they used to record the album (Jonny mentions this during a BBC radio show with Colin and Adam Buxton, filling in for Jarvis Cocker).""
      if radiohead did it why should we not :D
    • May 02 2014 | 3:30 pm
      Hey Bledar where did you read that ? (i'm interested !)
    • May 02 2014 | 4:30 pm
      King of Limbs quote from Jarvis Cocker's Sunday Service on BBC Radio 6 at around 37'40"
    • May 02 2014 | 8:43 pm
      oh, thanks
    • Mar 17 2015 | 3:36 pm
      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) :)
    • Sep 08 2015 | 2:27 pm
      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 dose this even work? can someone comile the object for me and there is this that i can not find. evala氏制作のMaxパッチ The one for pd i do have lost. But i thing that it can replicated in max.