vco — Implémentation de la modélisation d'un oscillateur analogique à bande de fréquence limitée.
Implémentation de la modélisation d'un oscillateur analogique à bande de fréquence limitée, basée sur l'intégration d'impulsions à bande de fréquence limitée. vco peut être utilisé pour simuler différentes formes d'onde analogiques.
iwave -- détermine la forme d'onde :
iwave = 1 - dent de scie
iwave = 2 - carrée/PWM
iwave = 3 - triangle/dent de scie/rampe
ifn (facultatif, = 1par défaut) -- Doit pointer sur une table valide qui contient une onde sinus. Csound rapportera une erreur si ce paramètre n'est pas fixé et que la table 1 n'existe pas.
imaxd (facultatif, par défaut 1) -- temps de retard maximum. Une durée de 1/ifqc peut être nécessaire pour les formes d'onde PWM et triangle. Le temps d'ajustement de la hauteur à cette valeur peut aller jusqu'à 1/(fréquence minimale).
ileak (facultatif, par défaut 0) -- si ileak se situe entre zéro et un (0 < ileak < 1), ileak est utilisé comme facteur de fuite de l'intégrateur. Sinon un facteur de fuite de 0,999 est utilisé pour les ondes en dent de scie et carrée et de 0,995 pour l'onde triangle. On peut l'utiliser pour « aplatir » l'onde carrée ou « renforcer » l'onde en dent de scie dans les fréquences basses en fixant ileak à 0,99999 ou à une valeur semblable. Le résultat devrait être une onde carrée sonnant plus faux.
inyx (facultatif, par défaut 0,5) -- est utilisé pour déterminer le nombre d'harmoniques dans l'impulsion à bande de fréquence limitée. Tous les harmoniques jusqu'à sr * inyx seront utilisés. La valeur par défaut donne sr * 0,5 (sr/2). Pour sr/4 utiliser inyx = 0,25. Cela peut générer un son plus « gras » dans certains cas.
iphs (facultatif, par défaut 0) -- c'est une valeur de phase. Il y a un artefact (comme un bogue) dans vco qui se produit pendant la première demi-période de l'onde carrée et qui rend la forme d'onde plus grande en amplitude que les autres. La valeur de iphs a un effet sur cet artefact. En particulier, si l'on fixe iphs à 0,5 la première demi-période de l'onde carrée ressemblera à une petite onde triangulaire. Ceci peut être préférable à la grande forme d'onde de l'artefact qui est le comportement par défaut.
iskip (facultatif, par défaut 0) -- s'il est non nul, l'initialisation du filtre est ignorée. (Nouveau dans les versions 4.23f13 et 5.0 de Csound)
kpw -- détermine soit la largeur de la pulsation (si iwave vaut 2) soit le caractère de la dent de scie / rampe (si iwave vaut 3). La valeur de kpw doit être supérieure à 0 et inférieure à 1. Une valeur de 0,5 générera une onde carrée (si iwave vaut 2) ou une onde triangle (si iwave vaut 3).
xamp -- détermine l'amplitude
xcps -- fréquence de l'onde en cycles par seconde.
Voici un exemple de l'opcode vco. Il utilise le fichier vco.csd.
Exemple 1160. Exemple de l'opcode vco.
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 vco.wav -W ;;; for file output any platform </CsOptions> <CsInstruments> sr = 44100 ksmps = 32 nchnls = 2 0dbfs = 1 instr 1 kamp = .4 kcps = cpspch(p4) iwave = p5 ; Select the wave form kpw init 0.5 ; Set the pulse-width/saw-ramp character. ifn = 1 asig vco kamp, kcps, iwave, kpw, ifn outs asig, asig endin </CsInstruments> <CsScore> f 1 0 65536 10 1 ; a sine wave. ; pitch-class waveform i 1 00 02 05.00 1 ; saw i 1 02 02 05.00 2 ; square i 1 04 02 05.00 3 ; tri/saw/ramp i 1 06 02 07.00 1 i 1 08 02 07.00 2 i 1 10 02 07.00 3 i 1 12 02 09.00 1 i 1 14 02 09.00 2 i 1 16 02 09.00 3 i 1 18 02 11.00 1 i 1 20 02 11.00 2 i 1 22 02 11.00 3 e </CsScore> </CsoundSynthesizer>