naturelle=c(261.63,272.53125,294.33375,306.59765625,327.0375,348.84,367.9171875,392.445,408.796875,436.05,459.896484375,490.55625,2*do4)# Valeurs théoriques de la gamme naturelle
## On compare les fréquences trouvées à la gamme naturelle
M=abs(outer(harmoniques,naturelle,"-"))# Calcule de l'erreur à la gamme naturelle
M=t(apply(M,1,FUN=function(row){row==min(row)}))# On selectionne les entrées avec l'erreur minimale
v=apply(M,1,FUN=function(row){if(any(row))(1:13)[which(row)[1]]else14})# On selectionne les notes correspondantes (which() est la pour les cas avec plusieurs minima(s), on choisir arbitrairement le premier