science-notes/source/music/code/pythagoricienne.R
2024-10-28 15:49:13 +01:00

17 lines
529 B
R
Executable file

#!/usr/bin/Rscript
do=261.63 # do frequency convention
N=13 # Number de nouvelle notes
quintes=rep(do,N) # Les nouvelles quintes
## Calcule l'ensemble des quintes de la gamme
facteurs=(3/2)^(0:(N-1)) # Facteurs relatif au do 261.63
## On divise par 2 jusqu'à retombé dans notre octave
toOctave=function(x){
if(x<(2*do+10)) # +10 car la dernière quinte n'est pas parfait et dépasse 2*261.63
x
else
toOctave(x/2)
}
notes=sort(sapply(quintes*facteurs,FUN=toOctave)) # Generation des notes de la gamme