GEN08 — Génère une courbe spline cubique par morceaux.
Ce sous-programme génèrera une courbe spline cubique par morceaux, la plus lisse possible le long de tous les points spécifiés.
taille -- nombre de points dans la table. Doit être une puissance de 2 ou une puissance-de-2 plus 1 (voir instruction f).
a, b, c, etc. -- valeurs d'ordonnée de la fonction.
n1, n2, n3 ... -- longueur de chaque segment mesurée en valeurs mémorisées. Ne peuvent pas être nulles, mais peuvent être fractionnaires. Un segment particulier peut stocker ou non des valeurs ; les valeurs stockées seront générées à des points entiers à partir de début de la fonction. La somme n1 + n2 + ... sera normalement égale à taille pour les fonctions complètement spécifiées.
![]() |
Note |
---|---|
|
Voici un exemple simple de la routine GEN08. Il utilise le fichier gen08.csd. Il créera une bosse lisse au milieu, légèrement négative des deux côtés, s'applatissant ensuite aux extrémités. Voici le graphe :
Graphe de la fonction générée par GEN08.
Exemple 615. Un exemple simple de la routine GEN08.
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 gen08.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 curve with a smooth hump (using GEN08). f 1 0 65 8 0 16 0 16 1 16 0 16 0 ; Table #2, a sine wave. f 2 0 16384 10 1 ; Play Instrument #1 for two seconds. i 1 0 2 e </CsScore> </CsoundSynthesizer>