J'aurais voulu être un artiste - Chapitre 1 : La génération de musique
Article publié le : 7 avril 2019
Dans la rubrique j’aurais voulu être un artiste nous abordons les moyens de créer les différents éléments qui composent votre jeu quand on a pas ou peu de compétences artistiques.
Une des composantes importante de votre jeu c’est le son. Je vais volontairement omettre les générateurs de bruitages et les musiques libres de droit, vous en trouverez une liste dans la rubrique liens.
Si l’on préférera généralement utiliser une musique libre de droit, souvent de meilleure qualité que la musique générée par un algorithme, les logiciels de génération de musique présentent tout de même deux principaux avantages : la garantie d’avoir une musique unique qui n’aura pas déjà été utilisée dans des dizaines d’autres jeux et le fait que cela soit autorisé dans le cadre de certaines game jam, comme la Ludum Dare, où la réutilisation d’assets est prohibée.
Mais sans plus attendre voici une présentation succincte des différents générateurs de musique que j’ai découvert. Si vous en connaissez d’autres qui sont dignes d’intérêt n’hésitez pas à m’en parler dans les commentaires.
cgMusic
Malheureusement il ne fonctionne que sous Windows, je n’ai donc pas pu l’essayer mais les compositions crées avec ce logiciel semblent de très bonne qualité.
WolframTones
Un très bon outil web qui permet de couvrir un large choix de style de musique tout en restant très accessible. Je regrette toutefois des compositions parfois très médiocres et un peu trop courtes pour pouvoir être réutilisées telles quelles.
Abundant Music
Un autre outil web, je n’ai pas encore fait le tour de tous les réglages possibles, globalement on obtient de bonnes compositions mais dont le style et le rythme ne conviendra pas forcément pour tout type de jeux.
autotracker-bottomup
Dernier, mais non des moindres, autotracker-bottomup est un script python qui génère des boucles chiptune dans le pur style des jeux rétro. Un peu difficile à mettre en place si l’on n’a pas l’habitude d’utiliser la ligne de commande, c’est en tout cas mon outil préféré de cette liste !
Comme vous le savez peut être déjà j’utilise Linux comme système d’exploitation et mon moteur de jeu préféré lors des game jams est Pico-8, je vais donc vous décrire pas à pas comment utiliser autotracker pour générer une musique que vous allez pouvoir importer dans votre cartouche Pico-8.
Commençons tout d’abord par télécharger autotracker :
wget https://raw.githubusercontent.com/wibblymat/ld24/master/autotracker.py
Puis générons notre première musique en exécutant le script :
python2.7 autotracker.py
Cela va générer un fichier au format Impulse Tracker (.it), vous pouvez si vous le souhaitez l’ouvrir avec VLC pour écouter à quoi cela ressemble et générer de nouvelles pistes si celle ci ne vous convient pas.
Se pose alors à nous un léger problème, nous nous retrouvons avec un fichier Impulse Tracker alors que les outils permettant d’importer un musique dans Pico-8 fonctionnent avec des fichiers MIDI. Qu’à cela ne tienne, nous allons convertir ce fichier !
Le seul logiciel que j’ai trouvé qui permet d’effectuer cette conversion s’appelle OpenMPT. C’est un logiciel open source conçu pour windows mais qui fonctionne également très bien avec sous Wine. Installez donc OpenMPT avec Wine ou PlayOnLinux et lancez le.
Ensuite ouvrez votre fichier .it avec OpenMPT puis cliquez sur File puis Export as MIDI…. Là va s’ouvrir une fenêtre vous proposant de choisir un instrument, je laisse généralement les paramètres par défaut, ça fonctionne très bien comme ça.
Voilà enfin notre fichier midi, nous allons utiliser un dernier outil pour l’importer dans Pico-8 : midi-to-pico8.
Commençons par le télécharger :
git clone https://github.com/andmatand/midi-to-pico8.git
Puis exécutons le :
python3.5 midi-to-pico8/awyeah.py mon-fichier.mid
Et voilà, il ne vous reste plus qu’a ouvrir la cartouche Pico-8 générée puis à aller dans l’onglet musique et lancez la lecture :)
Notez qu’il est parfois nécessaire de modifier légèrement les instruments ou le volume des pistes pour améliorer un peu le rendu final.