scans

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

Description

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 les fichiers scans.csd, et string-128.matrix.

Exemple 813. 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 =   128
    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.matrix"
   
; 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 814. Second exemple de l'opcode scans.

<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-odac   ;;;realtime audio out
;-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"	; 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 "spiral-8,16,128,2,1over2"

s
i2 0  5  63 6.00 1 .9 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 .9 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