|Home · Standalone · rtcmix~ · iRTcmix · Tutorials · Reference|
an open-source digital signal processing and sound synthesis language
|about · links · contact|
TRANS3 -- pitch-transposiion using 3rd-order interpolation
quick syntax:TRANS3(outsk, insk, dur, AMP, TRANSP[, inputchan, PAN])
CAPITALIZED parameters are pfield-enabled for table or dynamic control (see the maketable or makeconnection scorefile commands). Parameters after the [bracket] are optional and default to 0 unless otherwise noted.
p0 = output start time (seconds) p1 = input start time (seconds) p2 = output duration (or endtime if negative) (seconds) p3 = amplitude multiplier (relative multiplier of input signal) p4 = interval of transposition (oct.pc) p5 = input channel [optional; default is 0] p6 = pan (0-1 stereo; 0.5 is middle) [optional; default is 0] p3 (amplitude), p4 (transposition) and p6 (pan) can receive dynamic updates from a table or real-time control source. Author: Doug Scott; rev. for v4 by JG, 2/11/06
TRANS3 transposes the input for the specified output duration (p2), starting at the input start time (p1). It has the same syntax as TRANS and is used in the same fashion. The difference is that TRANS3 uses 3rd-order interpolation to achieve the pitch-shift. This is s a bit more expensive computationally, but it does produce smoother results.
Usage NotesThe use of TRANS3 is identical to the TRANS instrument. See the TRANS Usage Notes for more information.
Sample Scoresvery basic:
rtsetparams(44100, 2) load("TRANS") // note that TRANS3 is loaded in the TRANS library rtinput("mysound.aif") trans = -0.02 // do both channels of a stereo input file TRANS3(outskip=1, inskip=2, dur=4, amp=1, trans, inchan=0, pan=0) TRANS3(outskip=1, inskip=2, dur=4, amp=1, trans, inchan=1, pan=1)
slightly more advanced:
rtsetparams(44100, 2) load("TRANS") rtinput("mysound.aif") start = 0 inskip = 0 dur = 7.8 amp = 1.0 ampenv = maketable("line", 1000, 0,0, 1,1, 7,1, 7.8,0) low = octpch(-0.05) high = octpch(0.03) transp = maketable("line", "nonorm", 1000, 0,0, 1,low, 3,high) transp = makeconverter(transp, "pchoct") /* This transposition starts at 0, moves down by a perfect fourth (-0.05), then up to a minor third (0.03) above the starting transposition. The table is expressed in linear octaves, then converted to octave.pc by the call to makeconverter. */ TRANS3(start, inskip, dur, amp*ampenv, transp)
See Alsomaketable, makeconverter, MOCKBEND, SCRUB, TRANS, TRANSBEND, PVOC