upsamp
Prev | Orchestra Opcodes and Operators | Next

## upsamp

upsamp — Modify a signal by up-sampling.

## Description

Modify a signal by up-sampling.

## Syntax

    ares upsamp ksig

## Performance

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 1144. 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

Prev | Up | Next
unwrap | Home | urandom