trshift

trshift — Streaming partial track frequency scaling.

Description

The trshift opcode takes an input containg a TRACKS pv streaming signal (as generated, for instance by partials) and shifts all frequencies by a k-rate frequency. It can also, optionally, scale the gain of the signal by a k-rate amount (default 1). The result is frequency shifting of the input tracks.

Syntax

fsig trshift fin, kpshift[, kgain]

Performance

fsig -- output pv stream in TRACKS format

fin -- input pv stream in TRACKS format

kshift -- frequency shift in Hz

kgain -- amplitude scaling (default 1)

Examples

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

Example 1119. Example of the trshift 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 trshift.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>

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

instr 1

kpsft   = p4
ain	diskin2	  "fox.wav", 1
fs1, fsi2 pvsifd  ain, 2048, 512, 1            ; ifd analysis
fst     partials  fs1, fsi2, 0.003, 1, 3, 500  ; partial tracking
fscl    trshift   fst, kpsft                   ; frequency shift
aout    tradsyn   fscl, 1, 1, 500, 1           ; resynthesis
        outs aout, aout

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

i 1 0 3 150	;adds 150Hz to all tracks
i 1 + 3 500	;adds 500Hz to all tracks
e
</CsScore>
</CsoundSynthesizer>


The example above shows partial tracking of an ifd-analysis signal and linear additive resynthesis with frequency shifting.

Credits

Author: Victor Lazzarini
February 2006

New in Csound 5.01