Slow Wave Generator ???
hi,confused about the speed of the Wave Generator. Is the speed of the wave generator not correct?When doing testes I find out that the generator runs slower then I expect. With frequency sett to 1Hz the Wave Generator uses between 1.1 and 1.57 seconds for one cycle.When compering Wave Generator with Envelope Generator the Wave Generator runs slower.See image and atacthe .izz fileThanks TiloIsadora Core 1.3.0f24 // imac / OS X 10.8.2 / 3.2 GHz Intel Core i3 / 4GB / / mbp OS X 10.6.8 / 2.53 GHz Intel Core 2 Duo / 4GB
I did some tests too. However I never needed precise timing so far but neither Wave generator nor Envelope put out correct time in my test. Or the Timer itself is at fault.Try my test patch by triggering 10 times and you see the mistake is rather obvious.
Dear All,I'm looking at Vanakaru's patch right now, but it seems to work within tolerances. Remember, all actors having to do with time are run by the "General Service Task" which is set in the General tab of the Preferences. At 30 fps, and a GST setting of 8x, that means 240x per second.My tests show that the Envelope Generator takes between 1.000 and 1.005 seconds to complete. Given that the period of the General Service Task (as described above) is 4.167 mS, that makes sense. Why? Because the timer can't be more accurate than the frequency at which it's called.The problem of course is if you're patch is running at a very slow frame rate.For example, if you're patch is running at 4FPS, that means that the General Service Task will also be limited to that rate. (Check the "Cycles" value in the Status Window -- that's how often the General Service Task is being executed.) Thus, the accuracy will be between 1.000 and 1.250 seconds -- it can be off by 1/4 of a second because that's how often the patch is being executed. (Note that the measured times in all of these actors absolute, using QuickTime's internal microsecond timer -- it's just that the actor itself might be executed late, and so it's output will be sent late.)I _am_ seeing something a bit "funny" with the Wave Generator, and I'll need to check this further.But suffice to say that the accuracy of any timing function in Isadora is affected by the "Cycles" value seen in the Status Window, which is how often the General Service Task is being (i.e., everything in your patch) is being executed. As this value gets lower, accuracy will suffer.Best Wishes,Mark
Again, it is not the problem for me. My projects do not call for accurate timing. But I see many discussions here about sync and frame accuracy., So I can see shifting problems in some situations. I remember EyesWeb used to have general pulse generator where you could set the precise time in ms. I have not used this program for years and having no windows at hand I can not check how this worked. Maybe it would be good to do something similar in Isadora too. An actor that bangs in set time from QT timer regardless frame rate and service task.I wonder if external timing device like MIDI clock will be more consistent?
A possible approach is to create 2 isadora patches, running in separate Isadora windows, communicating via OSC.
1 can be your control/timing interface
and the other playback.
My initial test seem to show increased CPU efficiency in this manner (windows 7 64b), this in turn should allow higher cycle rates, and therefore; quick response times to triggers
I get the impression that each Isadora window opens a new primary thread? @Mark, does this make sense/truth?
PS: Mark you just inspired me to change the way I am receiving time triggers in a lightshow I am producing right now. I was watching for a time count, and reacting if this value was received using the "inside range" actor with a default spread of 100 ms for my values to catch.. Seems with your explanation I should be able to calculate the difference between low and high value based on the cycle rate, maybe setting it to be twice the cycle time, so that it will always have a chance to catch, even if the framerate takes a huge dive.
In any-case, always appreciate your post that give more insight into the inner working of Izzy.
Thanks Mark,this is interesting. The timing of the Envelope generator is precise enough for my use, with "normal" variation of 0,005 seconds. But with variation up to 0,15 seconds with the wave generator may patch gets completely out of sync after a while.Good suggestion DusX. Maybe this a solution for me. Have to try this. ThanksTilo
another option, if you are wanting linear triggering is : http://www.duration.cc/
I have only tested the outgoing OSC, but you can control it from Isaodra as well.. perhaps opening a timeline per scene..??
In any case I have tested this and found it to be very easy to use.
wow! Nice application. It want help me with this issue, but super us full for many other thing I work on. I have ben looking for something like this for a long time.Thanks