science-notes/source/music/code/gamme_naturelle.R
2024-10-30 11:29:19 +01:00

26 lines
665 B
R
Executable file

#!/usr/bin/Rscript
q=3/2 # Facteur de quinte theorique
t=5/4 # Facteur de tierce theorique
## Construction de la gamme naturelle
## Les divisions par deux: pour rammener à l'octave
do4=261.63 # do fréquence par convention
sol4=do4*q
re4=sol4*q/2
fa4=do4*(1/q)*2
mi4=do4*t
sol4d=mi4*t
re4d=sol4d*q/2
si4=sol4*t
fa4d=si4*q/2
la4d=fa4d*t
la4=fa4*t
do4d=la4*t/2
## On affiche le résultat
names=c("do","do#reb","re","re#/mib","mi","fa","fa#/solb","sol", "sol#/lab", "la", "la#/sib", "si")
frequences=c(do4,do4d,re4,re4d,mi4,fa4,fa4d,sol4,sol4d,la4,la4d,si4)
for( e in Map(list,names,frequences)){
message(paste0(sprintf("%-8s",e[[1]])," ",e[[2]],"Hz"))
}