GEN14 — Mémorise un polynôme dont les coefficients sont dérivés des polynômes de Tchebychev de seconde espèce.
Utilise les coefficients de Tchebychev pour générer des fonctions polynomiales stockées qui, dans le waveshaping, peuvent être utilisées pour séparer une sinus en harmoniques selon un spectre prédéfini.
taille -- nombre de points dans la table. Doit être une puissance de 2 ou une puissance-de-2 plus 1 (voir l'instruction f). La valeur normale est une puissance-de-2 plus 1.
xint -- fournit les valeurs gauches et droites [-xint, +xint] de l'intervalle des x sur lequel le polynôme doit être évalué. GEN13 et GEN14 appellent GEN03 pour évaluer leurs fonctions ; la valeur en p5 est ainsi étendue en une paire négative-positive p5, p6 avant l'appel de GEN03. La valeur normale est 1.
xamp -- facteur de pondération de l'amplitude de l'entrée sinusoïdale qui est attendue pour produire le spectre suivant.
h0, h1, h2, etc. -- importance relative des harmoniques 0 (CC), 1 (fondamental), 2 ... qui résulteront quand une sinus d'amplitude
xamp * int(taille/2)/xint
est traitée en waveshaping avec cette table de fonction. Ces valeurs décrivent ainsi un spectre de fréquences associé à un facteur particulier xamp du signal d'entrée.
![]() |
Note |
---|---|
|
Voici un exemple simple de la routine GEN14. Il utilise le fichier gen14.csd. Il crée une fonction qui, lors du waveshaping, séparera une sinus en 3 harmoniques impairs d'importance relative 5:3:1. Voici son graphe :
Graphe de la forme d'onde générée par GEN14.
Exemple 993. Un exemple simple de la routine GEN14.
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 ; Audio out Audio in -odac -iadc ;;;RT audio I/O ; For Non-realtime ouput leave only the line below: ; -o gen14.wav -W ;;; for file output any platform </CsOptions> <CsInstruments> ; Initialize the global variables. sr = 44100 kr = 4410 ksmps = 10 nchnls = 1 ; Instrument #1. instr 1 ; Create an index over the length of our entire note. kcps init 1/p3 kndx phasor kcps ; Read Table #1 with our index. ifn = 1 ixmode = 1 kval table kndx, ifn, ixmode ; Generate a sine waveform, use our Table #1 value to ; vary its frequency by 100 Hz from its base frequency. ibasefreq = 440 kfreq = kval * 100 a1 oscil 20000, ibasefreq + kfreq, 2 out a1 endin </CsInstruments> <CsScore> ; Table #1: a polynomial function (using GEN14). f 1 0 1025 14 1 1 0 5 0 3 0 1 ; Table #2, a sine wave. f 2 0 16384 10 1 ; Play Instrument #1 for 2 seconds. i 1 0 2 e </CsScore> </CsoundSynthesizer>