GEN20

GEN20 — Génère les fonctions de différentes fenêtres.

Description

Ce sous-programme génère les fonctions de différentes fenêtres. Ces fenêtres sont utilisées habituellement pour l'analyse spectrale ou pour des enveloppes de grain.

Syntaxe

f # date taille 20 fenêtre max [opt]

Initialisation

taille -- nombre de points dans la table. Doit être une puissance de 2 ( + 1).

fenêtre -- Type de la fenêtre à générer :

  • 1 = Hamming

  • 2 = Hanning

  • 3 = Bartlett (triangle)

  • 4 = Blackman (3-termes)

  • 5 = Blackman - Harris (4-termes)

  • 6 = Gaussienne

  • 7 = Kaiser

  • 8 = Rectangle

  • 9 = Sync

max -- Pour p4 négatif ce sera la valeur absolue au pic de la fenêtre. Si p4 est positif ou si p4 est négatif et p6 est absent la table sera post-normalisée à une valeur maximale de 1.

opt -- Argument facultatif nécessaire pour la fenêtre gaussienne et pour la fenêtre de Kaiser.

Exemples

f       1       0       1024    20      5

Crée une fonction qui contient une fenêtre de Blackman - Harris à 4 termes avec une valeur maximale de 1.

f       1       0       1024    -20     2       456

Crée une fonction qui contient une fenêtre de Hanning avec une valeur maximale de 456.

f       1       0       1024    -20     1

Crée une fonction qui contient une fenêtre de Hamming avec une valeur maximale de 1.

f       1       0       1024    20      7       1       2

Crée une fonction qui contient une fenêtre de Kaiser avec une valeur maximale de 1. L'argument supplémentaire spécifie comment la fenêtre est "ouverte", par exemple une valeur de 0 donne une fenêtre rectangulaire et une valeur de 10 donne une fenêtre semblable à une fenêtre de Hamming.

f       1       0       1024    20      6       1       2

Crée une fonction qui contient une fenêtre gaussienne avec une valeur maximale de 1. L'argument supplémentaire spécifie la largeur de la fenêtre, comme l'écart type de la courbe ; dans cette exemple l'écart type vaut 2. La valeur par défaut est 1.

Pour tous les diagrammes, voir les Fonctions fenêtre

Voici un exemple de la routine GEN20. Il utilise le fichier gen20.csd.

Exemple 1294. Exemple de la routine GEN20.

Voir les sections Audio en Temps Réel et Options de 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 if realtime audio input is needed too 
; For Non-realtime ouput leave only the line below: 
; -o gen20.wav -W ;;; for file output any platform 
</CsOptions> 
<CsInstruments> 

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

instr 1 

insnd   = 10 				;"fox.wav"
ibasfrq = 44100 / ftlen(insnd)		;use original sample rate of insnd file 

kamp   expseg .001, p3/2, .7, p3/2, .8	;envelope
kpitch line ibasfrq, p3, ibasfrq * .8 
kdens  line 600, p3, 10 
kaoff  line 0, p3, .1
kpoff  line 0, p3, ibasfrq * .5 
kgdur  line .04, p3, .001		;shorten duration of grain during note
imaxgdur =  .5 
igfn = p4 				;different windows
asigL  grain kamp, kpitch, kdens, kaoff, kpoff, kgdur, insnd, igfn, imaxgdur, 0.0 
asigR  grain kamp, kpitch, kdens, kaoff, kpoff, kgdur, insnd, igfn, imaxgdur, 0.0 
       outs asigL, asigR

endin 
</CsInstruments> 
<CsScore> 
f1  0 512  20 2		;Hanning window 
f2  0 512  20 6 1	;Gaussian window 
f10 0 16384 1 "fox.wav" 0 0 0 

i1 0 5 1		;use Hanning window 
i1 + 5 2		;use Gaussian window
e 
</CsScore> 
</CsoundSynthesizer> 


Voici les diagrammes des formes d'onde des routines GEN20 utilisées dans l'exemple :

f 1 0 512 20 2 - fenêtre de Hanning

f 1 0 512 20 2 - fenêtre de Hanning

f 2 0 512 20 6 1 - fenêtre gaussienne

f 2 0 512 20 6 1 - fenêtre gaussienne

Crédits

Auteur : Paris Smaragdis
MIT, Cambridge
1995

Auteur : John ffitch
University of Bath/Codemist Ltd.
Bath, UK

Nouveau dans la version 3.2 de Csound

L'argument facultatif de la gaussienne a été ajouté dans la version 5.10