$pParallelScale-> add(TRUE, 5); $pParallelScale-> add(FALSE, 95); // - that intervals repeat (like, 2nd up, 3rd down, 1st, 2nd up, 3rd down, 1st) minimum 2 intervals = 3 notes $pIntervalRepeat = new Probability; $pIntervalRepeat-> add(TRUE, 20); $pIntervalRepeat-> add(FALSE, 80); // - that a group of notes in close proximity will be based on one chord (also a 7th chord) $pChordBased = new Probability; $pChordBased-> add(TRUE, 15); $pChordBased-> add(FALSE, 85); // if so, how many notes together: $pHowMany = new Probability; $pHowMany-> add(2, 95); $pHowMany-> add(3, 65); $pHowMany-> add(4, 35); $pHowMany-> add(5, 15); $pHowMany-> add(6, 8); $pHowMany-> add(7, 6); $pHowMany-> add(8, 4); function createGenome($scale, $octaves = 1, $length = 16, $phraseLength = 8) { //eval(globals()); // get all the probability objects global $pFirstPhraseNoteOnTriad, $pNoteOnScale, $pLastPhraseNoteOnTriad, $pLastNoteOnTriad, $pLastNoteOnTonic; $genome = array(); for($i = 0; $i < $length; $i++) {