pvsmaska

pvsmaska — Modifie les amplitudes en utilisant une table de fonction, avec mise à l'échelle dynamique.

Description

Modifie les amplitudes de fsrc en utilisant une table de fonction, avec mise à l'échelle dynamique.

Syntaxe

fsig pvsmaska fsrc, ifn, kdepth

Initialisation

ifn -- La table-f à utiliser. Si le fsrc donné a N bins d'analyse, la table ifn doit être de taille supérieure ou égale à N. Il n'est pas nécessaire de normaliser la table, mais ses valeurs doivent être comprises entre 0 et 1. Elle peut provenir de la partition de la manière habituelle ou bien de l'orchestre en utilisant pvsinfo pour trouver la taille de fsrc, (retournée par pvsinfo dans inbins), qui peut ensuite être passée à ftgen pour créer la table-f.

Exécution

kdepth -- Contrôle le degré de modification appliqué à fsrc, en utilisant une simple échelle linéaire. 0 laisse les amplitudes inchangées, 1 applique le profil complet de ifn.

Noter que les tailles de TFR en puissances de deux sont particulièrement adaptées au traitement basé sur des tables, car le nombre de bins d'analyse (inbins) est alors une puissance de deux plus un, pour lequel une table-f correspondant exactement peut être créée. Dans ce cas il est important que la table-f soit créée avec un taille de inbins au lieu d'une puissance de deux, car sinon la première valeur de la table sera copiée dans le point de garde, ce qui ne convient pas pour cet opcode.

[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 pvsmaska. Il utilise le fichier pvsmaska.csd.

Exemple 844. Exemple de l'opcode pvsmaska.

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 pvsmaska.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>

sr = 44100 
ksmps = 32 
0dbfs  = 1 
nchnls = 2

;; example written by joachim heintz 2009

; function table for defining amplitude peaks (from the example of Richard Dobson)
giTab		ftgen		0, 0, 513, 8, 0, 2, 1, 3, 0, 4, 1, 6, 0, 10, 1, 12, 0, 16, 1, 32, 0, 1, 0, 436, 0

instr 1
imod		= p4; degree of midification (0-1)
ifftsize	= 1024
ioverlap	= ifftsize / 4
iwinsize	= ifftsize
iwinshape	= 1; von-Hann window
Sfile		= "fox.wav"
ain		soundin	Sfile
fftin		pvsanal	ain, ifftsize, ioverlap, iwinsize, iwinshape; fft-analysis of file
fmask		pvsmaska  	fftin, giTab, imod
aout		pvsynth	fmask; resynthesize
out		aout, aout
endin

</CsInstruments>
<CsScore>
i 1 0 2.757 0 
i 1 3 2.757 .5
i 1 6 2.757 1
e
</CsScore>
</CsoundSynthesizer>


Voir aussi

pvsanal, pvsynth, pvsadsyn

Crédits

Auteur : Richard Dobson
Août 2001

Nouveau dans la version 4.13