# Wave chop, why is a shorter period actually longer?

in the Wave CHOP I believe that a shorter period, (lower number) means that more cycles of the wave are cycled through in a certain amount of time. However, I have noticed that after a certain point, in my observation lower than .018, the period actually gets longer. Why is this?

I am using a Wave chop and a copy chop to trigger a Text DAT script a number of times (over a period of time), and would like to trigger it faster but when I make the period too short, it actually cycles fewer times during the channel length time.

Why is this, and, if it is unavoidable, how else can I trigger a script x number of times of a certain length of time.

Thank you

This is probably best explained with interpolation. Let’s say you are using a default Wave CHOP then a Period as small as 0.018 seconds means that at 10 seconds long you would like to cycle about 555 times. A 10 second CHOP only has (taking that the FPS is set to 60) 600 samples though - so you will see interpolation artifacts which can lead to the result you are describing.

In general you could say that a minimum Period of 4 Samples would be required for a full sin cycle. Ramps could be 2 Samples, Triangle needs 3 Samples, proper Square needs 4 samples and Pulse again 2 Samples.
Therefor with an FPS of 60, you can only produce 30 reliable “off to on” trigger events when using a Pulse type Wave.

cheers
Markus

Ahh! Nicely explained thank you. So, do you have an idea of how I could rapidly trigger a script a certain number of times?

I can’t use a for loop because it is immediate. I can’t use a for loop with Python’s sleep because it just freezes, but I can’t use the Wave → Copy because of this interpolation issue. Is the best solution to just up the sample rate in the wave CHOP?

Would a LFO CHOP be useful to trigger the script? You would still run into the problem that you can only trigger a maximum of FPS/2 events per second but maybe the LFO has easier controls for what you want to do?

cheers
Markus

Ah, yes, the LFO would be nice but (unless I am mistaken) I can’t “trigger” using the copy CHOP as I can with a wave.

This has been a quite educational though, thank you. One more question, again sorry for your time, but are there potential problems with adjusting the sample rate above me.time.rate?

You can reset the LFO via it’s 2nd input. It also has a “Reset Condition” parameter. So for example setting it to “Wihle Off” and using a momentary Button as input, the LFO will only run when the Button is enabled. Now you could extend that network with a Speed, Count or Trigger CHOP or even a Timer CHOP to run the LFO only over a predetermined amount of time.

You can run a whole component at a different sample rate using the Time COMP, the compoennt and everything it contains would then run at a different sample rate then the main timeline.
Also you could set the Execute DAT to execute on While On instead of On to Off.

Can I ask what the overarching goal is? There might be a better answer to your question depending on the context.

Cheers
Markus