"farey" — Remplit une table avec la suite de Farey Fn d'ordre n.
Une suite de Farey Fn d'ordre n est une liste de fractions irréductibles comprises entre 0 et 1 et en ordre croissant. Leurs dénominateurs sont inférieurs ou égaux à n. Cela signifie qu'une fraction a/b appartient à Fn si 0 ≤ a ≤ b ≤ n. Le numérateur et le dénominateur de chaque fraction sont toujours premiers entre eux. 0 et 1 sont compris dans Fn sous la forme des fractions 0/1 et 1/1. Par exemple F5 = {0/1, 1/5, 1/4, 1/3, 2/5, 1/2, 3/5, 2/3, 3/4, 4/5, 1/1}. Quelques propriétés des suites de Farey :
La longueur de la suite de Farey Fn est déterminée par |Fn| = 1 + SOMMME sur n (phi(m)) où phi(m) est l'indicatrice d'Euler, qui donne le nombre d'entiers ≤ m premiers avec m.
Quelques valeurs de la longueur de Fn en fonction de n :
n | Fn |
---|---|
1 | 2 |
2 | 3 |
3 | 5 |
4 | 7 |
5 | 11 |
6 | 13 |
7 | 19 |
8 | 23 |
9 | 29 |
10 | 33 |
11 | 43 |
12 | 47 |
13 | 59 |
14 | 65 |
15 | 73 |
16 | 81 |
17 | 97 |
18 | 103 |
19 | 121 |
20 | 129 |
size -- nombre de points dans la table. Doit être une puissance de 2 ou une puissance-de-2 plus 1 (voir l'instruction f).
fareynum -- l'entier n pour générer la suite de Farey Fn.
mode -- entier définissant le type de sortie à écrire dans la table :
0 -- nombres en virgule flottante représentant les éléments de Fn.
1 -- différences entre les éléments successifs de Fn ; utile pour générer des durées de note par exemple.
2 -- seulement les dénominateurs des rapports d'entiers ; utile comme indexation d'autres tables ou instruments par exemple.
3 -- comme le mode 2 mais normalisée. output.
4 -- comme le mode 0 mais avec 1 ajouté à chaque terme ; utile pour générer des tables pour les opcodes d'accordage, par exemple cps2pch.
f1 0 -23 "farey" 8 0
Génère la suite de Farey F8. La table contient les
23 éléments de Fn en virgule flottante.
f1 0 -18 "farey" 7 1
Génère la suite de Farey F7. La table contient
les 18 différences entre les termes de F7,
c'est-à-dire les différences ri+1 -
ri, où r est le ième élément de
Fn.
f1 0 -43 "farey" 11 2
Génère la suite de Farey F11. La table contient
les dénominateurs des 43 fractions de F11.
f1 0 -43 "farey" 11 3
Génère la suite de Farey F11. La table contient
les dénominateurs des 43 fractions de F11,
chacun de ceux-ci étant divisé par 11, c'est_à_dire normalisé.
f1 0 -18 "farey" 7 4
Génère la suite de Farey F7. La table contient
les fractions de F7 comme dans le mode 0, mais
la durée '1' est ajouté à chaque élément de la table.
Exemple 1043. Un exemple simple de la routine GENfarey.
Voir les sections Audio en Temps Réel et Options de la Ligne de Commande pour plus d'information sur l'utilisation des options de la ligne de commande.
<CsoundSynthesizer> <CsOptions> </CsOptions> <CsInstruments> sr=44100 ksmps=10 nchnls=1 instr 4 kndx init 0 ; read out elements of F_8 one by one and print to file if (kndx < 23) then kelem tab kndx, 1 fprintks "farey8table.txt", "%2.6f\\n", kelem kndx = kndx+1 endif endin </CsInstruments> <CsScore> ; initialise integer for Farey Sequence F_8 f1 0 -23 "farey" 8 0 ; if mode=0 then the table stores all elements of the Farey Sequence ; as fractions in the range [0,1] i4 0 1 e </CsScore> </CsoundSynthesizer>