pvsarp

pvsarp — Arpège les composantes spectrales d'un flux de signal pv.

Description

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.

Syntaxe

fsig pvsarp fsigin, kbin, kdepth, kgain

Exécution

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] 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.

Exemples

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>


Voir aussi

pvsanal, pvsynth, pvsadsyn

Crédits

Auteur : Victor Lazzarini
Avril 2005

Nouveau greffon dans la version 5

Avril 2005.