Article by Ghosteam | 26.07.2021

It’s time to Sync VJ Loops to BPM and flash those lights!

Syncing your visuals to BPM will help grab the attention of your viewers, especially on site – where the volume is loud (aka feel that bass). BPM sync has a huge benefit on the crowd’s experience with the music. Of course, it’s not a must at all times, but it’s good to have a starting point where you can have synced VJ Loops ready to go.

What is BPM?

BPM – Beats Per Minute, is the amount of times a beat hits in a minute. This is reflected in a number, averagely ranging from 110-160 in Electronic music.

It’s a way of measuring the tempo of the track/song. A good example of a BPM is heartrate – an average heartbeat ranges from 60 to 100 beats per minute.

When creating VJ Loops, it is useful to sync your loops to a specific BPM, then later on adjusting the clip in a VJ software like Resolume in order to adjust the clip to the BPM you are working with at the moment.

How does BPM translates into VJ Loops?

Each VJ Loop you create has a specific amount of frames. The amount of frames is calculated by the framerate you are using, multiplied by the length of the video.

For example: a 10 seconds video made with 30FPS, has 300 frames.
From that data, we can calculate the location of each beat along the timeline.

We usually sync our VJ Loops to 120BPM as a base, then speed it up according to our needs. It is always better to speed clips up, rather than slowing them down. Slowing clips down reduces their frame rate, which can look choppy on the screen.

If you want to have the option to slow clips down, you could render at 60FPS instead of 30FPS, which will enable you to slow the loops up to 50%.

How to Sync VJ Loops to BPM?

1. Manually

BPM calculator

Syncing BPM manually is perfect for any software that has a timeline. That means 2D, 3D or anything in between! It is frame based and requires a keyframe mechanism so you could manually drive your animation.

BPM Calculator

Using a BPM calculator, you can easily find out how many frames each beat occupies, then using that to to drive your keyframe animation.

In the example above, we input our BPM which is 120, then our frame rate which is 30 frames per second. Next, we hit “solve” and got the result of 15 frames per beat. That means our animation will happen in intervals of 15 frames.

The reason we sync our visuals to 120BPM is because 30fps and 120BPM fit perfectly, with an equal 15 frames gap. With 8 seconds long visuals, we end up with 240 frames which are a perfect cycle of beats. This way it’s easy to manually sync keyframes, so you know where is the next animation spot without calculating.

Keep repeating this until the end of your animation!

Quick note: In After Effects, you could add an expression to your animation
(Alt + right click the parameter) and type “loopOut(cycle)” . This will loop those keyframes over and over, which can save you lots of placement work!

Quick Example

Here we will manually position keyframes to control the luminance (emissive lightness) of a material in Cinema 4D. Working in 30FPS and syncing to 120BPM, we need to set each frame which is a multiplication of 15 (0,15,30,45 and so on) to be 100% lit.

Make a keyframe at frame 0 with the value you want to have for ON mode.
Then, you need to decide how fast it takes for the material turns off. For that we have 14 frames or less. (since on frame 15 you need to place another ON keyframe)

For a 15-frame period, we recommend placing the OFF keyframe at frame 10.
This will allow breathing time between the off & on mode and your animation will flow better.

Make sure the OFF keyframe is set to Step-Mode (Alt+T) in Cinema 4D (in After Effects, right click the keyframe and choose “Toggle Hold Keyframe“). This will hold the value of that OFF keyframes until the next ON keyframes, making sure the lightness won’t change until the next keyframe placement.

Now place another ON keyframe at frame 15, then another OFF keyframe at frame 25 and so on, until you reach the end of your timeline.

It should look like this:

Manual Keyframes BPM Sync

Adding a Buildup

If you want to have each flash starting with an increasing intensity,
add an OFF keyframe 2-3 frames before each ON keyframe. Make sure to set it
to linear or spline mode (Alt+S) in Cinema 4D. In After Effects, Ctrl+Click the keyframe in case it’s set to Toggle-Hold-Keyframe to release it back to a regular keyframe.

It will look like this:

Manual Keyframes BPM Increasing Intensity

Well done!

You have succesfully created a BPM sync in your VJ Loop.
Use this method for any value you wish.

You can also copy the keyframes between elements & offset them (to create a chase effect).

Manual Sync Conclusions


  • Free method
  • Have manual and full control over each keyframe


  • Lots of manual work and repetition
  • One change requires lots of modification

2. Signal Plugin (Cinema 4D)

Signal plugin for Cinema 4D

Signal, is a powerful plugin from Greyscalegorilla which lets you animate parameters in Cinema 4D without keyframes. It has various modules of animation that you can link to any parameters in Cinema 4D like linear, Sine, Noise, BPM and more!

We use this plugin a lot, even for simple animations, since it lets you setup
an animation sequence and easily change the time or parameter values, without messing around with manual keyframes.

For BPM sync, they built a special section that controls the beats animation (as seen in the image above).

How To Use Signal?

  1. in Cinema 4D, add the Signal tag on the object you want to animate
  2. Drag & Drop the parameter you want to animate on top of the tag.
  3. Click “Add Modifiers” and choose BPM.
  4. Enter the BPM count & the variation (the amount of which the parameter will change)
  5. That’s it! your parameter is now animating on the beats!

Using The Sequencer

The Signal sequencer lets you setup the exact curve of animation for each beat,
using measures and splines. Here is how to use them:

A measures is one round of beats (default is 16th which means you can control
1/16 of the measure. The default setup has every four red cubes connected,
which will result in four pulses for each Measure: 1-2-3-4, 1-2-3-4,
and on and on…You can connect the beat and have longer pulses if you click the gap-slots between the red boxes.

Splines represent the path of which the value is animating with each pulse.
Signal lets you add as many splines as you want, each spline will get its own color. When you click the cubes in the measure slot, it will change between splines, so you can assign each pulse a different spline to achieve diversity in your animation.

Signal Plugin Conclusions


  • No keyframes! Automation is so much fun.
  • Easy to adjust variables, time offsets & curves.
  • Lots of options to create variation in your animation.


  • Not available as a one time purchase.
  • Doesn’t seem like V2 of the plugin is in the works.
  • Some limitations still apply (for example, can’t use two signal tags on the same parameter).

Price: Nowadays only available via the Plus membership which is $49 a month (or $33.25 billed annually)

Get it Here: Signal by Greyscalegorilla

3. BeatEdit (After Effects)

BeatEdit for After Effects

When working in After Effects, BeatEdit is the weapon of choice for us
for automating keyframes to sync to the BPM. The plugin has many cool
features like BPM & Beat Detection, Marker creation, Beat looping, layer staggering and many more tools that work perfectly on the beat.

Here is a quick visual guide for the interface of the plugin:

BeatEdit UI

Our usual workflow to sync to the BPM in After Effects is to create BPM layer markers on a null object, so we can duplicate that layer across compositions and have a visual location of each beat. It looks like this:

BPM Indicator

You can even use the layer markers to combine manual animation from time to time for variation and detail.

You could animate any parameter using the plugin which makes it very useful.

The new BeatEdit is a new generation from the original BeatAssistant and has
lots of cool tools like BeatWiggle: a no-keyframe method of animating sliders, 2D or 3D layers. It comes with a lot of presets, like Steps Up – which allows you to move forward on a slider on the BPM, so you can create tons of visual effects using different sliders and movements.

You can find lots of tutorials and mini-tutorials on the plugin page.

BeatEdit Plugin Conclusions


  • Easy to work with.
  • Lots of various controls for keyframes and markers.


  • Honestly, couldn’t find any!

Price: $149

Get it here: BeatEdit by Mamoworld Tools

Now What?

Resolume BPM Sync

Congratulations! You have now synced your VJ Loop to the BPM.

The next step would be to feed that loop into a VJ software like Resolume.
Resolume makes it very easy to adjust a clip based on its BPM. All you have to do
is to drag that loop into your deck, then under the “Transport” tab, switch from
Timeline” to “BPM Sync“. That will indicate Resolume that this VJ Loop is synced
to the BPM. Under the “Beats” settings, you’ll see the default is 16 which is the correct value for our setup, which was 240 frames at 30FPS in 120BPM (meaning 15 frames per beat).
15 (frames per beat) x 16 (beats) = 240 frames – you’re good to go!

Resolume BPM Transport Tab

Now, if you’ll change the BPM setting in Resolume, it will adjust the speed of the
VJ Loop to match the relevant BPM. Remember – it’s always better to speed clips rather than slowing them down, unless they were rendered in a higher framerate.


We use all three methods to sync our VJ Loops to BPM.

Surely, using a plugin sounds more efficient and easier, but often we choose the manual method to get detail and variations in our loops. Too repetitive can get boring, keep that in mind.

If you are dealing with a big amount of parameters, it’s better to use a plugin. This way, if you need to change your values, it will be an easy fix.

Happy syncing!

Share & Support


    Your Cart
    Your cart is emptyReturn to Shop