Replace Time by BPM clock


Hi :slight_smile:
Is there a way in ISF to replace the uniform “Time” by a command who will use the clock in VDMX ?

I was looking for a command sheet with all the instruction something like this one :
Any suggestion ?

Is there any forum around ISF instead of using the vidvox one ?

Thank you :slight_smile:



Hey Z,

A few things…

The latest spec can be found here,
(and we are working on new reference pages for the ISF sharing site overhaul which is in development…)

As for the clock time, currently there isn’t a uniform for this, nor is there an easy way to pass in an absolute running (non-normalized) clock time from VDMX; your best bet is to use the various measure / beat time data-sources through a standard float input.

We’ll keep this in mind for the next version of the ISF spec; two initial details that come to mind would be…

  1. Though we designed ISF for VDMX, other apps now support it as a standard; This would add a burden of including a BPM based clock for host applications (for apps that didn’t have such a clock, we’d need to define some standard fallback behavior that hosts could implement)
  2. In VDMX you can have multiple clock plugins; which one should be used for this uniform? If we are going by the concept of multiple clocks being possible, perhaps this would be better off as a special type of float input that is declared in the JSON? Then VDMX could show a pop-up button that lists the possible clocks to sync to, like you’d get in the LFO / Step Sequencer / etc controls. Of course this goes back to the first point, not all apps have multiple clocks…


Yes the idea of a “Sync” command seems great !
As I am modifying an tesseract and creating my first shaders a lot of questions come to my mind ^^
And will work on some Float input to apply LFO and seq

Thank you for your answer



YHow about having a Automatic Uniform Variable Input for the VDMXBPM.

The solution I’ve been using in Vuo is to use their BPM to seconds. Which can be calculated:

bpmTime = 60 / VDMXBPM
bpmRatedTime = TIME / bpmTime

bpmTime = 60 / 120
bpmTime = 0.5

bpmRatedTime = (60secs) / 0.5
bpmRatedTime = 120secs

So there would have be 120 cycles represented as float time of 120.0 secs
At 60secs elapsed TIME

And for using measures.

bpmRatedTime = TIME / (bpmTime * 4)

In this case there would be 30 cycles represented as float time of 30.0 seconds
At 60secs elapsed TIME.

You could also add in a rate slider and use that to to alter the bpmRatedTime even further.