Install Asset
Install via Godot
To maintain one source of truth, Godot Asset Library is just a mirror of the old asset library so you can download directly on Godot via the integrated asset library browser
Quick Information
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
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 the AMP plugin from here.
Place the plugin directory inside the "addons" folder of your Godot project.
Enable the plugin in your project by going to "Project Settings" > "Plugins" and activate AMP.
or
Install directly from the Godot Asset LibraryEnable 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.
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
Reviews
Quick Information
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