pvsarp — Arpège les composantes spectrales d'un flux de signal pv.
Cet opcode arpège les composantes spectrales, en amplifiant un bin et en atténuant tous les autres autour de ce dernier. Utilisé avec un LFO il fournit un arpégiateur semblable au programme specarp de Trevor Wishart.
fsig -- flot pv de sortie
fsigin -- flot pv d'entrée
kbin -- bin cible, normalisé entre 0 et 1 (0Hz - Nyquist).
kdepth -- importance de l'atténuation des bins voisins
kgain -- renforcement du gain appliqué au bin cible
Avertissement | |
---|---|
Il est dangereux d'utiliser la même variable-f à la fois comme entrée et comme sortie des opcodes pvs. Ceci peut produire un comportement indéfini de certains de ces opcodes. Utilisez une variable différente à gauche et à droite de l'opcode. |
Voici un exemple de l'opcode pvsarp. Il utilise le fichier pvsarp.csd
Exemple 806. Exemple de l'opcode pvsarp.
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 pvsarp.wav -W ;;; for file output any platform </CsOptions> <CsInstruments> ; additions by Menno Knevel 2021 sr = 44100 ksmps = 32 nchnls = 2 0dbfs = 1 nchnls_i = 1 ; number of input channels instr 1 asig diskin2 "flute.aiff", 1, 0, 1 ; get the sample in idepth = p4 prints "\n--**here the sample is used**--\n" fsig pvsanal asig, 1024, 256, 1024, 1 ; analyse it kbin oscili 0.1, 0.05, 1 ; ftable 1 in the 0-1 range ftps pvsarp fsig, kbin+0.01, idepth, 7 ; arpeggiate it (range 220.5 - 2425.5) atps pvsynth ftps ; synthesise it outs atps, atps endin instr 2 asig in ; get the (microphone?) signal in idepth = p4 prints "\n--**please use microphone**--\n" prints "--**if no input is given, there will be only silence...\n" fsig pvsanal asig, 1024, 256, 1024, 1 ; analyse it kbin oscili 0.1, 0.3, 1 ; ftable 1 in the 0-1 range ftps pvsarp fsig, kbin+0.01, idepth, 7 ; arpeggiate it (range 220.5 - 2425.5) atps pvsynth ftps ; synthesise it outs atps, atps endin </CsInstruments> <CsScore> f 1 0 4096 10 1 ;sine wave s i 1 0 10 0.5 ; notes for the flute sample i 1 + 10 1 s i 2 0 10 0.9 ; notes for the microphone i 2 + 10 0.5 e </CsScore> </CsoundSynthesizer>
Voici un autre exemple de l'opcode pvsarp. Il utilise le fichier pvsarp2.csd
Exemple 807. Exemple de l'opcode pvsarp.
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 -odac ;;;RT audio I/O ; For Non-realtime ouput leave only the line below: ; -o pvsarp2.wav -W ;;; for file output any platform </CsOptions> <CsInstruments> sr = 44100 ksmps = 32 nchnls = 2 0dbfs = 1 ;; example written by joachim heintz 2009 ; additions by Menno Knevel 2021 instr 1 ifftsize = 1024 ioverlap = ifftsize / 4 iwinsize = ifftsize iwinshape = 1 ; von-Hann window Sfile1 = "fox.wav" ain1 soundin Sfile1 fftin pvsanal ain1, ifftsize, ioverlap, iwinsize, iwinshape ;make 3 independently moving accentuations in the spectrum kbin1 linseg 0.05, p3/2, .05, p3/2, .05 farp1 pvsarp fftin, kbin1, .9, 10 kbin2 linseg 0.075, p3/2, .1, p3/2, .075 farp2 pvsarp fftin, kbin2, .9, 10 kbin3 linseg 0.02, p3/2, .03, p3/2, .04 farp3 pvsarp fftin, kbin3, .9, 10 ;resynthesize and add them aout1 pvsynth farp1 aout2 pvsynth farp2 aout3 pvsynth farp3 ;aout = aout1*.3 + aout2*.3 + aout3*.3 outs aout1*1 + aout2*.5, aout2*.5 + aout3*.3 endin </CsInstruments> <CsScore> i 1 0 3 e </CsScore> </CsoundSynthesizer>