scans — Génère une sortie audio au moyen de la synthèse par balayage.
Opcode du greffon scansyn.
Génère une sortie audio au moyen de la synthèse par balayage.
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.
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
Voici un exemple de synthèse par balayage. Il utilise le fichier scans.csd.
Exemple 933. 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 934. 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>
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.