[Musique] Musique adaptative : une solution efficace

Dans ce 4e billet sur la musique adaptative, une solution efficace est présentée.

Un compromis...

Comme nous l'avons vu, la solution naïve (une simple playlist, avec fondus) offre très peu de flexibilité, mais permet une très bonne qualité sonore. L'approche des modules garantit une grande souplesse, mais a un certain nombre de problèmes. Comme souvent, il faut trouver le juste milieu et trouver un compromis.

À mi-chemin entre la musique en mp3/ogg en un seul bloc, et la musique découpée note par note, on peut imaginer une musique divisée de façon plus subtile. On peut séparer la musique de manière plus logique : d'un côté, les percussions, de l'autre l'accompagnement et les mélodies. Ce découpage n'est pas le seul possible, ça dépend du contexte et de ce que l'on veut faire. Mais partons de là. Le concept est d'avoir plusieurs fichiers ogg que l'on lit simultanément pour retrouver le morceau d'origine. Techniquement, il n'y a aucune perte. La qualité du son et celle de la composition sont potentiellement excellentes. Regardons maintenant ce que l'on peut faire au niveau des deux aspects de la musique adaptative : l'évolution d'une musique et la transition entre deux musiques.

Pour faire évoluer une musique, plusieurs possibilités s'offrent à nous. Pour faire évoluer le rythme, c'est simple : il suffit d'avoir deux fichiers ogg, chacun correspond à un rythme différent. La musique utilise le premier rythme, et passe au suivant quand la transition est requise. Il y a quand même une chose à respecter : il est préférable que la mesure ait la même durée dans les deux fichiers. Par ailleurs, il est nécessaire que la transition se fasse entre deux mesures. Il faut donc insérer un délai de quelques secondes pour que la transition soit propre.

Pour l'accompagnement, on peut utiliser la même technique : deux musiques, synchronisées, utilisant les mêmes accords, mais ayant des ambiances différentes. Par exemple, la même mélodie jouée par deux instruments différents. Ou encore, le deuxième accompagnement peut avoir juste quelques instruments de plus. La transition entre les deux fichiers est assez simple : soit un remplacement brutal, de la même façon que pour les percussions ; soit un fondu (cross-fade) entre les deux fichiers. Le choix entre ces deux transitions dépendra des fichiers.

Cela suffit pour faire évoluer une musique, mais les transitions restent pauvres et n'atteignent pas ce que ferait un vrai compositeur. Pour obtenir un résultat beaucoup plus crédible, il faut ajouter une possibilité : celle de jouer un sample, temporairement, pour la transition. Imaginons la transition suivante :

  • Jouer immédiatement un sample (de durée t). Par exemple, un son de percussions qui s'accélèrent progressivement.
  • Jouer, au temps t, un sample. Par exemple, une cymbale.
  • Arrêter l'accompagnement actuel, au temps t.
  • Jouer un autre accompagnement, au temps t.


Cela donne un résultat beaucoup plus crédible. Il faut bien sûr faire en sorte que le temps t coïncide parfaitement avec la mesure. La transition entre deux musiques très différentes suit la même logique : il faut définir une suite d'effets à exécuter.