Hi,
I have an idea for an object, and I was wondering if anyone might be able to suggest a way to realize my concept.
I want to make an object that will take as it's input a midi note number. It will output another number that will be a musical interval. Then I input another note, and based on the previous resulting interval it will create a counterpoint melody based on rules and probability that I create.
For example, if a previous interval was a perfect 5th, and the note I play (let's say the top note) goes up a step, I want there to be a high probability that the counterpoint note will go down a step and it will result in a 7th by contrary motion. If I have a 3rd there might be a high probability that the next interval will be a parallel 3rd. I have all the rules and probabilities kind of figured out in my head.
But I don't really know the best way to approach this. I would think some kind of text based coding might be a way to go. Maybe I could do this in C++. But i can also use regular vanilla objects like select objects and, based on the interval, choose a different outcome.
Eventually, based on if I can actually make this and it sounds decent, I would want to expand this into a 4 voice counterpoint generator.
Anyway, any suggestions would be welcome.
EDIT: ok I am looking at the expr if statements. I'll see if I can say if it's this interval, do this, else if it's this other interval do this, and try and list every interval. That seems to be a place to start.
thank you