fareyleni

fareyleni — retourne la longueur d'une suite de Farey.

Description

On peut utiliser cet opcode de concert avec GENfarey. Il calcule la longueur de la suite de Farey Fn. Cette longueur est donnée par : |Fn| = 1 + SOMME 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

Syntaxe

ifl fareyleni ifn

Initialisation

La longueur de la suite de Farey identifiée est retournée.

ifn -- Entier identifiant la suite.

Exemples

Voici un exemple de l'opcode fareyleni. Il utilise le fichier fareyleni.csd.

Exemple 265. Exemple de l'opcode fareyleni.

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>
; Select audio/midi flags here according to platform
-odac     ;;;realtime audio out
;-iadc    ;;;uncomment -iadc for RT audio input as well 
; For Non-realtime ouput leave only the line below:
; -o fareyleni.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>

sr = 44100
ksmps = 32
nchnls = 2
0dbfs  = 1

      ; initialise integer n for Farey Sequence F_8
      gifarn init 8	

      ; calculate length of F_8, it should return 23 for |F_8|
      gires fareyleni gifarn  

      ; convert to negative number for the GEN routine because
      ; the table length won't be a power of 2 
      ; (The length of a Farey Sequence of n > 1 is always an odd number)
      gilen init gires * -1 
      	   	       	               
      ; create F_8 with GENfarey, the negative table number prevents 
      ; unnecessary normalisation (F_8 IS already normalised)
      ; 	         	    n  	   mode: 
      gifarey ftgen 100, 0, gilen, "farey", gifarn, 4
      ; if mode=4 then 1 is added to each element of F_n.
      ; Useful for creating just tuning tables that can be read by the cps2pch opcode.

instr 1
      ; the very last element of F_n is not needed in the case of tuning tables
      ires = gires - 1 
      ; read out and print to file
      kndx init 0 
      if (kndx < ires) then    
      	 kelem tab kndx, gifarey
      	 fprintks "farey8_tuning.txt", "%2.6f\\n", kelem
      	 kndx = kndx+1
      endif
      
endin

instr 2

ip   cps2pch p4, -100
asig poscil .5, ip, 1
aenv linseg 0, 0.1, 1, p3-0.2, 1, 0.1, 0
     outs asig * aenv, asig * aenv

endin
</CsInstruments>
<CsScore>
f1 0 8192 10 1	;sine wave

i1	0     .1

i2	1	.5	8.00
i2	+	.	>
i2	+	.	>
i2	+	.	>
i2	+	.	>
i2	+	.	>
i2	+	.	>
i2	+	.	>
i2	+	.	>
i2	+	.	>
i2	+	.	>
i2	+	.	>
i2	+	.	>
i2	+	.	>
i2	+	.	>
i2	+	.	>
i2	+	.	>
i2	+	.	>
i2	+	.	>
i2	+	.	>
i2	+	.	>
i2	+	.	>
i2	+	1	8.22


e
</CsScore>
</CsoundSynthesizer>
 


Crédits

Auteur : Georg Boenn
Université de Glamorgan, UK

Nouveau dans la version 5.13 de Csound.