64?$tones:(2*$tones)-1; $note=freq2midipb($melody['freqs'][]=$basefreq); $melody['notes'][]=$note['note']; $melody['pbs'][]=$note['pb']; for ($i=1; $i<$maxtones; $i++) { $step=(($i-1)%($tones-1))+1; $ratio=( ($scale[$step][0]*$scale[$step-1][1])/ ($scale[$step][1]*$scale[$step-1][0]) ); $note=freq2midipb($melody['freqs'][]=$melody['freqs'][$i-1]*$ratio); $melody['notes'][]=$note['note']; $melody['pbs'][]=$note['pb']; } } else if ($type=='root2') { # $tones=round($_SESSION['scaleroot2']); $tones=round(log(2)/log($scale[1][0]/$scale[1][1])); $maxtones=$tones>64?$tones:(2*$tones); $note=freq2midipb($melody['freqs'][]=$basefreq); $melody['notes'][]=$note['note']; $melody['pbs'][]=$note['pb']; for ($i=1; $i<=$maxtones; $i++) { $ratio=$scale[1][0]/$scale[1][1]; $note=freq2midipb($melody['freqs'][]=$melody['freqs'][$i-1]*$ratio); $melody['notes'][]=$note['note']; $melody['pbs'][]=$note['pb']; } } return $melody; } ?>