How can I set something to loop at a variable rate?

Let’s say for example I have a blueprint that I want to play a certain sound every X seconds based on the speed at which an actor is moving. How would I do this?

I tried to create a loop with a delay that is set by a float that changes(inversely). The problem is when the float creates really long delays and the float changes, it has to wait for the really long delay to finish before it can start looping at the new shorter rate.

What’s the easiest way I could do this? I’m trying to mess around with retriggerable delays and bools and checks for changes in the float but I feel like I’m making this too complicated.

One way is to use a timer to “attempt” the action but branch it with a check against the time passed.

Like this.
You can adjust 'Next Time" wherever and however you like, and the action will delay until game time in seconds reaches that value.

only repeat one time is possible you provide me un example? not work for me, thanks