Problems with Generative Sample based project (random files playing)

musicman's icon

Hey everyone, this is my second Max project and I'd like to say thanks as I've received a lot of help from looking around this forum.

My project involves using lots of recorded samples (each one is 2 bars at 90 tempo, equalling about 5 seconds worth) and using Max to randomly generate ones to play. For instance by the end I'm hoping to have many different guitar parts which could be randomly chosen alongside a multitude of options for snare, kick drum, bass, strings etc. Producing millions of possible combinations of melodies and rhythms. When I can get the basics right I'll make it so you can change the speed, select the instruments you want and that the music can change style by itself etc.

Anyway my problem areas:

1 - It all relies on generating a number between 0 and 5 (at the moment 0 and 2) which determines the chord. All music is linked together by the chord and thus which notes it should be playing. However my piano samples are sometimes playing the wrong chord... Somehow the wrong sample is triggered I assume.

2 - The rhythm guitars sometimes appear to play half a second and cut out then nothing until the metro starts the next 'round of samples'.

Could anyone look at my patch and see if there's any gaping flaws or ways to improve it and particularly these problems? I'm quite new to Max so there's probably many ways (and easier) ways to do what I'm attempting.

Many thanks!

Max Patch
Copy patch and select New From Clipboard in Max.

3073.GenerativeProjectBasic02.maxpat
Max Patch
AudioLemon's icon

Hello,

I had a quick look but I am do not use sfplay~ that much so I am not sure of problems related to it but you could tidy it up a little.

1. use [route 0 1 2] rather than all the if then stuff - cleaner
2. in the piano section you bang an addition box always playing the second cue. Maybe use a message box instead.

Lastly I might be tempted to use the polybuffer~ object. It will load an entire folder of samples into ram. You can address it and play it easily enough. It might solve some of the timing issues. If you don't have Max 6 you can search the forum and download polybuffer~ for max 5.

Again I do not use sfplay~ and sflist very often so somebody would know more but if it was me I might use polybuffer~.

musicman's icon

Thanks for the [route] help, that definitely makes it more tidy!

I still seem to have the same problems.

How would I use the polybuffer~ object? I was trying to connect it and I'm getting very confused. It could well be a better method as my file sizes are small so using RAM does make more sense.

AudioLemon's icon
Max Patch
Copy patch and select New From Clipboard in Max.

The helpfile~ for polybuffer~ tells you everything you need to know...