Setting tempo (BPM) from the plugin

Hello,

I’m working on a plugin that gets the BPM info from the host, and performs further processing based on it. I was able to successfully get the current position and BPM info from the host using AudioPlayHead::CurrentPositionInfo.

I have a question regarding resetting the BPM (Beats Per Minute) to its default value. . I understand one approach is MiDi messages, but I’m uncertain if I can do it from the plugin.

Could someone help with the correct approach for setting the BPM back to default from within a plugin?

Setting the host BPM from a plugin is not a standard feature of the plugin formats Juce covers.

1 Like

I have no experience at all with it but it might be something you can do with ARA plugins ( Audio Random Access - Wikipedia ), JUCE has some API for ARA. Be aware that not all DAWs support ARA plugins though…

1 Like

Using ARA for something as seemingly simple as this seems like overkill, since ARA is a pretty complicated thing to get into. (In addition to the problem that not at all hosts even support it.)

Another thing to think of from a workflow perspective: Depending on the host, tempo is no global setting but something that can change over the timeline, e.g. if I mix an entire live recording of a concert in Pro Tools I tend to set a new tempo for each song in the tempo timeline. And while long live recording projects might seem like a rather special use case, there are even songs that change tempo and time signature and this is obviously why a lot of hosts have a tempo timeline. How do you expect your plugin to control the tempo of a project in such scenarios where there is no single global tempo for a project?

I’m not even sure if an API exists to control the tempo of a host, but you might need to think through all possible workflows and use cases that might exist out there to evaluate if the feature that you have in might would work in all those cases. Would you mind sharing a few more details about what your plugin does? Maybe there is another possible solution to your problem.