tempo to samples conversion?

mcQ's icon

I'm using Max as a host and REAPER as a slave right now, and I'm trying use a "position $1" message to set the start position in REAPER, but I dont know a proper tempo to samples conversion method.
As an example, if I have REAPER's tempo set to 60, and I have a song thats 4 beats long and I want to set the song to start on beat 3, what conversion method would I use?

Thanks.

broc's icon

The duration of 1 beat is 60/BPM seconds.
The number of samples per second is defined by the sample rate SR.
So the number of samples per beat is (60/BPM)*SR.

Example: BPM=120, SR=44100.

(60/120)*44100 = 22050 samples per beat.

Gregory Taylor's icon

Look at the translate object

broc's icon

Note however that translate doesn't calculate the samples.
But you can translate beat to ms and then multiply with sample rate (in kHz).

Andrew Pask's icon

Yeah translate has samples as both input and output format options.

-A

broc's icon

Oops, my bad! Thanks for clarifying.

Andrew Pask's icon

There's a bug in it though. It only works at 44.1k SR in Max 5.x. The bug is one of those nasty "but we have to rewrite the whole way MSP works in order to fix it" type things. Hopefully it will get some love for the next major revision.

-A