trcross — Streaming partial track cross-synthesis.


The trcross opcode takes two inputs containg TRACKS pv streaming signals (as generated, for instance by partials) and cross-synthesises them into a single TRACKS stream. Two different modes of operation are used: mode 0, cross-synthesis by multiplication of the amplitudes of the two inputs and mode 1, cross-synthesis by the substititution of the amplitudes of input 1 by the input 2. Frequencies and phases of input 1 are preserved in the output. The cross-synthesis is done by matching tracks between the two inputs using a 'search interval'. The matching algorithm will look for tracks in the second input that are within the search interval around each track in the first input. This interval can be changed at the control rate. Wider search intervals will find more matches.


fsig trcross fin1, fin2, ksearch, kdepth [, kmode] 


fsig -- output pv stream in TRACKS format

fin1 -- first input pv stream in TRACKS format.

fin2 -- second input pv stream in TRACKS format

ksearch -- search interval ratio, defining a 'search area' around each track of 1st input for matching purposes.

kdepth -- depth of effect (0-1).

kmode -- mode of cross-synthesis. 0, multiplication of amplitudes (filtering), 1, subsitution of amplitudes of input 1 by input 2 (akin to vocoding). Defaults to 0.


Here is an example of the trcross opcode. It uses the file trcross.csd.

Example 1140. Example of the trcross opcode.

See the sections Real-time Audio and Command Line Flags for more information on using command line flags.

; 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

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

instr 1

ain1 diskin2 "drumsMlp.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

f1 0 8192 10 1

i 1 0 3 0
i 1 5 3 1


The example above shows partial tracking of two ifd-analysis signals, cross-synthesis, followed by the remix of the two parts of the spectrum and resynthesis.

See also

Tools for Real-time Spectral Processing (pvs opcodes)


Author: Victor Lazzarini
February 2006

New in Csound 5.01