vco2ift

vco2ift — Retourne un numéro de table au temps-i pour une fréquence d'oscillateur donnée et une forme d'onde.

Description

vco2ift est le même que vco2ft, mais il travaille au temps-i. Il est prévu pour être utilisé avec les opcodes qui attendent un numéro de table au taux-i (par exemple, oscili).

Syntaxe

ifn vco2ift icps, iwave [, inyx]

Initialisation

ifn -- le numéro de ftable.

icps -- fréquence en Hz. On peut utiliser zéro ou des valeurs négatives. Cependant, si la valeur absolue dépasse sr/2 (ou sr * inyx), la table sélectionnée ne contiendra que du silence.

iwave -- la forme d'onde dont le numéro doit être choisi. Les valeurs permises sont :

  • 0 : dent de scie

  • 1 : 4 * x * (1 - x) (integration d'une dent de scie)

  • 2 : pulsation (non normalisée)

  • 3 : onde carrée

  • 4 : triangle

De plus, les valeurs négatives de iwave sélectionnent des formes d'onde définies par l'utilisateur (voir aussi vco2init).

inyx (facultatif, par défaut 0,5) -- largeur de bande de la forme d'onde générée, exprimée en pourcentage (0 à 1) du taux d'échantillonnage. L'intervalle attendu va de 0 à 0,5 (c'est-à-dire jusqu'à sr/2), les autres valeurs étant limitées à cet intervalle.

En fixant inyx à 0,25 (sr/4), ou à 0,3333 (sr/3), on peut produire un son plus « gras » dans certains cas, bien que la qualité sera probablement réduite.

Exemples

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

Exemple 1016. Exemple de l'opcode vco2ift.

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

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

; user defined waveform -2: fixed table size (64), number of partials
; multiplier is 1.4
itmp    ftgen 2, 0, 64, 5, 1, 2, 120, 60, 1, 1, 0.001, 1
ift     vco2init -2, 2, 1.4, 4096, 4096, 2


instr 1

icps = p4
ifn  vco2ift icps, -2, 0.5	;with user defined waveform
print ifn
asig oscili 1, 220, ifn		; (-2), and sr/2 bandwidth
     outs asig, asig

endin
</CsInstruments>
<CsScore>

i 1 0 2 20
i 1 3 2 2000
i 1 6 2 20000

e
</CsScore>
</CsoundSynthesizer>


Sa sortie contiendra des lignes comme celles-ci :

instr 1:  ifn = 22.000
instr 1:  ifn = 8.000
instr 1:  ifn = 3.000

Voir aussi l'exemple de l'opcode vco2.

Voir aussi

vco2ft, vco2init et vco2.

Crédits

Auteur : Istvan Varga

Nouveau dans la version 4.22