times

times — Lit le temps absolu en secondes.

Description

Lit le temps absolu en secondes, depuis le début de l'exécution.

Syntaxe

ires times
kres times

Exécution

Le temps en secondes est donné par times. Il retournera 0.5 après une demi-seconde.

times produit une variable de taux-k en sortie. Il n'y a pas de paramètres d'entrée.

times peut aussi opérer au démarrage de l'instance de l'instrument. Il produit alors une variable de taux-i (préfixée par i ou gi) en sortie.

Exemples

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

Exemple 964. Exemple de l'opcode times.

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 
-odac     ;;;realtime audio out 
;-iadc    ;;;uncomment -iadc if realtime audio input is needed too 
; For Non-realtime ouput leave only the line below: 
; -o times_complex.wav -W ;;; for file output any platform 
</CsOptions>
<CsInstruments>
 
;by joachim heintz and rory walsh 
sr = 44100 
ksmps = 32 
nchnls = 2 
0dbfs = 1 

giWave   ftgen      0, 0, 1024, 10, 1, .5, .25 

instr again 

instance =          p4 
 ;reset the duration of this instance 
iDur     rnd31      5, 3				;shorter values are more probable 
iDur     =          abs(iDur) + 0.2 
p3       =          iDur 
 ;trigger the effect instrument of this instance 
         event_i    "i", "fx_processor", 0, iDur, instance 
 ;print the status quo 
kTime    times 
         prints     "instance = %d, start = %f, duration = %f\n", instance, i(kTime), iDur 
 ;make sound 
iamp     active     1					;scale amplitudes 
iOct     random     5, 10				;find pitch 
aEnv     transeg    0, 0.02, 0, 1/iamp, p3-0.02, -6, 0	;output envelope 
aSend    poscil     aEnv, cpsoct(iOct), giWave		;audio signal 
 ;send signal to effect instrument 
Sbus     sprintf    "audio_%d", instance		;create unique software bus 
         chnset     aSend/2, Sbus			;send audio on this bus 
 ;get the last k-cycle of this instance and trigger the successor in it 
kLast    release 
         schedkwhen kLast, 0, 0, "again", 0, 1, instance+1 
endin 

instr fx_processor 
 ;apply feedback delay to the above instrument 
iwhich    =         p4					;receive instance number ... 
Sbus      sprintf   "audio_%d", iwhich			; ... and related software bus 
audio     chnget    Sbus				;receive audio on this bus 
irvbtim   random    1, 5				;find reverb time 
p3        =         p3+irvbtim				;adjust instrument duration 
iltptmL   random    .1, .5				;find looptime left ... 
iltptmR   random    .1, .5				;...and right 
ipan      random    0, 1				; pan and ... 
imix      random    0, 1				;... mix audio 
aL,aR     pan2      audio, ipan				;create stereo 
awetL     comb      aL, irvbtim, iltptmL		;comb filter 
awetR     comb      aR, irvbtim, iltptmR 
aoutL     ntrpol    aL, awetL, imix			;wet-dry mix 
aoutR     ntrpol    aR, awetR, imix 
          outs      aoutL/2, aoutR/2 
endin 

</CsInstruments>
<CsScore>
 
i "again" 0 1 1 

e 3600 
</CsScore>
</CsoundSynthesizer>


Sa sortie contiendra des lignes comme celles-ci :

new alloc for instr again:
instance = 1, start = 0.000000, duration = 0.650439
new alloc for instr fx_processor:
instance = 2, start = 0.650884, duration = 0.411043
new alloc for instr fx_processor:
instance = 3, start = 1.061587, duration = 0.231085
new alloc for instr fx_processor:
instance = 4, start = 1.292336, duration = 0.543473
new alloc for instr fx_processor:
instance = 5, start = 1.835828, duration = 1.777097

Voir aussi

timeinstk, timeinsts, timek

Crédits

Auteur : Robin Whittle
Australie
Mai 1997