Publisher
datlycan
AMP (Adaptive Music Player)
AMP allows you to create adaptive music systems. Utilizing the AdaptiveMusicPlayer and AudioStemPlayer nodes, you can easily modify music properties and add or remove stems in the inspector or during runtime. An example scene using these nodes can be found on itch.io: https://datlycan.itch.io/amp-demo
This plugin has been mirrored from the Godot Asset Library.
The plugin author is in no way affiliated with Gadget.
If you are the author of this plugin and would like this mirror removed, please contact support@gadgetgodot.com.
AMP (Adaptive Music Player)
Create adaptive music systems in your game using the AdaptiveMusicPlayer and AudioStemPlayer.
Only compatible with Godot 4.x
Features
- Easily create adaptive music systems in your Godot game.
- Dynamically change music properties like BPM, time signature, etc., through the inspector.
- Add or remove song stems from the track during runtime.
- Use the
StemPlaybackPresetResource to define how each stem should be played.
Nodes
AdaptiveMusicPlayer
The AdaptiveMusicPlayer node extends Godot's AnimationPlayer node and provides a way to play adaptive Music.
It holds values that can be changed in the inspector that correspond to song data.
AudioStemPlayer
The AudioStemPlayer node extends Godot's AudioStreamPlayer node and is designed to be used alongside the AdaptiveMusicPlayer. An AudioStemPlayer represents a different stem (instrument, track, etc.) of your song.
It holds instructions for the AdaptiveMusicPlayer for how a stem should be played and what should be played.
Installation
Download this repository.
Move
addons/AMPto theaddonsfolder of your Godot project.Enable the plugin in your project by going to
Project Settings>Pluginsand activateAMP.
or
Install directly from the Godot Asset Library
Enable the plugin in your project by going to "Project Settings" > "Plugins" and activate AMP.
Usage
Add the
AdaptiveMusicPlayernode to your scene and configure its properties in the inspector, such as BPM, time signature, and measure count.Add one or more
AudioStemPlayernodes as children of theAdaptiveMusicPlayer.Customize the
AudioStemPlayerproperties and assign a unique identifier to each stem.In your script, you can dynamically add or remove stems from the
AdaptiveMusicPlayerusing theadd(identifier)andremove(identifier)methods, respectively.
# Example usage of adding stems with identifiers
var amp = get_node("AdaptiveMusicPlayer")
amp.add("stem_one_identifier")
amp.add("stem_two_identifier")
# You can also use group identifiers to add multiple stems at once
amp.add("Group/group_identifier")
You can also use
StemPlaybackPresetto define how each stem should be played and assign it to the correspondingAudioStemPlayernode.
Demo
A browser demo using the example can be found on itch.io
License
This plugin is released under the MIT License.