SuperCollider : TempsLogiqueTempsPhysique

SuperCollider :: Categories :: PageIndex :: RecentChanges :: RecentlyCommented :: Login/Register
Most recent edit on 2007-07-04 18:48:22 by SuperCollider

Additions:
Le Temps< Index > Routines

Temps logique, temps physique





Edited on 2007-05-30 15:54:33 by SuperCollider

Additions:
! Sil la latence donnée en argument n'est pas suffisante, on a en retour le ou les messages "late x.yyyyy" ; rien ne garantit plus dans ce cas la synchronisation des évenements.

Deletions:
! Sil la latence donnée en argument n'est pas suffisante, on a en retour le ou les messages "late x.yyyyy"



Oldest known version of this page was edited on 2007-05-30 15:52:58 by SuperCollider []
Page view:
soit:
s.sendBundle(temps, {... fonction pour le serveur...})

le temps de latence donné en argument sera parfaitement respecté si:

latence donnée en argument > ( temps de processing + temps d'envoi du message sur le réseau + latence de l'interface audio)


Par exemple:
SynthDef(\sinGrain, { |freq = 440, amp = 0.4, bus = 0|
OffsetOut.ar(bus, SinOsc.ar(freq, 0, amp) * EnvGen.kr(Env.perc(0.01, 0.1), doneAction: 2));
}).send(s);

(
s.makeBundle(5, { Synth(\sinGrain) }); //temps logique : 5 secondes

{ (1..5000000) + 1; }.bench; //un calcul quelconque nécessitant des ressources du cpu (bench donne le temps passé à l'effectuer)

s.makeBundle(5, { Synth(\sinGrain, [freq: 880, bus: 1]) }); //un nouvel envoi, avec le même temps logique (5s.)
)

Le second message est envoyé quelques secondes après le premier, mais les deux notes sonnent rigoureusement en même temps.

On peut donc lancer plusieurs threads portant le même temps logique, un après l'autre, ils seront synchronisés au final.

! Sil la latence donnée en argument n'est pas suffisante, on a en retour le ou les messages "late x.yyyyy"
Valid XHTML 1.0 Transitional :: Valid CSS :: Powered by Wikka Wakka Wiki 1.1.6.3
Page was generated in 0.1555 seconds