Skip to content

trscale

Streaming partial track frequency scaling.

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

Syntax

fsig trscale fin, kpitch [, kgain]

Performance

fsig -- output pv stream in TRACKS format

fin -- input pv stream in TRACKS format

kpitch -- frequency scaling

kgain -- amplitude scaling (default 1)

Examples

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

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

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

instr 1

kpitch  = p4
ain     diskin2 "fox.wav", 1
fs1,fsi2 pvsifd ain, 2048, 512, 1               ; ifd analysis
fst     partials fs1, fsi2, .003, 1, 3, 500     ; partial tracking
fscl    trscale fst, kpitch                     ; frequency scale
aout    tradsyn fscl, 1, 1, 500, 1              ; resynthesis 
        outs    aout, aout

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

i 1 0 3 1.5     ;up a 5th
i 1 3 3 3       ;two octaves higher
e
</CsScore>
</CsoundSynthesizer>

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

See also

Tools for Real-time Spectral Processing (pvs opcodes)

Credits

Author: Victor Lazzarini
February 2006

New in Csound 5.01