foscili

foscili — Oscillateur élémentaire modulé en fréquence avec interpolation linéaire.

Description

Oscillateur élémentaire modulé en fréquence avec interpolation linéaire.

Syntaxe

ares foscili xamp, kcps, xcar, xmod, kndx, ifn [, iphs]

Initialisation

ifn -- numéro de la table de fonction. Nécessite un point de garde de lecture cyclique.

iphs (faculatif, par défaut 0) -- phase initiale de la forme d'onde dans la table ifn, 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

xamp -- l'amplitude du signal de sortie.

kcps -- un dénominateur commun, en cycles par seconde, pour les fréquences porteuse et modulante.

xcar -- un facteur qui, lorsqu'il est multiplié par le paramètre kcps, donne la fréquence de la porteuse.

xmod -- un facteur qui, lorsqu'il est multiplié par le paramètre kcps, donne la fréquence de la modulante.

kndx -- l'indice de modulation.

foscili diffère de foscil en ce que la procédure standard d'utilisation d'une phase tronquée comme index de lecture des échantillons 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.

Exemples

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

Exemple 198. Exemple de l'opcode foscili.

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
; Audio out   Audio in    No messages
-odac           -iadc     -d     ;;;RT audio I/O
; For Non-realtime ouput leave only the line below:
; -o foscili.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>

; Initialize the global variables.
sr = 44100
kr = 4410
ksmps = 10
nchnls = 1

; Instrument #1 - a basic FM waveform.
instr 1
  kamp = 10000
  kcps = 440
  kcar = 600
  kmod = 210
  kndx = 2
  ifn = 1

  a1 foscil kamp, kcps, kcar, kmod, kndx, ifn
  out a1
endin

; Instrument #2 - the basic FM waveform with extra interpolation.
instr 2
  kamp = 10000
  kcps = 440
  kcar = 600
  kmod = 210
  kndx = 2
  ifn = 1

  a1 foscili kamp, kcps, kcar, kmod, kndx, ifn
  out a1
endin


</CsInstruments>
<CsScore>

; Table #1, a sine wave table with a small amount of data.
f 1 0 4096 10 1

; Play Instrument #1, the basic FM instrument, for 
; two seconds. This should sound relatively rough.
i 1 0 2

; Play Instrument #2, the interpolated FM instrument, for
; two seconds. This should sound relatively smooth.
i 2 2 2
e


</CsScore>
</CsoundSynthesizer>


Crédits

Exemple écrit par Kevin Conder.