Who's making generative Music/Art with Pure Data or Max ?
I went through a phase of designing generative music systems in Max a few years ago. It was a fun experiment that produced some interesting results, a few of them linger on my Soundcloud. I'm still quite interested in the concepts but spend more of my time working on signal processing stuff in Max rather than generating music (ie generating note data).
Really nice music btw, I followed the link from your profile.
In response to your questions I thought I'd add to my previous answer here as there's not really enough space in the comments.
Well I'm very much a student in this area, but recently I've been trying to work out the appeal of this approach (for me personally) so here's a few thoughts:
Essentially the aim of generative music is to create a program or system for generating music to a set of rules. The creative part for us is designing the system. To do this we need to look at what music is and define the parameters which it's comprised of. We then need to analyse the process of composition and choose when and whether we try to mimic a human composer or create sounds more mechanical and computer based . Both have their merits and pitfalls, so it's really dependent on what you like and are trying to achieve.
Defining the parameters involved in music is pretty easy, and in fact has been done for us - MIDI. If you think about what MIDI essentially is, it's a system for encoding musical information in a digital form. Put another way it allows us to record or generate musical information in a digital form which we can then manipulate. The main components of midi data are pitch and velocity, but we also sequence these so should include timing, which we can think of as a parameter of sorts.
So a stochastic system is one which has a degree of randomness built into it. In a musical sense this could be anything from adding random velocity (something which is now built into most DAW's) to choosing random notes (which isn't). This isn't really a new idea, and you can trace it all the way back to early works of John Cage bit these ideas became much more interesting and accessible with the development of computers. So you might be thinking here that you don't want to make random music because random music doesn't sound good - and you'd be right, but this becomes more useful when you build systems with many interconnected elements which are separate but can also affect each other. You've then created a complex system, with complex behaviour.
With our music we primarily need parts of the program to generate rhythm and pitch (velocity is perhaps an afterthought as music can still be musical even at one velocity). Generating a rhythm can be done on a note by note basis and we can do it in the way John Cage did by using probability or even better by using weighted probability (which will allow us to make a more complex system). Imagine you trigger a note and then role a dice, the number on the dice corresponds to a set timings, you then wait that long, trigger the next note and roll the dice again... and so it goes on and on. Mimic this process inside a computer and you've just created an algorithmic rhythm generator. You can do the same for pitch each time you generate a note which you constrict to a certain set of frequencies (like a scale for instance). You can then expand on the parts of your program and refine their behavior. I quite like to create sets of presets or 'states' for each. Let's say you've a separate generator for pitch, timing and velocity each with 20 possible states. You then create a program to generatively cycle through each then you've created a system with 8000 possible states (20x20x20). Let's say you then combine three of these into a polyphonic instrument and have six of these generating a song... how many possible states are there then?
I find that this approach can easily become chaotic, but I think part of the appeal is the idea of creating something so complex that you wrestle to control it and then when it seems almost out of control it creates the most interesting output.
If you want to get into this sort of stuff in Max/msp I strongly recommend you work through Christopher Dobrian's tutorials here:
If anything I've written seems a bit vague, it won't after you've worked through those. For sure, it will take some time but there's really no magic bullet with using these techniques - you can only get the most from them by dedicating time and understanding them fully. The techniques that I imagine were involved in the soundcloud track you link to in the comments are all contained in those tutorials.
I also got a lot out of this book
It's a bit old, but the ideas are good. There is also tons of info on the Max/msp forum:
At the moment I'm really interested in organic patterns and how you can generate them with algorithmic processes. There's also a connection between these and how our world is organised - check out this seashell:
Similar patterns to those on the shell can be generated through processes like cellular automata, it's visually beautiful but is also just the representation of a pattern generated by a system. If you break down music or sound it's also just patterns. So there's the potential for creating sound from any set of data, it's just that some are musically more useful than others.
If that interests you, you might also enjoy this book:
Well I think that's the longest answer I've ever written!
Good luck with it... you might have just fallen into a (very deep) rabbit hole.
|show 1 more comment|