function normaliser($chaine) { $lon=strlen($chaine); $prov=""; for($i=0;$i<$lon;$i++) { $l1=substr($chaine,$i,1); $ls=substr($chaine, $i+1,1); if($i==0 and $l1==" ") $l1=""; elseif($l1==" " and $ls==" ") $l1=""; elseif($l1=="]" and $ls=="[") $l1="] "; $prov=$prov.$l1; } return $prov; }; function ecrire($fichier,$content) { $ficfic=fopen($fichier,"w"); if ( !($ficfic)) { echo "

Impossible d’ouvrir le fichier $fichier en écriture

"; fclose($ficfic); } else { fwrite($ficfic,$content); fclose($ficfic); } }; function ajouter($fichier,$cont1,$cont2) { $ficfic=fopen($fichier,"w"); if ( !($ficfic)) { echo "

Impossible d’ouvrir le fichier $fichier en écriture

"; fclose($ficfic); } else { fwrite($ficfic,$cont1); fwrite($ficfic,$cont2); fclose($ficfic); } }; function lonfile($fichier) { $content=""; $fic=fopen($fichier,"rb"); if ( !($fic)) { echo "

Impossible d’ouvrir le fichier $fichier en lecture

"; fclose($fic); return ""; } $lonfile=filesize($fichier); fclose($fic); return $lonfile;}; function oter($fichier,$deb,$lon) { $content=""; $fic=fopen($fichier,"rb"); if ( !($fic)) { echo "

Impossible d’ouvrir le fichier $fichier en lecture

"; fclose($fic); return ""; } $lonfile=filesize($fichier); if($deb>$lonfile) $deb=$lonfile; fseek($fic, $deb); $content=@fread($fic,$lon); fclose($fic); return $content; }; function tradsymb($phr) { $lon=strlen($phr); $prov=""; for($i=0;$i<$lon;$i++) { $lp=substr($phr,$i-1,1); $l1=substr($phr,$i,1); $l2=substr($phr,$i,2); $l3=substr($phr,$i,3); $lss=substr($phr,$i+2,1); if($lss=="") $lss=" "; if($l3=="/35" or $l3=="/39" or $l3=="/43" or $l3=="46") { $l1=$l3; $i=$i+2; } elseif($l2==38) { $i++; $l1=chr($l2); } elseif($l2=="39") { $i++; $l1="'"; } elseif($lp != " " and $l2=="35") { $i++; if($i==1) $l1=35; else $l1=chr($l2); } elseif($lss != " " and ($l2=="35" or $l2=="39" or $l2=="43" or $l2=="46" or $l2=="61")) { $i++; if($lss=="." or $lss==")" and $l2=="61") $l1="61"; else $l1=chr($l2); } $prov=$prov.$l1; } return $prov; }; function decodeutf8($phr) { $lon=strlen($phr); $prov=""; for($i=0;$i<$lon;$i++) { $l1=substr($phr,$i,1); $ls=substr($phr,$i+1,1); $lss=substr($phr,$i+2,1); $ordl1=ord($l1); $ordls=ord($ls); $ordlss=ord($lss); //echo "

l1 $l1 ord $ordl1 ordls $ordls ordlss $ordlss

"; if($ordl1==226 and $ordls==128 and $ordlss==161) { $i=$i+2; $l1="ç"; } elseif($ordl1==226 and $ordls==128 and $ordlss==156) { $i=$i+2; $l1="ô"; } elseif($ordl1==226 and $ordls==128 and $ordlss==166) { $i=$i+2; $l1="à"; } elseif($ordl1==239 and $ordls==191 and $ordlss==189) { $i=$i+2; $l1="è"; } elseif($ordl1==194 and $ordls==129) { $i++; $l1='ü'; } elseif($ordl1==194 and $ordls==135) { $i++; $l1='ç'; } elseif($ordl1==194 and $ordls==147) { $i++; $l1='ô'; } elseif($ordl1==194 and $ordls==137) { $i=$i+1; $l1="ë"; } elseif($ordl1==194 and $ordls==138) { $i=$i+1; $l1="è"; } elseif($ordl1==194 and $ordls==130) { $i=$i+1; $l1="é"; } $prov=$prov.$l1; } return $prov; }; function decodesymb($phr) { $lon=strlen($phr); $prov=""; for($i=0;$i<$lon;$i++) { $l1=substr($phr,$i,1); if($l1=="#") $l1="35"; elseif($l1=="'") $l1=39; elseif($l1=="+") $l1="43"; elseif($l1=="-") $l1=="45"; elseif($l1=="=") $l1="61"; $prov=$prov.$l1; } return $prov; }; function otechemin($phr) { $lon=strlen($phr); $prov=""; for($i=0;$i<$lon;$i++) { $l1=substr($phr,$i,1); if($l1=="/") $prov=""; elseIf($l1=='é' or $l1=='è' or $l1=='ê' or $l1=='ë') $prov=$prov . "e"; else if($l1=='à' or $l1=='â' or $l1=='ä') $prov=$prov . "a"; else if($l1=='ç') $prov=$prov . "c"; else if($l1=='î' or $l1=='ï') $prov=$prov . "i"; else if($l1=='ô' or $l1=='ö') $prov=$prov . "o"; else if($l1=='ù' or $l1=='û' or $l1=='ü') $prov=$prov . "u"; else if($l1==" ") $prov=$prov . "+"; else $prov=$prov.$l1; } return $prov; }; function youtube($prenom,$nom) { $prenommod=otechemin($prenom); $nommod=otechemin($nom); $suffixe=substr($nommod,strlen($nommod)-4,4); if($suffixe==".mp3") $nommot=substr($nommod,0,strlen($nommod)-4); $studyvox='

Rechercher avec google dans studyvox : ' . $prenommod . " " . $nommod . "

"; echo "

$google

"; $youtube='

Rechercher avec google dans youtube : ' . $prenommod . " " . $nommod . "

"; echo "

$google

"; return $google; }; function rechercher($deb,$fin,$chemin,$lire,$banqueclef) { echo "

Patientez

"; $lonlire=strlen($lire); $testetoile=0; $provlire=""; for($j=0;$j<$lonlire;$j++) { $l1=substr($lire,$j,1); if($l1=="*") { $testetoile=1; $londeb=$j; $lonfin=$lonlire-$j-1; } else $provlire=$provlire.$l1; } $lire=$provlire; $lonlire=strlen($lire); $lire=strtolower($lire); $itest=0; $reponse=""; //tableaux $midi et $reponse $val=0; include($banqueclef); $fin=$val; for($val=$deb;$val<$fin;$val++) { $imot=1; $rep=$reponse[$val]; if($rep=="") $val=$fin; $rep=$rep." "; $lon=strlen($rep); $prov=""; for($i=0;$i<$lon;$i++) { $l1=substr($rep,$i,1); if($l1==" " or $l1=="_" or $l1=="," or $l1=="." or $l1==";") { $imot++; if($imot==10) $i=$lon; $prov=strtolower($prov); if($testetoile==1) { $debprov=substr($prov,0,$londeb); $finprov=substr($prov,strlen($prov)-$lonfin,$lonfin); $prov=$debprov.$finprov; } elseif($lonlire==1) { $prov=substr($prov,0,1); $i=$lon; } if($prov==$lire) { $i=$lon; $itest++; $rep=tradsymb($rep); echo "$val ".'

'."$rep

"; echo "$lien"; } $prov=""; } else $prov=$prov.$l1; } //fin de la recherche } return $itest; }; //fin des fonctions de bibli.php function copyadresse($adresse,$provfic) { $fic=fopen($provfic,"w"); if ( !($fic)) echo "

Impossible d’ouvrir le fichier $provfic en écriture

"; else { fwrite($fic,$adresse); fclose($fic); } }; function durnote($note) { $dur=""; $lon=strlen($note); $itest=0; for($i=0;$i<$lon;$i++) { $l1=substr($note,$i,1); if($l1=="/") $itest=1; if($itest==1) $dur=$dur.$l1; } return $dur; }; function anharmonote($armure,$note) { $lon=strlen($armure); for($i=0;$i<$lon;$i++) { $l1=substr($armure,$i,1); if($l1 != " ") { if($l1==$note) { $note=$note.substr($armure,$i+1,1); //echo "

test anharmonote $note $l1

"; return $note; }} } return $note; }; function anharmo($tabla) { $lon=strlen($tabla); $armure=""; $mesure=""; $unit=""; $prov=""; $itest=0; for($i=0;$i<$lon;$i++) { $l1=substr($tabla,$i,1); if($l1=="K") { $i++; $itest=1; } elseif($l1=="M") { $i++; $itest=2; } elseif($l1=="L") { $i++; $itest=3; } elseif($l1==":" and $itest != 0) $itest=0; elseif($itest==1) $armure=$armure.$l1; elseif($itest==2) $mesure=$mesure.$l1; elseif($itest==3) $unit=$unit.$l1; elseif($itest==0) $prov=$prov.$l1; } if($armure=="" and $mesure=="" and $unit=="") return $tabla; if($armure != "") echo "

Armure $armure

"; if($mesure != "") { $itemps=substr($mesure,0,1); $idur=substr($mesure,1,2); echo "

Mesure $mesure

"; } if($unit != "") echo "

Unité $unit

"; $prov=$prov." "; $tabla=normaliser($prov); echo "

Tablature harmonique $tabla

"; $lon=strlen($tabla); $inote=0; $ibarre=0; $prov=""; $rythme=""; for($i=0;$i<$lon;$i++) { $l1=substr($tabla,$i,1); $l2=substr($tabla,$i,2); $majl1=strtoupper($l1); if($majl1=="Z") $l1=" p"; elseif($l1=="^") { $l1=""; $alt="#"; } elseif($l1=="-") { $l1=""; $alt="b"; } if($l2=="v:") { $prov=$prov.$l2.substr($tabla,$i+2,1); $rythme=$rythme.$l2.substr($tabla,$i+2,1); $i=$i+2; $inote=0; if($unit != "") { $prov=$prov." t".$unit; $rythme=$rythme." t".$unit; } } elseif($majl1=="A" or $majl1=="B" or $majl1=="C" or $majl1=="D" or $majl1=="E" or $majl1=="F" or $majl1=="G") { $prov=$prov." "; $majl1=$majl1.$alt; $alt=""; $ls=substr($tabla,$i+1,1); if($ls=="#" or $ls=="b" or $ls=="0") { $l1=$l1.$ls; $i++; $lss=substr($tabla,$i+1,1); if($lss=="#" or $lss=="b" or $lss=="," or $lss=="_") { $l1=$l1.$lss; $i++; } } elseif($ls=="," or $ls=="_") { $note=anharmonote($armure,$majl1); $l1=$note.$ls; $i++; } else $l1=anharmonote($armure,$majl1); $prov=$prov.$l1; $inote++; $rythme=$rythme.$inote; if($mesure != "") { $prov=$prov.$idur; $ibarre++; if($ibarre==$itemps) { $prov=$prov." |"; $ibarre=0; } } } else { $rythme=$rythme.$l1; if($mesure=="" and $l1 != " ") $prov=$prov.$l1; } } echo "

Tablature anharmo $prov rythme $rythme

"; return $prov; }; function rythme($tabla) { $lon=strlen($tabla); $armure=""; $mesure=""; $unit=""; $prov=""; $itest=0; for($i=0;$i<$lon;$i++) { $l1=substr($tabla,$i,1); if($l1=="K") { $i++; $itest=1; } elseif($l1=="M") { $i++; $itest=2; } elseif($l1=="L") { $i++; $itest=3; } elseif($l1==":" and $itest != 0) $itest=0; elseif($itest==1) $armure=$armure.$l1; elseif($itest==2) $mesure=$mesure.$l1; elseif($itest==3) $unit=$unit.$l1; elseif($itest==0) $prov=$prov.$l1; } if($armure=="" and $mesure=="" and $unit=="") return ""; if($armure != "") echo "

Armure $armure

"; if($mesure != "") { $itemps=substr($mesure,0,1); $idur=substr($mesure,1,2); echo "

Mesure $mesure

"; } if($unit != "") echo "

Unité $unit

"; $prov=$prov." "; $tabla=normaliser($prov); echo "

Tablature harmonique $tabla

"; $lon=strlen($tabla); $inote=0; $ibarre=0; $prov=""; $rythme=""; for($i=0;$i<$lon;$i++) { $l1=substr($tabla,$i,1); $l2=substr($tabla,$i,2); $majl1=strtoupper($l1); if($majl1=="Z") $l1=" p"; elseif($l1=="^") { $l1=""; $alt="#"; } elseif($l1=="-") { $l1=""; $alt="b"; } if($l2=="v:") { $prov=$prov.$l2.substr($tabla,$i+2,1); $rythme=$rythme.$l2.substr($tabla,$i+2,1); $i=$i+2; $inote=0; if($unit != "") { $prov=$prov." t".$unit; $rythme=$rythme." t".$unit; } } elseif($majl1=="A" or $majl1=="B" or $majl1=="C" or $majl1=="D" or $majl1=="E" or $majl1=="F" or $majl1=="G") { $prov=$prov." "; $majl1=$majl1.$alt; $alt=""; $ls=substr($tabla,$i+1,1); if($ls=="#" or $ls=="b" or $ls=="0") { $l1=$l1.$ls; $i++; $lss=substr($tabla,$i+1,1); if($lss=="#" or $lss=="b" or $lss=="," or $lss=="_") { $l1=$l1.$lss; $i++; } } elseif($ls=="," or $ls=="_") { $note=anharmonote($armure,$majl1); $l1=$note.$ls; $i++; } else $l1=anharmonote($armure,$majl1); $prov=$prov.$l1; $inote++; $rythme=$rythme.$inote; if($mesure != "") { $prov=$prov.$idur; $ibarre++; if($ibarre==$itemps) { $prov=$prov." |"; $ibarre=0; } } } else { $rythme=$rythme.$l1; if($mesure=="" and $l1 != " ") $prov=$prov.$l1; } } echo "

rythme $rythme rythme $rythme

"; return $rythme; }; function codenote($note) { $dur=durnote($note); if(intval($note)>0) return $note; $note=decodeplus($note); $n=substr($note,0,1); if($note=="p" or $note=="p_") $n=0; elseif($n=="C") $n=1; elseif($n=="D") $n=3; elseif($n=="E") $n=5; elseif($n=="F") $n=6; elseif($n=="G") $n=8; elseif($n=="A") $n=10; elseif($n=="B") $n=12; elseif($n=="c") $n=13; elseif($n=="d") $n=15; elseif($n=="e") $n=17; elseif($n=="f") $n=18; elseif($n=="g") $n=20; elseif($n=="a") $n=22; elseif($n=="b") $n=24; $alt=substr($note,1,1); if($alt=="#" or $alt=="+") $n=intval($n)+1; elseif($alt=="b" or $alt=="-" and $n != 1) $n=intval($n)-1; if($alt=="," or $alt=="_") $n=$n."_"; $oct=substr($note,2,1); if($oct=="," or $oct=="_") $n=$n."_"; $alt=substr($note,2,1); if($alt=="#" or $alt=="+") $n=intval($n)+1; elseif($alt=="b" or $alt=="-" and $n != 1) $n=intval($n)-1; if($alt=="," or $alt=="_") $n=$n."_"; $oct=substr($note,3,1); if($oct=="," or $oct=="_") $n=$n."_"; $n=$n.$dur; return $n; }; function codevoix($voix) { $gam=substr($voix,0,3); if($gam=="maj" or $gam=="har" or $gam=="mel" or $gam=="ton" or $gam=="dem" or $gam=="blu" or $gam=="pen") { $voix="1".$voix; return $voix; } $voix=$voix." "; $voix=normaliser($voix); $lon=strlen($voix); $n=""; $prov=""; for($i=0;$i<$lon;$i++) { $l1=substr($voix,$i,1); if($l1==" "){ $prov=$prov.codenote($n)." "; $n=""; } else $n=$n.$l1; } return $prov; }; function decodetouche($n) { if($n==1) $n="C"; elseif($n==3) $n="D"; elseif($n==5) $n="E"; elseif($n==6) $n="F"; elseif($n==8) $n="G"; elseif($n==10) $n="A"; elseif($n==12) $n="B"; elseif($n==13) $n="c"; elseif($n==15) $n="d"; elseif($n==17) $n="e"; elseif($n==18) $n="f"; elseif($n==20) $n="g"; elseif($n==22) $n="a"; elseif($n==24) $n="b"; return $n; }; function decodenote($tona,$note) { if(substr($note,0,1)=="0") return "p".substr($note,1,strlen($note)-1); if(intval($note)==0) return $note; $n=intval($note); $val=$n; if($val>9) $fin=substr($note,2,strlen($note)-2); else $fin=substr($note,1,strlen($note)-1); $tona=intval($tona); $n=decodetouche($n); if($val==2 or $val==4 or $val==7 or $val==9 or $val==11 or $val==14 or $val==16 or $val==19 or $val==21 or $val==23) { if($tona==1 or $tona==3 or $tona==5 or $tona==8 or $tona==10 or $tona==12 or $tona==13 or $tona==15 or $tona==17 or $tona==19 or $tona==20 or $tona==22 or $tona==24) { $n=decodetouche($val-1); $n=$n."#"; } else { $n=decodetouche($val+1); $n=$n."b"; } } $n=$n.$fin; return $n; }; function decodevoix($tona,$voix) { $voix=$voix." "; $voix=normaliser($voix); $lon=strlen($voix); $n=""; $prov=""; for($i=0;$i<$lon;$i++) { $l1=substr($voix,$i,1); if($l1==" ") { $prov=$prov.decodenote($tona,$n)." "; $n=""; } else $n=$n.$l1; } return $prov; }; function decodeplus($texte) { $texte=normaliser($texte); $lon=strlen($texte); $prov=""; for($i=0;$i<$lon;$i++) { $l1=substr($texte,$i,1); $l2=substr($texte,$i,2); if($l2=="43") { $i++; $prov=$prov."+"; } elseif($l2=="61") { $i++; $prov=$prov."="; } elseif($l2=="35") { $i++; $prov=$prov."#"; } else $prov=$prov.$l1; } return $prov; }; function valinter($l) { $val=0; if($l=="s") $val=1; elseif($l=="S") $val=2; elseif($l=="t") $val=3; elseif($l=="T") $val=4; elseif($l=="Q") $val=5; elseif($l=="v") $val=6; elseif($l=="V") $val=7; elseif($l=="x") $val=8; elseif($l=="X") $val=9; elseif($l=="O") $val=12; return $val; }; function transposer($basevoix,$transpo) { $basevoix=$basevoix." "; $basevoix=decodeplus($basevoix); normaliser($basevoix); //echo "

tablature $basevoix

"; $lon=strlen($basevoix); $n=""; $voix=""; for($i=0;$i<$lon;$i++) { $l1=substr($basevoix,$i,1); if($l1==" ") { $note=intval($n); if($note != 0) { $n=substr($n,strlen($note),strlen($n)-strlen($note)); $note=$note+$transpo; $n=$note.$n; } $voix=$voix.$n." "; $n=""; } else $n=$n.$l1; } $tona=intval($voix); $decode=decodevoix($tona,$voix); //echo "

voix transposée de $transpo demi-tons $decode

"; return $voix; }; function notevoix($basevoix) { $basevoix=$basevoix." "; $basevoix=decodeplus($basevoix); normaliser($basevoix); //echo "

tablature $basevoix

"; $lon=strlen($basevoix); $n=""; $voix=""; for($i=0;$i<$lon;$i++) { $l1=substr($basevoix,$i,1); if($l1==" ") { $voix=$voix.$n." "; $n=""; } elseif($l1=="+") $n=intval($n)+1; elseif($l1=="-") $n=intval($n)-1; else $n=$n.$l1; } return $voix; }; function repmotif($motif) { $prov=""; $n=""; $lon=strlen($motif); $trans=0; $rep=1; for($i=0;$i<$lon;$i++) { $l1=substr($motif,$i,1); if($l1==" ") { $prov=$prov.$n." "; $n=""; } elseif($l1=="|") { $trans=intval(substr($motif,$i-1,1)); if(substr($motif,$i-2,1)=="-") $trans=intval(substr($motif,$i-2,2)); $rep=intval(substr($motif,$i+1,2)); if($rep==0) $rep=1; $i=$lon; } else $n=$n.$l1; } if($trans==0 and $rep==1) return $motif; if($trans != 0) $motifprov=$prov; else $motifprov=""; for($j=1;$j<=$rep;$j++) { $motif=$prov; $lon=strlen($motif); $prov=""; $pos=""; $n=""; for($i=0;$i<$lon;$i++) { $l1=substr($motif,$i,1); if($l1==" ") { $pos=intval($n); if($pos>0) { $fin=substr($n,strlen($pos),strlen($n)-strlen($pos)); $pos=$pos+$trans; $prov=$prov.$pos.$fin." "; } else $prov=$prov.$n." "; $n=""; } else $n=$n.$l1; } $motifprov=$motifprov.$prov; } $motif=$motifprov; return $motif; }; function reppolyvoix($voix) { $l=strlen($voix); $voix1=""; $voix2=""; $voix3=""; $prov=""; for($i=0;$i<$l;$i++) { $l1=substr($voix,$i,1); $l3=substr($voix,$i,3); if($l3=="v:2" and $prov != "") { $voix1=$prov; $voix1=repvoix($voix1); $prov="v"; } elseif($l3=="v:3" and $prov != "") { $voix2=$prov; $voix2=repvoix($voix2); $prov="v"; } elseif($l3=="v:4" and $prov != "") { $voix3=$prov; $voix3=repvoix($voix3); $prov="v"; } else $prov=$prov.$l1; } if(substr($prov,0,2)=="v:") $prov=repvoix($prov); $voix=$voix1.$voix2.$voix3.$prov; return $voix; }; function repvoix($voix) { $prov=""; $n=""; $lon=strlen($voix); $trans=0; $rep=1; for($i=0;$i<$lon;$i++) { $l1=substr($voix,$i,1); if($l1==" ") { $prov=$prov.$n." "; $n=""; } elseif($l1=="|") { $trans=intval(substr($voix,$i-1,1)); if(substr($voix,$i-2,1)=="-") $trans=intval(substr($voix,$i-2,2)); $rep=intval(substr($voix,$i+1,2)); if($rep==0) $rep=1; $i=$lon; } else $n=$n.$l1; } if($trans==0 and $rep==1) return $voix; if($trans==0) $rep=$rep-1; $voixprov=$prov; for($nvoix=1;$nvoix<=4;$nvoix++) { $prov=polyvoix($voix,$nvoix); for($j=1;$j<=$rep;$j++) { $voix=$prov; $lon=strlen($voix); $prov=""; $pos=""; $n=""; for($i=0;$i<$lon;$i++) { $l1=substr($voix,$i,1); if($l1=="|") { $n=""; $i=$i+2; } elseif($l1==" ") { $pos=intval($n); if($pos==0) $n=""; if($pos>0) { $fin=substr($n,strlen($pos),strlen($n)-strlen($pos)); $pos=$pos+$trans; $prov=$prov.$pos.$fin." "; } else $prov=$prov.$n." "; $n=""; } else $n=$n.$l1; } $voixprov=$voixprov.$prov; } $voix=$voixprov; } return $voix; }; function motifvoix($motif,$basevoix) { $basevoix=$basevoix." "; //echo "

tablature $basevoix

"; $lon=strlen($basevoix); $n=""; $voix=""; $j=0; $note=""; for($i=0;$i<$lon;$i++) { $l1=substr($basevoix,$i,1); if($l1==" ") { if($l1=="|") $i++; else { $j++; $n[$j]=$note; } $note=""; } else $note=$note.$l1; } $total=$j; $motif=$motif." "; normaliser($motif); $lon=strlen($motif); $mot=""; $voix=""; for($i=0;$i<$lon;$i++) { $l1=substr($motif,$i,1); if($l1==" ") { $val=intval($mot); if($val==0) $voix=$voix.$mot." "; elseif($val<=$total) { if($val>9) $l=2; else $l=1; $fin=substr($mot,$l,strlen($mot)-$l); if($fin != "") { $valn=intval($n[$val]); $voix=$voix.$valn.$fin." "; } else $voix=$voix.$n[$val]." "; } $mot=""; } else $mot=$mot.$l1; } return $voix; }; function inter($val) { $l=""; if($val==1) $l="s"; elseif($val==2) $l="S"; elseif($val==3) $l="t"; elseif($val==4) $l="T"; elseif($val==5) $l="Q"; elseif($val==6) $l="v"; elseif($val==7) $l="V"; elseif($val==8) $l="x"; elseif($val==9) $l="X"; elseif($val==12) $l="O"; return $l; }; function notearpege($arpege) { $note[1]=intval($arpege); if($note[1]>9) $arpege=substr($arpege,2,strlen($arpege)-2); else $arpege=substr($arpege,1,strlen($arpege)-1); $lon=strlen($arpege); $voix=$note[1]; for($i=0;$i<$lon;$i++) { $l=substr($arpege,$i,1); $val=valinter($l); $note[$i+2]=$note[$i+1]+$val; $voix=$voix." ".$note[$i+2]; }; return $voix; } function notemouv($arpege) { $note[1]=intval($arpege); if($note[1]>9) $arpege=substr($arpege,2,strlen($arpege)-2); else $arpege=substr($arpege,1,strlen($arpege)-1); //$arpege=$arpege."p"; $lon=strlen($arpege); $voix=""; $itest=0; $val=0; $j=1; for($i=0;$i<$lon;$i++) { $l1=substr($arpege,$i,1); if($l1=="+") { $val=$val-1; $note[$j]=$note[$j]+1; } elseif($l1=="-") { $val=$val+1; $note[$j]=$note[$j]-1; } else { $v=valinter($l1); $v=$v+$val; $voix=$voix.$note[$j]." "; $j++; $note[$j]=$note[$j-1]+$v; $val=0; } } return $voix; }; function arpege($voix) { $voix=$voix." "; $voix=normaliser($voix); $lon=strlen($voix); $j=0; $n=""; $ton=intval($voix); if($ton==0) $ton=13; for($i=0;$i<$lon;$i++) { $l1=substr($voix,$i,1); if($l1==" ") { $j++; $note[$j]=$n; $n=""; } else $n=$n.$l1; } $jlon=$j; $valinter[0]=$note[1]; $inter[0]=$note[1]; for($j=0;$j<$jlon;$j++) { $valinter[$j+1]=$note[$j+1]-$note[$j]; $inter[$j+1]=inter($valinter[$j+1]); } $arpege=$ton; for($j=2;$j<=$jlon;$j++) $arpege=$arpege.$inter[$j]; return $arpege; }; function accordarpege($accord) { $tona=substr($accord,0,1); $alt=substr($accord,1,1); if($tona=="C") $tona=13; elseif($tona=="D") $tona=15; elseif($tona=="E") $tona=17; elseif($tona=="F") $tona=18; elseif($tona=="G") $tona=20; elseif($tona=="A") $tona=22; elseif($tona=="B") $tona=24; else return $accord; $tona=$tona-12; if($alt=="#") $tona=$tona+1; elseif($alt=="b") $tona=$tona-1; echo "

Accord $accord

"; if($alt=="#" or $alt=="b") $accord=substr($accord,2,strlen($accord)-3); else $accord=substr($accord,1,strlen($accord)-2); if($accord=="M") $arpege="TtQ"; elseif($accord=="m") $arpege="tTQ"; elseif($accord=="dim") $arpege="tt"; elseif($accord=="aug") $arpege="TT"; elseif($accord=="7") $arpege="Ttt"; elseif($accord=="m7") $arpege="tTt"; elseif($accord=="7M") $arpege="TtT"; elseif($accord=="sus4") $arpege="QSQ"; elseif($accord=="sus2") $arpege="SQQ"; elseif($accord=="9") $arpege="TttQ"; elseif($accord=="m9") $arpege="tTtQ"; elseif($accord=="6") $arpege="TtS"; elseif($accord=="m6") $arpege="tTS"; elseif($accord=="11") $arpege="TttV"; elseif($accord=="13") $arpege="TttSX"; elseif($accord=="dim7") $arpege="ttt"; elseif($accord=="m75b") $arpege="ttT"; $arpege=$tona.$arpege; return $arpege; }; function gamme($voix) { $chr="1_ 2_ 3_ 4_ 5_ 6_ 7_ 8_ 9_ 10_ 11_ 12_ 13_ 14_ 15_ 16_ 17_ 18_ 19_ 20_ 21_ 22_ 23_ 24_ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25"; if(intval($voix)==0) { $tona=1; $gamme=substr($voix,0,3); $mode=substr($voix,3,2); } else { $tona=intval($voix); $gamme=substr($voix,strlen($tona),3); $mode=substr($voix,strlen($tona)+3,2); if($mode=="") $mode=1; } for($i=0;$i<15;$i++) { $l1=substr($voix,$i,1); if($l1==" ") { $voix=substr($voix,$i+1,strlen($voix)-$i-1); $i=15; } } $motif=""; if($tona>1) { $lon=strlen($chr); $prov=""; $j=1; $itest=0; for($i=0;$i<$lon;$i++) { $l1=substr($chr,$i,1); if($itest==1) $prov=$prov.$l1; elseif($l1==" ") { $j++; if($j==$tona) $itest=1; } } $chr=$prov; } if($gamme=="maj") $motif="1 3 5 6 8 10 12 13 15 17 18 20 22 24 25 27 29 30 32 34 36 37 39 41 42 44 46 48"; elseif($gamme=="dem") $motif="1 3 4 6 7 9 10 12 13 15 16 18 19 21 22 24 25 27 28 30 31 33 34 36 37 39 40 42 43 45 46 48"; elseif($gamme=="ton") $motif="1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47"; elseif($gamme=="har") $motif="1 3 4 6 8 9 12 13 15 16 18 20 21 24 25 27 28 30 32 33 36 37 39 40 42 44 45 48"; elseif($gamme=="mel") $motif="1 3 4 6 8 10 12 13 15 16 18 20 22 24 25 27 28 30 32 34 36 37 39 40 42 44 46 48"; elseif($gamme=="pen") $motif="1 3 5 8 10 13 15 17 20 22 25 27 29 32 34 37 39 41 44 46"; elseif($gamme=="blu") $motif="1 3 4 5 8 10 13 15 16 17 20 22 25 27 28 29 32 34 37 39 40 41 44 46"; elseif($gamme=="chr") $motif="1_ 2_ 3_ 4_ 5_ 6_ 7_ 8_ 9_ 10_ 11_ 12_ 13_ 14_ 15_ 16_ 17_ 18_ 19_ 20_ 21_ 22_ 23_ 24_ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25"; else return $voix; if($mode>1) { $lon=strlen($motif); $prov=""; $j=1; $itest=0; for($i=0;$i<$lon;$i++) { $l1=substr($motif,$i,1); if($itest==1) $prov=$prov.$l1; elseif($l1==" ") { $j++; if($j==$mode) $itest=1; } } $motif=$prov; } $lon=strlen($motif); $prov=""; $j=0; $mot=""; for($i=0;$i<$lon;$i++) { $l1=substr($motif,$i,1); if($l1==" ") { $j++; $note[$j]=$mot; $mot=""; } else $mot=$mot.$l1; } $lonvoix=strlen($voix); $provmotif=""; $mot=""; for($k=0;$k<$lonvoix;$k++) { $l1=substr($voix,$k,1); if($l1==" ") { $ren=intval($mot); if($ren>9) $deg=substr($mot,2,strlen($mot)-2); elseif($ren>0) $deg=substr($mot,1,strlen($mot)-1); else $deg=$mot; $ajou=intval(substr($deg,1,strlen($deg)-1)); if($ajou==0) $ajou=5; $deg=substr($deg,0,1); if($deg=="C") $deg=1; elseif($deg=="D") $deg=2; elseif($deg=="E") $deg=3; elseif($deg=="F") $deg=4; elseif($deg=="G") $deg=5; elseif($deg=="A") $deg=6; elseif($deg=="B") $deg=7; else $deg=""; if($deg=="") $ren=$mot; $j=0; $mot=""; $basse=""; $prov=""; if($deg=="") { if($ren=="0") for($n=1;$n<=15;$n++) $prov=$prov.$note[$n]." "; else $prov=$prov.$note[$ren]." "; } elseif($deg != 0) { $deg=$deg+6; for($n=$deg;$n<$ajou+$deg;$n+=2) { if($j==$ren) $basse=$note[$n-7]." "; else $prov=$prov.$note[$n]." "; $j++; } $prov=$basse.$prov; } $provmotif=$provmotif.$prov; } else $mot=$mot.$l1; } if($provmotif != "") $motif=$provmotif; echo "

motif de gamme $motif

"; if($motif != "") $voix=motifvoix($motif,$chr); else $voix=$chr; $tabla=decodevoix(intval($tona),$voix); echo "

Gamme $tabla

"; return $voix; }; function ajouteraccord($motif,$chemin,$voix,$mp3) { if($voix=="" or $voix==" ") return ; copy("blanc.mp3","provfic$mp3"); for($i=1;$i<=8;$i++) copy("blanc.mp3","prov$i$mp3"); $lonfic=filesize($chemin."13.mp3"); $tempo=1; $dur=1; $point=1; $accord="l"; $rep=1; $motif=repmotif($motif); //echo "

test reppolymotif $motif

"; if($mp3=="md.mp3") $motifmd=$motif; if($mp3=="mg.mp3") $motifmg=$motif; if($motifmd != "") { //echo "

Motif de notes main droite $motifmd

"; $voix=motifvoix($motifmd,$voix); } if($motifmg != "") { //echo "

Motif de notes main gauche $motifmg

"; $voix=motifvoix($motifmg,$voix); } $voix=$voix." "; $voix=normaliser($voix); $lon=strlen($voix); $j=0; $n=""; $alt=""; $soul=""; for($i=0;$i<$lon;$i++) { $l1=substr($voix,$i,1); if($l1==" " and $n != "") { $indi=substr($n,0,1); if($n==" ") $n=""; elseif($indi=="|") $n=""; elseif($indi=="i") { $ins=substr($n,1,strlen($n)-1); //echo "

Instrument $ins

"; if($ins != 0 and $ins != 1 and $ins !=20 and $ins != 25 and $ins !=3 and $ins != 41 and $ins != 50 and $ins != 68 and $ins != 72 and $ins != 91) { ;//echo "

Les instruments disponibles sont 0 1 20 25 3 41 50 68 72 et 91

"; $ins="1"; } $chemin="$ins/"; $n=""; } elseif($indi=="p") { $accord="p"; $n=""; } elseif($indi=="l") { $accord="l"; $n=""; } elseif($indi=="t") { $ls=substr($n,1,1); if($ls==">") { $plus=2000; //echo "

$ls

"; } elseif($ls=="<") { $plus=-2000; //echo "

$ls

"; } elseif($ls==":") { $dur=0; //echo "

$ls

"; } else { $tempo=intval($ls); if($tempo==0) $tempo=1; //echo "

Tempo $tempo

"; } } else { $j++; $l=strlen($n); if(intval($n)>9) { $durprov=substr($n,2,$l-2); $n=substr($n,0,2); } else { $durprov=substr($n,1,$l-1); $n=substr($n,0,1); } if(substr($durprov,0,1)=="_") { $soul="_"; $durprov=substr($durprov,1,strlen($durprov)-1); } if(substr($durprov,0,1)=="+" or substr($durprov,0,1)=="-") { $alt=substr($durprov,0,1); $durprov=substr($durprov,1,strlen($durprov)-1); } if(substr($durprov,0,1)=="+" or substr($durprov,0,1)=="-") { $alt=$alt.substr($durprov,0,1); $durprov=substr($durprov,1,strlen($durprov)-1); } if(substr($durprov,0,1)==":") $rep=substr($durprov,1,1); elseif($durprov != "") { $rep=1; $dur=substr($durprov,1,1); if(intval($dur)==0) $dur=1; if(substr($durprov,2,1)==".") $point=3; else $point=1; //echo "

durée $durprov

"; } //if($mp3=="mg.mp3" and intval($n)<25 and substr($n,strlen($n)-1,1) != "_") //$n=$n."_"; if(intval($n)>25) $n=$n-12; if($alt=="+") $n=$n+1; elseif($alt=="-") $n=$n-1; elseif($alt=="++") $n=$n+2; elseif($alt=="--") $n=$n-2; $alt=""; $n=$n.$soul; $soul=""; if($chemin=="0/" and $n==0) ; elseif($chemin=="0/" and ($n<3 or $n>9)) $n=6; $note[$j]=$n; $fichier[$j]=$chemin.$note[$j].".mp3"; //echo "

fichier $fichier[$j]

"; $lonfile[$j]=$lonfic/$tempo/$dur*$point-$plus; $lonfile[$j]=intval($lonfile[$j]); if($lonfile[$j]>$lonfic) $lonfile[$j]=$lonfic; $rep=intval($rep); if($rep>1) { for($k=1;$k<$rep;$k++) { $j++; $fichier[$j]=$fichier[$j-1]; $lonfile[$j]=$lonfile[$j-1]; }} $mode[$j]=$accord; } $n=""; } else $n=$n.$l1; } $jlon=$j; //echo "

jlon $jlon voix $voix

"; $decode=decodevoix("",$voix); echo "

Voix courante $decode

"; //ajouter les notes des accords if($jlon>8) $jfin=8; else $jfin=$jlon; for($j=1;$j<=$jfin;$j++) { $fic=fopen($fichier[$j],"rb"); $content=fread($fic,$lonfile[$j]); fclose($fic); $ficfic="prov$j$mp3"; $ficfic=fopen("prov$j$mp3","w"); if ( !($ficfic)) { echo "

Impossible d’ouvrir le fichier $fichier en écriture

"; fclose($ficfic); } fwrite($ficfic,$content); fclose($ficfic); //copy($fichier[$j],"prov$j$mp3"); } //fin du traitement des accords if($mp3=="md.mp3") ;//echo '

Lecture des voix main droite ensemble

'; if($mp3=="mg.mp3") ;//echo '

Lecture des voix main gauche ensemble

'; $ficfic=fopen("provfic$mp3","w"); if ( !($ficfic)) { echo "

Impossible d’ouvrir le fichier $fichier en écriture

"; fclose($ficfic); } for($j=1;$j<=$jlon;$j++) { if($mode[$j]=="p") { //echo "

note piquée

"; $lonfile[$j]=$lonfile[$j]/3; $fic=fopen($chemin."0.mp3","rb"); $content=fread($fic,$lonfile[$j]); fclose($fic); fwrite($ficfic,$content); $lonfile[$j]=$lonfile[$j]*3; } $fic=fopen($fichier[$j],"rb"); $content=fread($fic,$lonfile[$j]); fclose($fic); fwrite($ficfic,$content); } fclose($ficfic); $lonfileprov=filesize("provfic$mp3"); $fic=fopen("provfic$mp3","rb"); $cont=fread($fic,$lonfileprov); fclose($fic); if($mp3=="md.mp3") copy("provficmd.mp3","provmd.mp3"); elseif($mp3=="mg.mp3") copy("provficmg.mp3","provmg.mp3"); return $cont; //fin de la fonction ajouteraccord }; function ajouteraccordmesuremd($motif,$chemin,$basevoixmd,$transpo) { if($basevoixmd != "") { if(substr($basevoixmd,strlen($basevoixmd)-2,2) != "| ") $basevoixmd=$basevoixmd." | "; $basevoixmd=$basevoixmd." "; $basevoixmd=notevoix($basevoixmd); $basevoixmd=normaliser($basevoixmd); $lon=strlen($basevoixmd); $j=0; $basevoix=""; for($i=0;$i<$lon;$i++) { $l1=substr($basevoixmd,$i,1); if($l1=='|') { $j++; $cont[$j]=ajouteraccord($motif,$chemin,$basevoix,"md.mp3"); if($j==1) { $voix[$j]=$basevoixmd; mesuremd("",$basevoix,$transpo); copy("provficmd.mp3","provmd.mp3"); } else { mesuremd("",$basevoix,$transpo); $lonfile=filesize("provmd.mp3"); $fic=fopen("provmd.mp3","rb"); $cont1=fread($fic,$lonfile); fclose($fic); ajouter("provmd.mp3",$cont1,$cont[$j]); $suite=substr($basevoixmd,$i,strlen($basevoixmd)-$i); $voix[$j]=$basevoix.$suite; } $basevoix=""; echo "

j=$j voix=$voix[$j]

"; } else $basevoix=$basevoix.$l1; } $voixmd=$voix[1]; //$cont=mesuremd($basearpegemd,$voixmd,$transpo); $jlon=$j; copy("provmd.mp3","provficmd.mp3"); //echo "

Vous entendez la tablature $voix[1]

"; echo '

Lecture des voix main droite ensemble

'; if($jlon==2) ;//echo "

Fin de la tablature main droite

"; else { ;//echo "

Faites ALT+flèche gauche puis F5 pour ré-écouter la tablature précédente

"; for($j=2;$j<=$jlon;$j++) { $voixmd=$voix[$j]; $accord='

Ecoutez '.$voixmd.'

'; echo $accord; } } //fin de basevoixmd } return; }; function ajouteraccordmesuremg($motif,$chemin,$basevoixmg,$transpo) { if($basevoixmg != "") { if(substr($basevoixmg,strlen($basevoixmg)-2,2) != "| ") $basevoixmg=$basevoixmg." | "; $basevoixmg=notevoix($basevoixmg); //echo "

tablature $basevoixmg

"; $basevoixmg=$basevoixmg." "; $basevoixmg=normaliser($basevoixmg); $lon=strlen($basevoixmg); $j=0; $basevoix=""; for($i=0;$i<$lon;$i++) { $l1=substr($basevoixmg,$i,1); if($l1=='|') { $j++; $cont[$j]=ajouteraccord($motif,$chemin,$basevoix,"mg.mp3"); if($j==1) { $voix[$j]=$basevoix; mesuremg("",$basevoix,$transpo); copy("provficmg.mp3","provmg.mp3"); } else { mesuremg("",$basevoix,$transpo); $lonfile=filesize("provmg.mp3"); $fic=fopen("provmg.mp3","rb"); $cont1=fread($fic,$lonfile); fclose($fic); ajouter("provmg.mp3",$cont1,$cont[$j]); $suite=substr($basevoixmg,$i,strlen($basevoixmg)-$i); $voix[$j]=$basevoix.$suite; } $basevoix=""; echo "

j=$j voix=$voix[$j]

"; } else $basevoix=$basevoix.$l1; } $voixmg=$voix[1]; //$cont=mesuremg($basearpegemg,$voixmg,$transpo); $jlon=$j; copy("provmg.mp3","provficmg.mp3"); //echo "

Vous entendez la tablature $voix[2]

"; //echo '

Lecture des voix main gauche ensemble

'; if($jlon==2) ;//echo "

Fin de la tablature main gauche

"; else { ;//echo "

Faites ALT+flèche gauche puis F5 pour ré-écouter la tablature précédente

"; for($j=2;$j<=$jlon;$j++) { $voixmg=$voix[$j]; $accord='

Ecoutez '.$voixmg.'

'; echo $accord;} } //fin de basevoixmg } return; }; function mesuremd($basearpegemd,$basevoixmd,$transpo) { if($basevoixmd != "") { $voix=$basevoixmd." "; $voix=decodeplus($voix); echo "

voix main droite $voix

"; $voix=notevoix($voix); $arpege=arpege($voix); } else ajouteraccord($motif,$chemin,"","md.mp3"); if($basearpegemd != "") { $arpege=$basearpegemd; $arpege=decodeplus($arpege); //echo "

Arpège main droite $arpege

"; } if($arpege != "") { $basse=intval($arpege); if($basse==0) { $basse="13"; $arpege="13".$arpege; } $arpege=substr($arpege,strlen($basse),strlen($arpege)-strlen($basse)); $basse=$basse+$transpo; $arpege=$basse.$arpege; $voix=notemouv($arpege); if($transpo != "") echo "

Transposition de $transpo demi-tons

"; $arpege=arpege($voix); //echo "

arpège main droite $arpege

"; //echo "

voix $voix

"; return $voix; } else ajouteraccord($motif,$chemin,"","md.mp3"); }; function mesuremg($basearpegemg,$basevoixmg,$transpo) { if($basevoixmg != "") { $voix=$basevoixmg." "; $voix=decodeplus($voix); echo "

voix main gauche $voix

"; $voix=notevoix($voix); $arpege=arpege($voix); } else ajouteraccord($motif,$chemin,"","mg.mp3"); if($basearpegemg != "") { $arpege=$basearpegemg; $arpege=decodeplus($arpege); //echo "

Arpège main gauche $arpege

"; } else ajouteraccord($motif,$chemin,"","mg.mp3"); if($arpege != "") { $basse=intval($arpege); if($basse==0) { $basse="13"; $arpege="13".$arpege; } $arpege=substr($arpege,strlen($basse),strlen($arpege)-strlen($basse)); $basse=$basse+$transpo; $arpege=$basse.$arpege; $voix=notemouv($arpege); if($transpo != "") echo "

Transposition de $transpo demi-tons

"; $arpege=arpege($voix); //echo "

arpège main gauche $arpege

"; //echo "

voix $voix

"; //echo '

Lecture des voix main gauche ensemble

'; } return $voix; };function polyvoix($voix,$nvoix) { $voix=$voix." "; $voix=normaliser($voix); $voix=decodeplus($voix); $lon=strlen($voix); $itest=0; $prov=""; for($i=0;$i<$lon;$i++) { $l1=substr($voix,$i,1); $l2=substr($voix,$i,2); if($l2=="v:") { if($itest==1) return $prov; $i=$i+2; $ls=substr($voix,$i,1); if($ls==$nvoix) $itest=1; else $itest=0; $prov=""; $i++; } elseif($itest==1) $prov=$prov.$l1; } return $prov; }; function ajouterpolymd($basearpegemd,$basemotifaccordmd,$chemin,$basevoixmd,$mp3,$transpo) { $p=substr($basevoixmd,0,1); if($p != "p") { $ldeb=intval($basevoixmd); if($ldeb>9) $deb=substr($basevoixmd,2,3); elseif($ldeb>0) $deb=substr($basevoixmd,1,3); else $deb=substr($basevoixmd,0,3); if($deb != "maj" and $deb != "mel" and $deb != "har" and $deb != "dem" and $deb != "ton" and $deb != "pen" and $deb != "blu" and $deb != "chr") $basevoixmd="p ".$basevoixmd; } $lon=strlen($basevoixmd); $itest=1; for($i=0;$i<$lon;$i++) { $l1=substr($basevoixmd,$i,1); if($l1=="S" or $l1=="T" or $l1=="Q" or $l1=="V" or $l1=="X" or $l1=="O" or $l1=="s" or $l1=="t" or $l1=="x") { if(substr($basevoixmd,$i,3) != "ton") { $itest=0; $i=$lon; } } } if($itest==0) { $basearpegemd=$basevoixmd; $basevoixmd=""; } if($basevoixmd != "") { $lon=strlen($basevoixmd); $j=0; $voix=""; for($i=0;$i<$lon;$i++) { $l1=substr($basevoixmd,$i,1); if($l1=="|") { $j++; $voixmd[$j]=$voix; $voix=""; $i++; } else $voix=$voix.$l1; } $jlon=$j; $lon=strlen($basemotifaccordmd); $j=0; $motif=""; for($i=0;$i<$lon;$i++) { $l1=substr($basemotifaccordmd,$i,1); if($l1=="|") { $j++; $motifmd[$j]=$motif; $motif=""; $i++; } else $motif=$motif.$l1; } if($jlon>0) { echo "

Faites ALT+flèche gauche puis F5 pour choisir ou écouter une autre mesure

"; for($j=1;$j<=$jlon;$j++) { $adr[$j]="basevoixmd=$voixmd[$j]&basemotifaccordmd=$motifmd[$j]&basetranspo=$transpo&"; echo "

Mesure $j :

"; echo '

Ecoutez la mesure '.decodeplus($voixmd[$j]).'

'; } } $basevoix=decodeplus($basevoixmd); //echo "

Vous entendez ".$basevoix."

"; $tabla=decodevoix(13,$basevoix); //echo "

Voix main droite : $tabla

"; //fin de la lecture des mesures main droite } if($basevoixmd != "") { $basevoix=codevoix($basevoixmd); $basevoix=notevoix($basevoix); $basevoix=transposer($basevoix,$transpo); $basemotifaccord=$basemotifaccordmd; $mp3="md.mp3"; $basevoix=gamme($basevoix); //echo "

voix $basevoix

"; $cont=ajouteraccord($basemotifaccord,$chemin,$basevoix,$mp3); } //traitement des arpeges if($basearpegemd != "") { $lon=strlen($basearpegemd); $j=0; $arpege=""; for($i=0;$i<$lon;$i++) { $l1=substr($basearpegemd,$i,1); if($l1=="|") { $j++; $arpegemd[$j]=$arpege; $arpege=""; $i++; } else $arpege=$arpege.$l1; } $jlon=$j; $lon=strlen($basemotifpaccordmd); $j=0; $motif=""; for($i=0;$i<$lon;$i++) { $l1=substr($basemotifaccordmd,$i,1); if($l1=="|") { $j++; $motifmd[$j]=$motif; $motif=""; $i++; } else $motif=$motif.$l1; } if($jlon>0) { echo "

Faites ALT+flèche gauche puis F5 pour choisir ou écouter une autre mesure

"; for($j=1;$j<=$jlon;$j++) { $adr[$j]="basearpegemd=$arpegemd[$j]&basemotifaccordmd=$motifmd[$j]&basetranspo=$transpo&"; echo "

Mesure $j :

"; echo '

Ecoutez la mesure '.decodeplus($arpegemd[$j]).'

'; } } $basearpege=decodeplus($basearpegemd); //echo "

Vous entendez $basearpege

"; //fin de la lecture des mesures main droite } if($basearpegemd != "") { $basearpege=accordarpege($basearpege); if(intval($basearpege)==0) $basearpege="13".$basearpege; $basevoix=mesuremd($basearpege,"",$transpo); $basevoix=notevoix($basevoix); $basemotifaccord=$basemotifaccordmd; $mp3="md.mp3"; $basevoix=gamme($basevoix); //echo "

voix $basevoix

"; $tabla=decodevoix(13,$basevoix); echo "

Voix main droite : $tabla

"; $cont=ajouteraccord($basemotifaccord,$chemin,$basevoix,$mp3); } return $cont; }; function ajouterpolymg($basearpegemg,$basemotifaccordmg,$chemin,$basevoixmg,$mp3,$transpo) { $p=substr($basevoixmd,0,1); if($p != "p") { $ldeb=intval($basevoixmg); if($ldeb>9) $deb=substr($basevoixmg,2,3); elseif($ldeb>0) $deb=substr($basevoixmg,1,3); else $deb=substr($basevoixmg,0,3); if($deb != "maj" and $deb != "mel" and $deb != "har" and $deb != "dem" and $deb != "ton" and $deb != "pen" and $deb != "blu" and $deb != "chr") $basevoixmg="p ".$basevoixmg; } $lon=strlen($basevoixmg); $itest=1; for($i=0;$i<$lon;$i++) { $l1=substr($basevoixmg,$i,1); if($l1=="S" or $l1=="T" or $l1=="Q" or $l1=="V" or $l1=="X" or $l1=="O" or $l1=="s" or $l1=="t" or $l1=="x") { if(substr($basevoixmg,$i,3) != "ton") { $itest=0; $i=$lon; } } } if($itest==0) { $basearpegemg=$basevoixmg; $basevoixmg=""; } if($basevoixmg != "") { $lon=strlen($basevoixmg); $j=0; $voix=""; for($i=0;$i<$lon;$i++) { $l1=substr($basevoixmg,$i,1); if($l1=="|") { $j++; $voixmg[$j]=$voix; $voix=""; $i++; } else $voix=$voix.$l1; } $jlon=$j; $lon=strlen($basemotifaccordmg); $j=0; $motif=""; for($i=0;$i<$lon;$i++) { $l1=substr($basemotifaccordmg,$i,1); if($l1=="|") { $j++; $motifmg[$j]=$motif; $motif=""; $i++; } else $motif=$motif.$l1; } if($jlon>0) { echo "

Faites ALT+flèche gauche puis F5 pour choisir ou écouter une autre mesure

"; for($j=1;$j<=$jlon;$j++) { $adr[$j]="basevoixmg=$voixmg[$j]&basemotifaccordmg=$motifmg[$j]&basetranspo=$transpo&"; echo "

Mesure $j :

"; echo '

Ecoutez la mesure '.decodeplus($voixmg[$j]).'

'; } } $basevoix=decodeplus($basevoixmg); //echo "

Vous entendez ".$basevoix."

"; $tabla=decodevoix(13,$basevoix); //echo "

Voix main gauche : $tabla

"; //fin de la lecture des mesures main gauche } if($basevoixmg != "") { $basevoix=codevoix($basevoixmg); $basevoix=notevoix($basevoix); $basevoix=transposer($basevoix,$transpo); $basemotifaccord=$basemotifaccordmg; $mp3="mg.mp3"; $basevoix=gamme($basevoix); //echo "

voix $basevoix

"; $cont=ajouteraccord($basemotifaccord,$chemin,$basevoix,$mp3); } if($basearpegemg != "") { $lon=strlen($basearpegemg); $j=0; $arpege=""; for($i=0;$i<$lon;$i++) { $l1=substr($basearpegemg,$i,1); if($l1=="|") { $j++; $arpegemg[$j]=$arpege; $arpege=""; $i++; } else $arpege=$arpege.$l1; } $jlon=$j; $lon=strlen($basemotifaccordmg); $j=0; $motif=""; for($i=0;$i<$lon;$i++) { $l1=substr($basemotifaccordmg,$i,1); if($l1=="|") { $j++; $motifmg[$j]=$motif; $motif=""; $i++; } else $motif=$motif.$l1; } if($jlon>0) { echo "

Faites ALT+flèche gauche puis F5 pour choisir ou écouter une autre mesure

"; for($j=1;$j<=$jlon;$j++) { $adr[$j]="basearpegemg=$arpegemg[$j]&basemotifaccordmg=$motifmg[$j]&basetranspo=$transpo&"; echo "

Mesure $j :

"; echo '

Ecoutez la mesure '.decodeplus($arpegemg[$j]).'

'; } } $basearpege=decodeplus($basearpegemg); //echo "

Vous entendez $basearpege

"; //fin de la lecture des mesures main gauche } if($basearpegemg != "") { $basearpege=accordarpege($basearpege); if(intval($basearpege)==0) $basearpege="13".$basearpege; $basevoix=mesuremg($basearpege,"",$transpo); $basevoix=notevoix($basevoix); $basemotifaccord=$basemotifaccordmg; $mp3="mg.mp3"; $basevoix=gamme($basevoix); //echo "

voix $basevoix

"; $tabla=decodevoix(13,$basevoix); //echo "

Voix main gauche : $tabla

"; $cont=ajouteraccord($basemotifaccord,$chemin,$basevoix,$mp3); }return $cont; };function polyinter($voix) { $voix=$voix." "; $voix=normaliser($voix); $voix=decodeplus($voix); $lon=strlen($voix); $itest=0; $arp=""; $prov=""; for($i=0;$i<$lon;$i++) { $l1=substr($voix,$i,1); if($l1=="[" or $l1=="{") $itest=1; elseif($l1=="|") $l1=""; elseif($l1=="]" or $l1=="}") { $l=strlen($arp); $fin=0; for($j=0;$j<$l;$j++) { $int=substr($arp,$j,1); if($int != "0" and intval($int)==0 and $int != " " and $int != "+" and $int != "-") { $fin=1; $j=$l; } } if($fin==1) ; else { $notearp=$arp; $arp=""; } if($arp=="") { if($l1=="]") $notearp="[".$notearp."]"; $prov=$prov.$notearp; } else { $arp=$arp." "; $arp=accordarpege($arp); $notearp=notearpege($arp); if($l1=="]") $notearp="[".$notearp."]"; //echo "

arpège $notearp

"; $prov=$prov.$notearp; } $itest=2; $arp=""; } elseif($itest==1) $arp=$arp.$l1; else $prov=$prov.$l1; } $voix=$prov; $lon=strlen($voix); $note=""; if($itest==0) return $voix; $iv=0; $v[1]=""; $v[2]=""; $v[3]=""; $v[4]=""; for($i=0;$i<$lon;$i++) { $l1=substr($voix,$i,1); $l3=substr($voix,$i,3); if($l3=="v:1") { $i=$i+3; $v[1]=""; } elseif($l3=="v:2") { $i=$i+3; $v[2]=""; } elseif($l1=="[") $iv=1; elseif($l1=="]" and $note != "") { $v[$iv]=$v[$iv].$note." "; $note=""; $i++; $iv++; $v[$iv]=$v[$iv]."0 "; $iv++; $v[$iv]=$v[$iv]."0 "; $iv=0; } elseif($l1==" " and $iv==0 and $note != "") { $v[1]=$v[1].$note." "; $dur=durnote($note); $v[2]=$v[2]."0$dur "; $v[3]=$v[3]."0$dur "; $v[4]=$v[4]."0$dur "; $note=""; } elseif($l1==" " and $iv>0 and $note != "") { $v[$iv]=$v[$iv].$note." "; $iv++; $note=""; } else $note=$note.$l1; } $voix="v:1 ".$v[1]."v:2 ".$v[2]."v:3 ".$v[3]."v:4 ".$v[4]; return $voix; }; function codepar($arp) { $l=strlen($arp); $itest=0; $prov=""; $par=""; for($i=0;$i<$l;$i++) { $l1=substr($arp,$i,1); if($l1=="(") $itest=1; elseif($itest==0) $prov=$prov.$l1; else $par=$par.$l1; if($l1==")") { $par=codevoix($par); $par="[".arpege($par)."]"; $prov=$prov.$par; $par=""; $itest=0; } } $arp=$prov; return $arp; }; function notesuitearpege($arpege) { $arp=normaliser($arpege)." "; $arp=decodeplus($arp); $arp=codepar($arp); $l=strlen($arp); $arpege=""; $voix=""; $itest=0; for($i=0;$i<$l;$i++) { $esp=substr($arp,$i,1); if($esp==" " and $itest != 2) { if(substr($arpege,0,3)=="chr") $arpege="1".$arpege; $arpege=$arpege." "; if($itest==1 or $arpege=="0 " or $arpege=="v:1 " or $arpege=="v:2 " or $arpege=="v:3 " or $arpege=="v:4 ") { if(substr($arpege,strlen($arpege)-2,1)==")") { $arpege=substr($arpege,1,strlen($arpege)-3)." "; $arpege="[".arpege($arpege)."] "; } $voix=$voix.$arpege; $arpege=""; $itest=0; } if($arpege != "v:1 ") { if(intval($arpege)==0) $arpege="13".$arpege; $prov=notemouv($arpege); $voix=$voix.$prov; } $arpege=""; } else { if($esp==")" or $esp=="[" or $esp=="{" or $esp=="/" or $esp=="_" or $esp=="|" or $esp=="p" or $esp=="C" or $esp=="c" or $esp=="D" or $esp=="d" or $esp=="E" or $esp=="e" or $esp=="F" or $esp=="f" or $esp=="G" or $esp=="g" or $esp=="A" or $esp=="a" or $esp=="B" or $esp=="b") $itest=1; elseif($esp=="(") $itest=2; $arpege=$arpege.$esp; } } return $voix; };function motifalea($v,$lmotif,$indi,$tempo,$trans) { $mot=""; if($indi != "") $mot=$mot.$indi; if($tempo != "") $mot=$mot.$tempo; for($i=0;$i<$lmotif;$i++) { $pos=rand(0,16); $pos=$pos."_"; $dur=rand(1,4); $rep=rand(1,2); if($rep==2) $rep=""; else $rep=$pos.":".$rep." "; $piq=rand(0,4); if($piq==1) $piq="p"; elseif($piq==2) $piq="l"; else $piq=""; if($tempo=="") { $tempo=rand(1,10); if($tempo<4) $tempo="t".$tempo." "; elseif($tempo==4) $tempo="t< "; elseif($tempo=="5") $tempo="t> "; elseif($tempo=="6") $tempo="t= "; else $tempo=""; } if($indi=="") { $indi=rand(1,7); if($indi==2) $indi="20"; elseif($indi==4) $indi="41"; elseif($indi=="5") $indi="50"; elseif($indi=="6") $indi="68"; elseif($indi=="7") $indi="72"; $indi="i".$indi." "; } $mot=$mot.$tempo.$indi.$pos."/".$dur." ".$rep.$piq." "; } $basemotifinter=$v.$mot.$trans; $basemotifinter=normaliser($basemotifinter); return $basemotifinter; }; function motifaleavoix($baseinter,$lmotif,$indi,$tempo,$trans) { $v1=""; $v2=""; $v3=""; $v4=""; $lon=strlen($baseinter); for($i=0;$i<$lon;$i++) { $l3=substr($baseinter,$i,3); if($l3=="v:1") $v1=$l3; elseif($l3=="v:2") $v2=$l3; elseif($l3=="v:3") $v3=$l3; elseif($l3=="v:4") $v4=$l3; } $basemotif=""; if($v1 != "") { $v="v:1 "; $basemotifv1=motifalea($v,$lmotif,$indi,$tempo,$trans); $basemotif=$basemotif." ".$basemotifv1; } if($v2 != "") { $v="v:2 "; $basemotifv2=motifalea($v,$lmotif,$indi,$tempo,$trans); $basemotif=$basemotif." ".$basemotifv2; } if($v3 != "") { $v="v:3 "; $basemotifv3=motifalea($v,$lmotif,$indi,$tempo,$trans); $basemotif=$basemotif." ".$basemotifv3; } if($v4 != "") { $v="v:4 "; $basemotifv4=motifalea($v,$lmotif,$indi,$tempo,$trans); $basemotif=$basemotif." ".$basemotifv4; } return $basemotif; }; function voixnuance($voix) { $lon=strlen($voix); $ipiano=0; $iaccord=0; $grille=""; $voix1=""; $voix2=""; $voix3=""; $voix4=""; for($i=4;$i<$lon;$i++) { $l1=substr($voix,$i,1); $l2=substr($voix,$i,2); if($l1=="[") $iaccord="1"; elseif($l1=="]") { if($iaccord==1) { $voix1=$voix1."{".$note."} "; $grille=$grille."[".$note."] "; } $note=$note." "; $ls=substr($note,1,1); if($ls=="#" or $ls=="b" or $ls=="0" or $ls=="_" or $ls==",") $pause="p".substr($note,2,strlen($note)-2); else $pause="p".substr($note,1,strlen($note)-1); if($iaccord==2) { $voix2=$voix2.$note; $voix3=$voix3.$pause; $voix4=$voix4.$pause; } elseif($iaccord==3) { $voix3=$voix3.$note; $voix4=$voix4.$pause; } elseif($iaccord==4) $voix4=$voix4.$note; $iaccord=0; $i++; $note=""; } elseif($l2=="!p") { $ipiano=1; $i=$i+2; } elseif($l2=="!f") { $ipiano=0; $i=$i+2; } elseif($l1==" ") { $note=$note." "; $ls=substr($note,1,1); if($ls=="#" or $ls=="b" or $ls=="0" or $ls=="_" or $ls==",") $pause="p".substr($note,2,strlen($note)-2); else $pause="p".substr($note,1,strlen($note)-1); if($iaccord==0 or $iaccord==1) { $grille=$grille.$note; $voix1=$voix1.$note; } elseif($iaccord==2) $voix2=$voix2.$note; elseif($iaccord==3) $voix3=$voix3.$note; elseif($iaccord==4) $voix4=$voix4.$note; if($iaccord != 0) $iaccord++; if($iaccord==0) { if($ipiano==1) $note=$pause; $voix2=$voix2.$note; $voix3=$voix3.$note; $voix4=$voix4.$note; } $note=""; } else $note=$note.$l1; } if(substr($voix,0,3)=="v:g") $igrille=1; else $igrille=0; if($grille != "") echo "

Grille : $grille

"; $voixnuance="v:1 ".$voix1."v:2 ".$voix2."v:3 ".$voix3."v:4 ".$voix4; if($igrille==1) $voixnuance=$grille; return $voixnuance; }; //fin des fonctions de la bibliothèque fonctionmuette.php