sinsyn

sinsyn — Synthèse additive d'un flot de suivi de partiel avec interpolation cubique de la phase.

Description

L'opcode sinsyn prend en entrée un flot de signal PV TRACKS (tel que généré par l'opcode partials par exemple). Il resynthétise le signal avec interpolation linéaire de l'amplitude et interpolation cubique de la phase pour piloter un banc d'oscillateurs interpolants avec pondération de l'amplitude. sinsyn tente de préserver la phase des partiels du signal original et ainsi il ne permet pas de modifier la hauteur ou l'échelle temporelle du signal.

Syntaxe

asig sinsyn fin, kscal, kmaxtracks, ifn

Exécution

asig -- ignal audio de sortie

fin -- flot PV TRACKS d'entrée

kscal -- pondération de l'amplitude

kmaxtracks -- nombre maximum de canaux dans la resynthèse. En limitant ce dernier, on obtient un effet de filtrage non-linéaire en ignorant les canaux les plus récents et de fréquences hautes (les canaux sont ordonnés respectivement par date de début et par fréquence ascendante).

ifn -- table de fonction contenant une période de sinusoïde (sinus ou cosinus).

Exemples

Voici un exemple de l'opcode sinsyn. Il utilise le fichier sinsyn.csd.

Exemple 978. Exemple de l'opcode sinsyn.

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

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

instr 1

kmxtr init p4
ain   diskin2 "fox.wav", 1
fs1,fsi2 pvsifd ain, 2048, 512,1	; ifd analysis
fst   partials fs1, fsi2, .03, 1, 3, 500 ; partial tracking
aout  sinsyn fst, .5, kmxtr, 1		; scale amplitude down
      outs aout, aout

endin
</CsInstruments>
<CsScore>
f1 0 8192 10 1

i 1 0 2.7 15	;filtering effect by using low number of tracks
i 1 + 2.7 500	;maximum number of tracks
e
</CsScore>
</CsoundSynthesizer>


L'exemple ci-dessus montre le suivi de partiel d'un signal d'analyse par distribution de fréquence instantanée et la resynthèse additive avec interpolation cubique de la phase.

Crédits

Auteur : Victor Lazzarini
Juin 2005

Nouveau greffon dans la version 5

Novembre 2004.