Tempo and Time Signature Map


I want a map of tempo and time signature vs. time, over the timeline as a DAW project plays and completes. I am aware that I can fill in an AudioPlayHead::CurrentPositionInfo object in processBlock() each time that processBlock() is called, and get the currentPositionInfo.bpm, currentPositionInfo.timeSigNumerator, and currentPositionInfo.timeSigDenominator values at the current moment currentPositionInfo.timeInSamples.

My question is: is there any other way to get this info and obtain this map besides waiting for processBlock() to run and building my own map?

I am pretty certain that I know the answer to this question, but I can’t help wonder if I have missed something.


In general this is not possible, but I do believe the ARA Audio Random Access sdk should enable you to get the information from hosts that support that.

There is a special ARA juce fork. I have never used it, but getting the entire time information somehow needs to be possible to make audio random access make sense. Maybe some of the JUCE_ARA users can chime in.

Thanks for the info. I didn’t know about ARA before.

The other way is import a midi file from the host, this is how Toontrack’s Superior Drummer 3 works.