MaxMSP for the algorithmic composing

    Jan 16 2012 | 4:26 pm
    Hello. I am quite newbie here. I wonder if the MaxMSP is suitable for the algorithmic composing, or to say, an algorithmic MIDI generator? Thank you.

    • Jan 16 2012 | 5:07 pm
      I am not sure what level of algorithmic composition you want but it should be powerful enough to do most of what you need. - is a great blog with plenty of patches - not all max but all about algorithmic composition.
      Max4Live nwdlbots ( is definitely worth a look and the RTC library.
    • Jan 16 2012 | 7:35 pm
      there is probably no better enviroment for this
    • Jan 16 2012 | 7:49 pm
      See also the excellent In fact there are loads of resources out there, particularly in the world of MIDI, because let's not forget that for several years Max had no MSP and it was all about MIDI. There's also Tod Winkler's book, and Robert Rowe's 'Machine Musicianship', both of which have many examples of this kind of thing, cheers Roger
    • Jan 16 2012 | 9:23 pm
      > there is probably no better enviroment for this
      And... it was made for this, really.
    • Jan 16 2012 | 11:05 pm
      but too many people still use repeating patterns full of linearity, predictabilty, and call it music.
      why is that?
    • Jan 17 2012 | 12:03 am
      Thank you very much. Personally I am not itnerested in the sound synthesis, rather in the algorithmic composing that generates some kind of output readable in Finale/Sibelius or so. I have obtained the highest education in music composition (acoustic) and I am quite weak in programming. I know what Max can't do but not sure what it CAN do.... So appreciate any help. Well, regarding the algorithmic it should generate everything from the simple melodic structures to more complex chords progressions or custom scales, polyphonic, etc... Is there any example of this kind?
      Best, M
      /I have already checked that pages too
    • Jan 17 2012 | 12:48 am
      I like Romans post near the bottom - every time I read I find lots more things to try out.
      I don't think that anybody has completely nailed generative algo's so I think it is still a bit of a fiddle about and see what you can get going. Probability, Scaling, and Markov chains are some of the processes typically used. - might be a good place to start.
      For me this is the closest anybody has got to nailing it - Emily Howell -
      There is a lot of variation in key, dynamics and timing but it follows a sequence mostly. It sounds like it has heart which is hard to program.
    • Jan 17 2012 | 12:49 am
      it can do everything, and it is you who chooses where the limits are. you can for example generate only notes which are greater than C#3 but not smaller than C3. if you like minimalism.
      if you dont like minimalism, a computer will also let you create a note at 300,000 Hz. and play 500 of those at the same time. you wont hear them, but it is possible.
      what i am trying to say is that the main difference between using the brain and using computers is that improvisation and notation is more an additive process where computer based composing is more a substractive process: endless possibilities, and you need to select.
      i once started maxmsp for the audio part, but then i came back to composing:
      with programming languages (or with computers in general) you will discover tons of new possibilities which an upright piano does not have. if you only think about probability or random - impossible when writing a partiture, as you can not note down something which isnt sure yet but only works in realtime.
      because all these things are nothing more but math, you could do that theoretically in every programming language which has math available. max is probably the best of them.
    • Jan 17 2012 | 4:03 am
      Actually, there is something that is better than Max... If you are really interested in exploring applications of algorithms and music composition. Learn python and check out Music21
      Music21 is an amazing library of composition tools for exploring and analyzing music. As programming languages go, python is pretty easy to learn. Once you have that down, you can explore Scipy which is an algorithmic gold mine.
      If you want to get interactive, you can also load python scripts in Max and then hook them up to a user interface or controller.
    • Jan 17 2012 | 5:20 am
      Absolutely not! you have to be soso careful not to do the wrong thing. You could break the patch, your computer, your life... Serious bizness this algearhythmic stuff-dont get mixed up in it!
    • Jan 17 2012 | 7:53 am
      I'd suggest you to check out the MaxScore project as well, as another algorithmic composition tool for Max:
      Also the Bach project might be of interest for you:
      Also, if you have access to IRCAM software, I would definitely check out OpenMusic:
      Hope this helps, Ádám
    • Jan 17 2012 | 4:45 pm
      Thank you, for the links. All this is promising. But it is also a bit confusing. If you ask one who works in OpenMusic - if it is great algorithmic tool for composing, the answer is YES. It is also with CommonMusic or PWGL or SuperCollider. All say the same. That is clear - all are programming languages.
      I have got Max 6 as a new-year present, it looks nice and intuitive. I just wonder HOW to use it in the algorithmic composing.
      Let us make an experiment. For instance, easy randomly generated song for children in C major, 8 measures, that starts and finishes on C (tonic). Any idea?
    • Jan 17 2012 | 9:03 pm
      [toggle] | [metro 250] | [count 48] | [select 1 48] | [expr random(48,72)] | [pack 0 63] | [midiformat] | [midiout]
      second output of [select]:
      [60] | ...
      p.s.: one could even integrate the [select] into the expression and save two more objects:
      [toggle] | [metro 250] | [count 48] | [expr (random(48,72))*($i1>=2 && $i1 | [pack 0 63] | [midiformat] | [midiout]
      but i wouldnt do this because of the worse readability.
    • Jan 17 2012 | 9:20 pm
      Thank you. I still don't get MIDI out. Or I don't know how to do it.
    • Jan 17 2012 | 10:04 pm
      Ok, I have got the second example working. It is not still diatonic, and how to export MIDI?
    • Jan 17 2012 | 10:39 pm
      to export midi you need to record it first- use [seq ] for that. to apply a seive you could look at coll as an intermediary ie random 8-> coll with 8 indices as addresses for degrees of a scale; ie 0, 60; 1, 62; etc
    • Jan 17 2012 | 11:21 pm
      I guess if you would like to do algorithmic composition, you'll need to learn programming at least on some basic level. Otherwise you won't be able to tell a machine the algorithms you invented...
      With that said, Max is a good environment to start with. Even if you had zero knowledge on programming, learning the basics is quite easy and straightforward (compared to, for instance, plain C or Java, or more 'code-oriented' environments, like CSound) if you just follow the tutorials, and it will take you some time to reach the limits of the system.
      I've never programmed personally in OpenMusic, so I can't tell you what that could do for you. However, I have plenty of colleagues that work with OM, and most of them told me that that system is more suitable for algorithmic composition than Max. So, you might want to have a look on that environment too (if you have access to IRCAM software).
      Hope this helps, Ádám
    • Jan 18 2012 | 10:33 pm
      There are over one hundred documented computer programs/environments/languages intended for composers. Christopher Ariza maintains the most comprehensive, consistently documented catalog of them on the internet:
      The ability to generate MIDI output is pretty ubiquitous, so you don't really need to worry about any difficulty finding a system that will do that for you.
      have fun drinking from the fire hose, Jeff
    • Jan 18 2012 | 11:10 pm
      I can't let this thread go without mentioning Karlheinz Essl's amazing RTC-lib. It contains loads of useful abstractions for this sort of stuff, go have a look!
    • Jan 18 2012 | 11:23 pm
      this might help or give you some ideas -
    • Jan 19 2012 | 11:23 pm
      Oh.... Finally it is the same. I know all these sites and I read a lot. Just I am so curious if the Max has enough power for algorithmic composing in the matter I need. It gets again a confusion.... :( The last Manzo site haven't seen yet.
    • Jan 19 2012 | 11:32 pm
      While Max is a powerful, it is not a functional programming language. It is a graphical programming language. Trying to develop algorithms in native Max is pretty clumsy and tends to take twice as much work.
      If you to want to explore developing algorithms, you are better off learning a functional programming language that integrates with Max: Python, JavaScript, JAVA, lisp. Or even better, create your own externals written in C/C++ using the Max SDK.
    • Jan 20 2012 | 1:47 am
      >Just I am so curious if the Max has enough power for algorithmic composing in the matter I need. It gets again a confusion.... :(
      It *IS* powerful enough!!! Do the tutorials and learn how to do it. There's a TON of information out there - learn how to acquire it yourself.
      You can do quality algorithmic music with an iphone these days, it really isn't a question of "can it be done?", but more of "how do *I* want to achieve my goals with software X?"
      Do the tutorials, do the midi tutorials more than once, and you should be plenty capable of building your own in like a week from now. Please don't ask us to build elements that satisfy some made up criteria - it'll be a circlejerk and won't help a damned thing.
    • Jan 20 2012 | 3:01 am
      you can probably not yet imagine this, but believe me, in the long end, you do not want to "use" something, you want to build it yourself from the scratch.
      btw, in my above example the duration of the note is missing, but no problem, thats also only one object.
    • Jan 20 2012 | 4:54 pm
      Just one more link if not for the OP then maybe for others that find this topic later.
      you will need l'objects to work through these - you can get them at
    • Jan 20 2012 | 6:42 pm
      Thank you all. @Roman, that is exactly what David Cope wrote to me. He organizes some workshops on that subject.
      @Wetterber, it is exactly what you say:
      "You can do quality algorithmic music with an iphone these days, it really isn't a question of "can it be done?", but more of "how do *I* want to achieve my goals with software X?"
      ...and so my question was regarding HOW not if it can or not.
      "Please don't ask us to build elements that satisfy some made up criteria - it'll be a circlejerk and won't help a damned thing." ...and that is the How it can be acheved. Simply said, I just want to see and compare different algorithmic tools.