pvsosc — Simulateur d'oscillateur basé sur PVS.
Génère des spectres de signal périodique au format AMP-FREQ, avec le choix parmi quatre type de forme d'onde :
Les formes d'onde complexes (c'est-à-dire tous les types sauf le cosinus) contiennent tous les harmoniques jusqu'à la fréquence de Nyquist. Cela fait de pvsosc une option pour la génération de formes d'onde périodiques à bande limitée. De plus, on peut changer de type en utilisant une variable de taux-k.
fsig -- flot pv de sortie mis à zéro.
isize -- taille de la trame d'analyse.
ioverlap -- (Facultatif) taille du saut, vaut isize/4 par défaut.
iwinsize -- (Facultatif) taille de fenêtre, vaut isize par défaut.
iwintype -- (Facultatif) type de fenêtre, Hanning par défaut. On a actuellement le choix entre :
0 = fenêtre de Hamming
1 = fenêtre de von Hann
iformat -- (Facultatif) format des données, 0 par défaut ce qui produit des données AMP:FREQ. C'est actuellement la seule option.
kamp -- amplitude du signal. Noter que l'amplitude effective du signal peut varier légèrement autour de cette valeur en fonction du type de forme d'onde et de la fréquence. Généralement, l'amplitude a tendance à dépasser kamp pour les hautes fréquences (> 1000 Hz) et à être inférieure pour les basses fréquences. De plus, à cause du traitement par recouvrement-addition, lorsque l'on fait la resynthèse avec pvsynth, les glissements de fréquence causeront une fluctuation de l'amplitude autour de kamp.
kfreq -- fréquence fondamentale en Hz.
ktype -- type d'onde : 1. pseudo dent de scie, 2. pseudo carrée, 3. impulsion, et tout autre valeur pour cosine.
Voici un exemple de l'opcode pvsosc. Il utilise le fichier pvsosc.csd.
Exemple 850. Exemple de l'opcode pvsosc
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 -odac -m0 ;;;realtime audio out ; For Non-realtime ouput leave only the line below: ; -o pvsosc.wav -W ;;; for file output any platform </CsOptions> <CsInstruments> sr = 44100 ksmps = 32 0dbfs = 1 nchnls = 2 ; example by Menno Knevel 2021 instr 1 ; a band-limited sawtooth-wave oscillator prints "\nsawtooth-wave\n" fsig pvsosc .5, 440, 1, 1024 ; generate wave spectral signal asig pvsynth fsig ; resynthesise it outs asig, asig endin instr 2 ; a band-limited square-wave oscillator prints "\nsquare-wave\n" fsig pvsosc .5, 440, 2, 1024 ; generate wave spectral signal asig pvsynth fsig ; resynthesise it outs asig, asig endin instr 3 ; a pulse oscillator prints "\npulse-wave\n" fsig pvsosc .5, 440, 3, 1024 ; generate wave spectral signal asig pvsynth fsig ; resynthesise it outs asig, asig endin instr 4 ; a cosine-wave oscillator prints "\ncosine-wave\n\n" fsig pvsosc .5, 440, 4, 1024 ; generate wave spectral signal asig pvsynth fsig ; resynthesise it outs asig, asig endin instr 5 ;cycle ktyp randh 2, 10 fsig pvsosc .5, 440, int(ktyp+3), 1024 ; make it to go from 1-4 printks2 "\ncycle through all waves...: %d\n", int(ktyp+3) asig pvsynth fsig outs asig, asig endin </CsInstruments> <CsScore> i 1 0 1 i 2 2 1 i 3 4 1 i 4 6 1 i 5 10 4 e </CsScore> </CsoundSynthesizer>