upsamp
Prev | Opcodes et opérateurs de l'orchestre | Next

## upsamp

upsamp — Modifie un signal par sur-échantillonnage.

## Description

Modifie un signal par sur-échantillonnage.

## Syntaxe

    ares upsamp ksig

## Exécution

upsamp convertit un signal de contrôle en signal audio. Cela est réalisé par simple répétition de la kval. upsamp est une forme légèrement plus efficace de l'affectation asig = ksig.

## Exemples

Voici un exemple de l'opcode upsamp. Il utilise le fichier upsamp.csd.

Example 960. Exemple de l'opcode upsamp.

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

## Voir aussi

diff, downsamp, integ, interp, samphold

Prev | Up | Next
until | Home | urandom