#!/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