public static function getPseudo($nb = 3, $uppercase = true) { mt_srand(self::make_seed()); $list = self::getSyllabes(); $pseudo = ''; for ($i = 0; $i < $nb; $i++) { shuffle($list); $pseudo .= $list[array_rand($list)]; } $pseudo .= Probability::success(80) ? mt_rand(10, 99) : null; return $uppercase ? ucfirst($pseudo) : $pseudo; }
$pParallelScale = new Probability; $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++)