MaxMSP for the algorithmic composing

my3a's icon

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.

AudioLemon's icon

I am not sure what level of algorithmic composition you want but it should be powerful enough to do most of what you need.

http://www.algorithmiccomposer.com/ - is a great blog with plenty of patches - not all max but all about algorithmic composition.

Max4Live nwdlbots (http://www.sundaydance.co.uk/) is definitely worth a look and the RTC library.

Roman Thilenius's icon

there is probably no better enviroment for this

roger.carruthers's icon

See also the excellent http://algocomp.blogspot.com/
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

Wetterberg's icon

> there is probably no better enviroment for this

And... it was made for this, really.

Roman Thilenius's icon

but too many people still use repeating patterns full of linearity, predictabilty, and call it music.

why is that?

my3a's icon

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

AudioLemon's icon

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.
http://www.algorithmiccomposer.com/2010/05/algorithmic-composition-random-walk-max.html - might be a good place to start.

For me this is the closest anybody has got to nailing it -
Emily Howell - http://www.youtube.com/watch?v=QEjdiE0AoCU

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.

Roman Thilenius's icon

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.

-110

Anthony Palomba's icon

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 http://mit.edu/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
http://www.scipy.org/ 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.

ehdyn's icon

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!

$Adam's icon

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

my3a's icon

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?

Roman Thilenius's icon

easy:

[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.

my3a's icon

Thank you. I still don't get MIDI out.
Or I don't know how to do it.

my3a's icon

Ok, I have got the second example working.
It is not still diatonic, and how to export MIDI?

Floating Point's icon

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

$Adam's icon

Hi,

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

jeffrey.trevino@gmail.com's icon

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

Luke Hall's icon

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!

AudioLemon's icon
my3a's icon

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.

Anthony Palomba's icon

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.

Wetterberg's icon

>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.

Roman Thilenius's icon

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.

AudioLemon's icon

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 http://artsites.ucsc.edu/ems/music/research/Lobjects.readme.html

my3a's icon

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.