beats.bars.units for values larger than 1 bar

centre ville's icon

Hi,

I'm probably missing something really simple here, but I'm trying to work out what the values would be for a higher bar number than 1

Here are the values as given in the max time format syntax - but this only goes up to 1 bar

1nd, 1n, 1nt, 2nd, 2n, 2nt, 4nd, 4n, 4nt, 8nd, 8n, 8nt, 16nd, 16n, 16nt, 32nd, 32n, 32nt, 64nd, 64n, 128n

So Im wondering how to calculate the values for higher than 1 bar (e.g. 2 bars, 4 bars etc) - which still need to use triplets and dotted.

Is it possible to just multiple the amount of ms by a factor of 2., or 4. - will the dotted and triplet versions still be calculated correctly?

Here's a patch to explain what I mean:

Max Patch
Copy patch and select New From Clipboard in Max.

By this logic, if I multiply by 2 (2 bars), then 2/1T value would be "1 1 160" and the 2/1D value would be "3 0 0" - is that correct?

Christopher Dobrian's icon

I didn't understand your last sentence, but your patch shows that you've found the key to your question, which is the translate object.

When expressing time in bbu format, it's important to understand the distinction between a position in time (a specific location on the transport's timeline, in terms of bars, beats, and ticks) and an interval of time (an amount of time). In the timepoint object, for example, you're specifying a precise moment in time, bar 2 beat 1 exactly, whereas for something like the line~ object you're specifying an amount of time, 2 measures exactly, for it to reach its destination. In conversation we might use similar expressions to say these two things: "bar two" or "two bars"; but it's important to keep in mind that they're different things, and are expressed differently in bbu units. (See this example: MSP transport demo)

Max Patch
Copy patch and select New From Clipboard in Max.

You can also just specify a time interval in terms of a number of beats, then multiply that by 480 to get the number of ticks.

centre ville's icon

Hi Christopher,

Thanks. Not sure why the last sentence wasn't clear? I'm multiplying by a factor of 2 (if the 2 message is pressed) in the patch to arrive at "1 1 160" for 2/1T

So 1n multiplied by 2 = "2 0 0"
And 1nt multiplied by 2 = "1 1 160"

For M4L, I'll be using Live's transport, so I'm guessing I'm talking about the "position in time"?

In this case, is the calculation I'm using correct? e.g.

2 bars (2/1) = "2 0 0"
2 bars triplet (2/1T) = "1 1 160"
2 bars dotted (2/1D) = "3 0 0"