vco2ift — Retourne un numéro de table au temps-i pour une fréquence d'oscillateur donnée et une forme d'onde.
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).
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.
Voici un exemple de l'opcode vco2ift. Il utilise le fichier vco2ift.csd.
Exemple 1162. 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, 3, 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.