upsamp
Modify a signal by up-sampling.
Syntax
upsamp converts a control signal to an audio signal. It does it by simple repetition of the kval. upsamp is a slightly more efficient form of the assignment, asig = ksig.
Examples
Here is an example of the upsamp opcode. It uses the file upsamp.csd.
Example of the upsamp opcode. |
---|
| <CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-odac ;;;realtime audio out
;-iadc ;;;uncomment -iadc if RT audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o upsamp.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
;;with code from Steven Cook / David Akbari, Menno Knevel and Joachim Heintz
sr = 44100
ksmps = 32
nchnls = 2
0dbfs = 1
seed 0
opcode Decimator, a, akk ;UDO Sample rate / Bit depth reducer
;see http://www.csounds.com/udo/displayOpcode.php?opcode_id=73
setksmps 1
ain, kbit, ksrate xin
kbits = 2^kbit ;bit depth (1 to 16)
kfold = (sr/ksrate) ;sample rate
kin downsamp ain ;convert to kr
kin = (kin+0dbfs) ;add DC to avoid (-)
kin = kin*(kbits/(0dbfs*2)) ;scale signal level
kin = int(kin) ;quantise
aout upsamp kin ;convert to sr
aout = aout*(2/kbits)-0dbfs ;rescale and remove DC
a0ut fold aout, kfold ;resample
xout a0ut
endop
instr 1 ;avoid playing this too loud
kbit = p4
ksr = 44100
asig diskin "fox.wav", 1
aout Decimator asig, kbit, ksr
printks "bitrate = %d, ", 3, kbit
printks "with samplerate = %d\\n", 3, ksr
outs aout*.7, aout*.7
endin
instr 2 ;moving randomly between different bit values (1 - 6)
kbit randomi 1, 6, .5, 1
asig diskin "fox.wav", 1, 0, 1 ;loop play
aout Decimator asig, kbit, 44100
printks "bitrate = %f\n", .3, kbit
outs aout*.7, aout*.7
endin
</CsInstruments>
<CsScore>
i 1 0 3 16 ;sounds allright but
i 1 + 3 5 ;it's getting worse
i 1 + 3 2 ;and worse...
i 2 9 22 ;or quality moves randomly
e
</CsScore>
</CsoundSynthesizer>
|
See also
Sample Level Operators