← All postsAdaptive Music in Godot 4: A Complete Tutorial
Read in:EnglishفارسیFrançais

Musique adaptative dans Godot 4 : tutoriel complet

· 2 min readgodottutorialadaptive musicunity alternative

Le système de bus audio de Godot 4 est puissant, mais bas niveau : il gère le volume, les effets et le routage, pas la notion d'« état de jeu » ni les fondus enchaînés. Ce tutoriel construit cette couche à partir de zéro, à partir d'une partition exportée depuis Mowjera, pour aboutir à un autoload AudioManager réutilisable dans tous vos futurs projets.

Ce que vous aurez à la fin

Un singleton (autoload) qui expose une seule fonction — transition_to(state_name) — et gère le crossfade entre un nombre quelconque d'états musicaux en boucle, au sample près, sans aucune coupure audible.


Étape 1 : exporter une partition pour Godot

Depuis la page de détail d'une partition Mowjera, cliquez sur Get bundle. Le ZIP contient un dossier godot/ avec Mowjera.gd, et un dossier stems/ avec un fichier WAV par piste et par état :

Mowjera_MaPartition/
  godot/
    Mowjera.gd
  stems/
    Explore_melody.wav
    Explore_bass.wav
    Combat_melody.wav
    Combat_bass.wav
    ...

Étape 2 : importer l'audio avec le bouclage activé

Godot ne boucle pas les fichiers WAV par défaut. Pour chaque stem :

  1. Sélectionnez le fichier dans le dock FileSystem.
  2. Ouvrez l'onglet Import.
  3. Sous Loop Mode, choisissez Forward.
  4. Cliquez sur Reimport.

Oublier cette étape est la première cause d'un « clic » audible à chaque bouclage d'une piste censée boucler proprement.

Étape 3 : ajouter l'autoload

  1. Copiez godot/Mowjera.gd dans le dossier scripts/ de votre projet.
  2. Allez dans Project → Project Settings → Autoload.
  3. Ajoutez le script et nommez-le AudioManager.

Étape 4 : déclencher les transitions depuis le code de gameplay

func _on_enemy_spotted():
    AudioManager.transition_to("Combat")

func _on_area_cleared():
    AudioManager.transition_to("Explore")

func _on_boss_defeated():
    AudioManager.transition_to("Victory")

L'autoload se charge de faire disparaître en fondu les nœuds AudioStreamPlayer de l'ancien état pendant que ceux du nouvel état montent en volume, le tout calé sur la prochaine mesure au tempo (BPM) de votre partition — exactement la même logique de crossfade que Mowjera prévisualise en temps réel dans l'éditeur en ligne.


Pièges spécifiques à Godot

Tester le crossfade

Lancez votre scène, déclenchez un changement d'état, et écoutez au casque. Si vous entendez brièvement la mélodie « en double » avant que l'ancien état ne s'éteigne complètement, c'est normal — c'est le crossfade qui fait son travail. Si vous entendez une coupure nette ou un clic, vérifiez que les stems des deux états partagent exactement le même BPM et la même longueur de boucle (Mowjera le garantit automatiquement ; des stems retouchés à la main, non).

Parcourez les partitions adaptatives du marketplace Mowjera — chacune est livrée avec un bundle Godot prêt pour ce workflow.

Share

Hear it instead of reading about it

Every score on the marketplace plays live in your browser — and the ✨ AI composer drafts an adaptive score from one sentence.

Browse the marketplace