scans
Précédent | Opcodes et opérateurs de l'orchestre | Suivant

## scans

scans — Génère une sortie audio au moyen de la synthèse par balayage.

## Description

Opcode du greffon scansyn.

Génère une sortie audio au moyen de la synthèse par balayage.

## Syntaxe

    ares scans kamp, kfreq, ifn, id [, iorder]

## Initialisation

ifn -- ftable contenant la trajectoire du balayage. C'est une série de nombres qui contiennent les adresses des masses. L'ordre de ces adresses est utilisé comme chemin de balayage. Ne doit pas contenir de valeurs supérieures au nombre de masses, ou des nombres négatifs. Voir l'introduction à la section sur la synthèse par balayage.

id -- numéro d'ID de la forme d'onde de l'opcode scanu à utiliser.

iorder (facultatif, 0 par défaut) -- ordre de l'interpolation utilisée en interne. Peut prendre n'importe quelle valeur comprise entre 1 et 4, et vaut 4 par défaut si la valeur donnée est en dehors de cet interval. 4 est l'interpolation quartique, 3 est l'interpolation cubique, 2 est l'interpolation quadratique et 1 l'interpolation linéaire. Les nombres les plus élevés donnent un traitement plus lent, mais pas nécessairement meilleur.

## Exécution

kamp -- amplitude de la sortie. Noter que l'amplitude résultante dépend aussi des valeurs instantanées de la table d'onde. Ce nombre est en fait la facteur de pondération de la table d'onde.

kfreq -- fréquence de balayage

## Exemples

Voici un exemple de synthèse par balayage. Il utilise le fichier scans.csd.

Exemple 917. Exemple de l'opcode scans.

Voir les sections Audio en Temps Réel et Options de la Ligne de Commande pour plus d'information sur l'utilisation des options de la ligne de commande.

    <CsoundSynthesizer>
    <CsOptions>
    ; Select audio/midi flags here according to platform
    ; Audio out   Audio in    No messages
    -odac      ;     -iadc     -d     ;;;RT audio I/O
    ; For Non-realtime ouput leave only the line below:
    ; -o scans.wav -W ;;; for file output any platform
    </CsOptions>
    <CsInstruments>

        sr =   44100
        ksmps =   32
        nchnls =   1

        instr 1
    a0  = 0
    ;   scanu init, irate, ifnvel, ifnmass, ifnstif, ifncentr, ifndamp, kmass, kstif, kcentr, kdamp, ileft, iright, kpos, kstrngth, ain, idisp, id
        scanu 1,     .01,    6,       2,       3,     4,        5,       2,     .1,    .1,     -.01,  .1,    .5,     0,    0,        a0,  1,     2
    ;ar scans kamp,      kfreq,      ifntraj, id
    a1  scans ampdb(p4), cpspch(p5), 7,       2
        out a1
        endin

    </CsInstruments>
    <CsScore>

    ; Initial condition
    f1 0 128 7 0 64 1 64 0

    ; Masses
    f2 0 128 -7 1 128 1

    ; Spring matrices
    f3 0 16384 -23 "string-128.matrxB"

    ; Centering force
    f4  0 128 -7 0 128 2

    ; Damping
    f5 0 128 -7 1 128 1

    ; Initial velocity
    f6 0 128 -7 0 128 0

    ; Trajectories
    f7 0 128 -5 .001 128 128

    ; Note list
    i1 0  10  86 6.00
    i1 11 14  86 7.00
    i1 15 20  86 5.00
    e

    </CsScore>
    </CsoundSynthesizer>

Voici un autre exemple de synthèse par balayage qui utilise des échantillons comme signal d'excitation. Il utilise le fichier scans-2.csd.

Exemple 918. Second exemple de l'opcode scans.

    <CsoundSynthesizer>
    <CsOptions>
    ; Select audio/midi flags here according to platform
    -odac  --limiter=0.9 ;;;realtime audio out & and limit loud sounds
    ;-iadc    ;;;uncomment -iadc if realtime audio input is needed too
    ; For Non-realtime ouput leave only the line below:
    ; -o scans-2.wav -W ;;; for file output any platform
    </CsOptions>
    <CsInstruments>

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

    strset 1, "mary.wav"
    strset 2, "fox.wav"

    instr 	2	;show 2 different trajectories, with samples as excitation signal

    ismp = p6
    iamp = p7
    itrj = p8
    aout soundin p6				;choose wave file
         scanu ismp, .01, 6, 2, 33, 44, 5, 2, .01, .05, -.05, .1, .5, 0, 0, aout, 1, 0
    asig scans iamp, cpspch(p5), itrj , 0
         outs asig, asig

    endin
    </CsInstruments>
    <CsScore>
    f1 0 128 7 0 64 1 64 0			; Initial condition
    f2 0 128 -7 1 128 0.3			; Masses
    f33 0 16384 -23 "cylinder-128,8.matrxB"	; Spring matrices
    f44 0 128 -7 2 4 0 124 2		; Centering force
    f5 0 128 -7 1 128 0			; Damping
    f6 0 128 -7 -.0 128 0			; Initial velocity
    f7 0 128 -5 .001 128 128		; Trajectories
    f77 0 128 -23 "128-spiral-8,16,128,2,1over2.traj"

    s
    i2 0  5  63 6.00 1 .15 7			;"mary.wav" &
    i2 6  5  60 7.00			;trajectory table 7
    i2 10 5  60 8.00

    s
    i2 0  5  63 6.00 2 .08 7		;"fox.wav", at much lower volume
    i2 6  5  60 7.00
    i2 10 5  60 8.00

    s
    i2 0  5  63 6.00 1 .2 77		;"mary.wav" &
    i2 6  5  60 7.00			;trajectory table 77
    i2 10 5  60 8.00

    s
    i2 0  5  63 6.00 2 .08 77		;"fox.wav", at much lower volume
    i2 6  5  60 7.00
    i2 10 5  60 8.00
    e
    </CsScore>
    </CsoundSynthesizer>

## Voir aussi

Le fichier de la matrice « string-128.matrix », ainsi que d'autres matrices, sont aussi disponibles dans un fichier zippé depuis la page Scanned Synthesis à cSounds.com.

Plus d'information sur cet opcode : http://www.csounds.com/stevenyi/scanned/yi_scannedSynthesis.html , écrit par Steven Yi.

## Crédits

Auteur : Paris Smaragdis
MIT Media Lab
Boston, Massachussetts USA

Nouveau dans la version 4.05 de Csound

Précédent | Niveau supérieur | Suivant
scanhammer | Sommaire | scantable