GDevelop-extensions icon indicating copy to clipboard operation
GDevelop-extensions copied to clipboard

Sync Music or Sound Channel BPM

Open heisenhixie opened this issue 1 month ago • 5 comments

Description

Set the BPM of a channel playing a sound and set up events to activate on a beat. For example, if you have an audio file on sound channel 1, you can set it's BPM. On the beat, you can activate events, such as a camera zoom tween, or color change.

Reminder that the on beat detection must be running every frame of when you want it to detect the beats!

How to use the extension

On an event that runs every frame, you are to add the "Beat handler" action, sound or music, and set its channel to the channel currently playing a track. This is how the beat length is calculated. This extension does not work otherwise. You cannot run both a music, and sound handler at the same time. They depend on the same hidden variables. You must run one at a time. This might be changed in a later update.

You can set the BPM, with the "Set the BPM" action. It must be the BPM of the audio file you have playing, or it won't look synced.

You can add events when the beat is hit by using the "If a beat on a (music or sound) channel is hit" condition. This object runs once during the frame of the beat.

Checklist

  • [x] I've followed all of the best practices.
  • [x] I confirm that this extension can be integrated to this GitHub repository, distributed and MIT licensed.
  • [x] I am aware that the extension may be updated by anyone, and do not need my explicit consent to do so.

Example file

BPM Sync Example.zip

Extension file

SyncChannelBpm.zip

heisenhixie avatar Nov 30 '25 03:11 heisenhixie

👋 Hey @heisenhixie, thanks for your submission! We are sorry, but the filename of the extension has unrecognized characters. Since filenames with non latin characters ("ASCII") can cause issues, our system won't allow file names with other characters than latin upper- and lowercase characters or numbers. Additionally, the first character must be an uppercase character. Please update your original submission post with a new zip file containing your extension with another file name following those guidelines 🙏

github-actions[bot] avatar Nov 30 '25 03:11 github-actions[bot]

👋 Hey @heisenhixie, thanks for your submission! We are sorry, but the filename of the extension has unrecognized characters. Since filenames with non latin characters ("ASCII") can cause issues, our system won't allow file names with other characters than latin upper- and lowercase characters or numbers. Additionally, the first character must be an uppercase character. Please update your original submission post with a new zip file containing your extension with another file name following those guidelines 🙏

github-actions[bot] avatar Nov 30 '25 06:11 github-actions[bot]

👋 Hey @heisenhixie, thanks for your submission! We are sorry, but the filename of the extension has unrecognized characters. Since filenames with non latin characters ("ASCII") can cause issues, our system won't allow file names with other characters than latin upper- and lowercase characters or numbers. Additionally, the first character must be an uppercase character. Please update your original submission post with a new zip file containing your extension with another file name following those guidelines 🙏

github-actions[bot] avatar Nov 30 '25 06:11 github-actions[bot]

👋 Hey @heisenhixie, thanks for your submission! We are sorry, but the filename of the extension has unrecognized characters. Since filenames with non latin characters ("ASCII") can cause issues, our system won't allow file names with other characters than latin upper- and lowercase characters or numbers. Additionally, the first character must be an uppercase character. Please update your original submission post with a new zip file containing your extension with another file name following those guidelines 🙏

github-actions[bot] avatar Nov 30 '25 06:11 github-actions[bot]

👋 Hey @heisenhixie, thanks for your submission! Unfortunately, all submitted extensions have to meet some minimal quality standard - the extension best practices - and our system has found that your extension does not fully comply 😔. You can find all of those rules on the GDevelop wiki.

The following issues have been found by the system concerning the respect of those best practices by your extension:

  ⟶ ❌ [Dots in sentences]: Field 'description' of the function 'handler_sound' misses a dot at the end of the sentence!
  ⟶ ❌ [Dots in sentences]: Field 'description' of the function 'bpmset' misses a dot at the end of the sentence!
  ⟶ ❌ [Dots in sentences]: Field 'description' of the function 'handler_music' misses a dot at the end of the sentence!
  ⟶ ❌ [PascalCase for internals names]: Internal name 'handler_sound' should begin with an uppercase letter (Handler_sound)!
  ⟶ ❌ [PascalCase for internals names]: Internal name 'onbeat_sound' should begin with an uppercase letter (Onbeat_sound)!
  ⟶ ❌ [PascalCase for internals names]: Internal name 'bpmset' should begin with an uppercase letter (Bpmset)!
  ⟶ ❌ [PascalCase for internals names]: Internal name 'handler_music' should begin with an uppercase letter (Handler_music)!
  ⟶ ❌ [PascalCase for internals names]: Internal name 'onbeat_music' should begin with an uppercase letter (Onbeat_music)!

Please update your original submission post with a new zip file containing your extensions updated to follow those guidelines 🙏

github-actions[bot] avatar Nov 30 '25 06:11 github-actions[bot]