GEN03 — Génère une table de fonction en évaluant un polynôme.
Ce sous-programme génère une table de fonction en évaluant un polynôme en x sur un intervalle fixe et avec des coefficients spécifiés.
taille -- nombre de points dans la table. Doit être une puissance de 2 ou une puissance-de-2 plus 1.
xval1, xval2 -- limites gauche et droite de l'intervalle x sur lequel le polynôme est défini (xval1 < xval2). Celles-ci produiront la 1ère valeur stockée et la (puissance-de-2 plus 1)ème valeur stockée respectivement dans la table de la fonction générée.
c0, c1, c2, ..., cn -- coefficients du polynôme d'ordre n
C0 + C1x + C2x2 + . . . + Cnxn
Les coefficients peuvent être des nombres réels positifs ou négatifs ; un zéro dénote un terme manquant dans le polynôme. La liste de coefficients commence en p7, avec une limite maximale actuelle de 144 termes.
Note | |
---|---|
|
Voici un exemple de la routine GEN03. Il utilise le fichier gen03.csd.
Exemple 1276. Exemple de la routine GEN03.
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 if realtime audio input is needed too ; For Non-realtime ouput leave only the line below: ; -o gen03.wav -W ;;; for file output any platform </CsOptions> <CsInstruments> sr = 44100 ksmps = 32 nchnls = 2 0dbfs = 1 ;example by Russell Pinkston - Univ. of Texas (but slightly modified) gisine ftgen 1, 0, 16384, 10, 1 ;sine wave instr 1 ihertz = cpspch(p4) ipkamp = p5 iwsfn = p6 ;waveshaping function inmfn = p7 ;normalization function aenv linen 1, .01, p3, .1 ;overall amp envelope actrl linen 1, 2, p3, 2 ;waveshaping index control aindex poscil actrl/2, ihertz, gisine ;sine wave to be distorted asignal tablei .5+aindex, iwsfn, 1 ;waveshaping anormal tablei actrl, inmfn,1 ;amplitude normalization asig = asignal*anormal*ipkamp*aenv asig dcblock2 asig ;get rid of possible DC outs asig, asig endin </CsInstruments> <CsScore> ; first four notes are specific Chebyshev polynomials using gen03. The values were obtained from Dodge page 147 f4 0 513 3 -1 1 0 1 ; First-order Chebyshev: x f5 0 257 4 4 1 ; Normalizing function for fn4 f6 0 513 3 -1 1 -1 0 2 ; Second-order Chebyshev: 2x2 - 1 f7 0 257 4 6 1 ; Normalizing function for fn6 f8 0 513 3 -1 1 0 -3 0 4 ; Third-order Chebyshev: 4x3 - 3x f9 0 257 4 8 1 ; Normalizing function for fn8 f10 0 513 3 -1 10 0 -7 0 56 0 -112 0 64 ; Seventh-order Chebyshev: 64x7 - 112x5 + 56x3 - 7x f11 0 257 4 10 1 ; Normalizing function for fn10 f12 0 513 3 -1 1 5 4 3 2 2 1 ; a 4th order polynomial function over the x-interval -1 to 1 f13 0 257 4 12 1 ; Normalizing function for fn12 ; five notes with same fundamental, different waveshape & normalizing functions ; pch amp wsfn nmfn i1 0 3 8.00 .7 4 5 i1 + . . . 6 7 i1 + . . . 8 9 i1 + . . . 10 11 i1 + . . . 12 13 e </CsScore> </CsoundSynthesizer>
Voici les diagrammes des formes d'onde des routines GEN03
utilisées dans l'exemple :
Information au sujet des polynômes de Tchebychev sur Wikipedia : http://fr.wikipedia.org/wiki/Polynôme_de_Tchebychev