oscili

oscili — Un oscillateur simple avec interpolation linéaire.

Description

oscili lit la table ifn séquentiellement et de manière répétive à la fréquence xcps. L'amplitude est pondérée par xamp. La lecture des valeurs de phase internes de la table se fait avec interpolation linéaire.

Syntaxe

ares oscili xamp, xcps [, ifn, iphs]
kres oscili kamp, kcps [, ifn, iphs]

Initialisation

ifn (facultatif) -- numéro de la table de fonction. Nécessite un point de garde pour la lecture cyclique. Vaut -1 par défaut ce qui indique une onde sinusoïdale.

iphs (facultatif) -- phase initiale de la lecture, exprimée comme une fraction d'une période (0 à 1). Avec une valeur négative l'initialisation de la phase sera ignorée. La valeur par défaut est 0.

Exécution

kamp, xamp -- amplitude

kcps, xcps -- fréquence en cycles par seconde.

oscili diffère de oscil en ce que la procédure standard d'utilisation d'une phase tronquée comme index de lecture est remplacée ici par une interpolation entre deux lectures successives. Les générateurs avec interpolation produiront un signal de sortie nettement plus propre, mais ils peuvent prendre jusqu'à deux fois plus de temps de calcul. On peut obtenir également ce type de précision sans le surcoût du calcul de l'interpolation en utilisant de grandes tables de fonction stockées de 2K, 4K ou 8K points, si l'on dispose de cet espace mémoire.

La table ifn est parcourue par incrément modulo la longueur de la table et la valeur obtenue est multipliée par amp.

Si vous désirez changer la table de l'oscillateur avec un signal de taux-k, vous pouvez utiliser oscilikt.

Exemples

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

Exemple 685. Exemple de l'opcode oscili.

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 oscili.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>

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

instr 1

kamp = .6
kcps = 440
ifn  = p4

asig oscil kamp, kcps, ifn
     outs asig,asig

endin

instr 2

kamp = .6
kcps = 440
ifn  = p4

asig oscili kamp, kcps, ifn
     outs asig,asig

endin
</CsInstruments>
<CsScore>
f1 0 128 10 1                                          ; Sine with a small amount of data
f2 0 128 10 1 0.5 0.3 0.25 0.2 0.167 0.14 0.125 .111   ; Sawtooth with a small amount of data
f3 0 128 10 1 0   0.3 0    0.2 0     0.14 0     .111   ; Square with a small amount of data
f4 0 128 10 1 1   1   1    0.7 0.5   0.3  0.1          ; Pulse with a small amount of data

i 1  0 2 1
i 2  3 2 1
i 1  6 2 2
i 2  9 2 2
i 1 12 2 3
i 2 15 2 3
i 1 18 2 4
i 2 21 2 4

e
</CsScore>
</CsoundSynthesizer>


Voir aussi

oscil, oscil3

Crédits