trcross — Synthèse croisée à flot de suivi de partiels.
L'opcode trcross prend deux entrées contenant des flots de signal TRACKS pv (tels que générés, par exemple, par partials) et en fait une synthèse croisée dans un flot TRACKS unique. Deux modes d'opération différents sont utilisés : mode 0, synthèse croisée par multiplication de l'amplitude des deux entrées et mode 1, synthèse croisée par remplacement des amplitudes de l'entrée 1 par celles de l'entrée 2. Les fréquences et les phases de l'entrée 1 sont conservées dans la sortie. La synthèse croisée est réalisée en assortissant les canaux entre les deux entrées en utilisant un "intervalle de recherche". L'algorithme d'assortiment cherche dans la seconde entrée les canaux qui se trouvent dans l'intervalle de recherche entourant chaque canal de la première entrée. On peut changer cet intervalle au taux de contrôle. Plus les intervalles sont larges et plus on trouve d'assortiments.
fsig -- flot pv de sortie au format TRACKS.
fin1 -- premier flot pv d'entrée au format TRACKS.
fin2 -- second flot pv d'entrée au format TRACKS.
ksearch -- rapport de l'intervalle de recherche définissant une "zone de recherche" autour de chaque canal de la première entrée pour l'assortiment.
kdepth -- importance de l'effet (entre 0 et 1).
kmode -- mode de synthèse croisée. 0, multiplication des amplitudes (filtrage), 1, remplacement des amplitudes de l'entrée 1 par celles de l'entrée 2 (comme pour le vocodeur). Vaut 0 par défaut.
Voici un exemple de l'opcode trcross. Il utilise le fichier trcross.csd.
Exemple 1113. Exemple de l'opcode trcross.
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 trcross.wav -W ;;; for file output any platform </CsOptions> <CsInstruments> sr = 44100 ksmps = 32 nchnls = 2 0dbfs = 1 instr 1 ain1 diskin2 "beats.wav", 1, 0, 1 ain2 diskin2 "fox.wav", 1 imode = p4 fs1,fsi2 pvsifd ain1, 2048, 512, 1 ; ifd analysis fst partials fs1, fsi2, .01, 1, 3, 500 ; partial tracking fs11,fsi12 pvsifd ain2, 2048, 512, 1 ; ifd analysis (second input) fst1 partials fs11, fsi12, .01, 1, 3, 500 ; partial tracking (second input fcr trcross fst, fst1, 1.05, 1, imode ; cross-synthesis (mode 0 and mode 1) aout tradsyn fcr, 1, 1, 500, 1 ; resynthesis of tracks outs aout*3, aout*3 endin </CsInstruments> <CsScore> f1 0 8192 10 1 i 1 0 3 0 i 1 5 3 1 e </CsScore> </CsoundSynthesizer>
L'exemple ci-dessus montre le suivi de partiels de deux signaux d'analyse par distribution de fréquence instantanée, la synthèse croisée suivie du remixage des deux parties du spectre et de la resynthèse.