trmix

trmix — Streaming partial track mixing.

Description

The trmix opcode takes two inputs containg TRACKS pv streaming signals (as generated, for instance by partials) and mixes them into a single TRACKS stream. Tracks will be mixed up to the available space (defined by the original number of FFT bins in the analysed signals). If the sum of the input tracks exceeds this space, the higher-ordered tracks in the second input will be pruned.

Syntax

fsig trmix fin1, fin2 

Performance

fsig -- output pv stream in TRACKS format

fin1 -- first input pv stream in TRACKS format.

fin2 -- second input pv stream in TRACKS format

Examples

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

Example 952. Example of the trmix opcode.

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

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

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

instr 1

ain	diskin2	"fox.wav", 1
fs1,fsi2 pvsifd ain, 2048, 512, 1		; ifd analysis
fst	partials fs1, fsi2, .003, 1, 3, 500	; partial tracking
fslo,fshi trsplit fst, 1000			; split partial tracks at 1000 Hz
fscl	trscale	fshi, 1.3			; shift the upper tracks
fmix	trmix	fslo,fscl			; mix the shifted and unshifted tracks
aout	tradsyn	fmix, 1, 1, 500, 1		; resynthesis of tracks
	outs    aout, aout

endin
</CsInstruments>
<CsScore>
f1 0 8192 10 1	;sine wave

i 1 0 3
e
</CsScore>
</CsoundSynthesizer>


The example above shows partial tracking of an ifd-analysis signal, frequency splitting and pitch shifting of the upper part of the spectrum, followed by the remix of the two parts of the spectrum and resynthesis.

Credits

Author: Victor Lazzarini
February 2006

New in Csound 5.01