Get Beat Tempo - Whats the purpose?

Hi there,

Probably seems like a dumb question, but how does Get Beat Tempo work? And how would it be used to offer additional functionality over just doing the math manually and using variables? Logically speaking, it doesn’t make sense to use it if you can just do the math manually, and get the same result, unless I’m just misunderstanding its functionality completely.

Note: there is ZERO mention of this node anywhere on the forums or online in general, so I’ve got nothing to aid in my understanding of it at all, so sorry if this is me just not grasping something obvious.

So basically, to me, it seems like it’s just a pass through node? with no actual functionality other than holding a float value and passing it through to other nodes. Feel free to correct me if I’m wrong, and educate me on it’s functionality.

Here’s a rough idea of what I’m trying to do, and why I’m even asking about its purpose;

Project: Make a music video in UE4

I’m trying to trigger an animation on a character every x beats @ 128 bpm. For the sake of the example, let’s say I want to make that animation trigger every 8 bars, I’d need to trigger the animation on a timer every 15 seconds of game time (using get game time in seconds) if my track is 3 minutes long exactly.

So what would even be the purpose of me trying to use Get Beat Tempo if I can just do the math to get the second conversion to beats/bars to figure out how often to trigger it once play begins?

Thanks in advanced for any help understanding the purpose of this node, it’s very appreciated!

Hi sinarisinestro.

There is one small reference to this function in the API documentation. Get Beat Tempo | Unreal Engine Documentation

It’s not much. But does that help offer any clarity?

Unfortunately, no it doesn’t. It’s the same info I have available on the tool tip for it in the engine, which I hate to say from a Music Producer (me) perspective, doesn’t make much sense seeing as its so vague. Just doesn’t make sense why that node exists if all it does is pass through variables.

I’m hoping to get clarification from one of the Epic Staff members from the Audio Department on this one before I get my hands really dirty in the engine working on this video.

Thank you for trying to help though, it’s appreciated! [USER=“9”]Stephen Ellis[/USER] if you know anyone from the Audio Dept, could you possibly put me in contact with them? Doubt this is a question that will get properly answered otherwise

Hi @sinarisinestro,

This function calculates the time in seconds of a music pulse.

As a music producer, you may wish to create delays or timers, etc. for Blueprint implemented music. As such, you will want functions that enable you to calculate music information (like BPM, number of notes, and type of note) in a way that is useful for other BP functions, like seconds for Delays.

In this case, you want to give the function the following information:

Beats Per Minute
Number of Notes
Type of Note

And it will return a time value in Seconds.

There might be a way to word it differently, there are some differences I would make to the calculation, certainly, but as it is, it should suffice and it’s quite flexible.

Aha, okay, this helps a ton, thank you @dan.reynolds

So essentially, this acts as a information source to feed it to functions & does all the calculation for you. I’m not sure I grasp the difference (yet) between doing it this way, and doing it manually with custom made variables, other than convenience & workflow, but that probably is due to my fairly small amount of experience in the engine.

This gives me a fair bit to think about, and helps me to aim for the right direction moving forward with work on this project, so thank you once again. Hopefully this will help clarify any confusion for others who may want to try something like this in UE, in the future as well.

One last question; is there any way to tie this into a “playsound” (or equivalent) node to where it is automatically grabbing the info for this node? I’m more than happy to figure it out myself, just a simple yes or no would be awesome. Asking because that would help tremendously with workflow, and might make it plausible to do something for each track on an EP.

What do you mean by “automatically grabbing the info for this node?”

This function just does a math equation. The output is a time value in seconds. What do you want the PlaySound function to do with that information?