XLS : Lecteur Audio pour ChipTunes

Lu76Fer

XLDnaute Occasionnel
Bonjour à toutes et tous, camarades codeurs et bidoulleurs !

Je me suis intéressé récemment à certain type de fichier sonore, les ChipTunes, en cherchant des archives de musique issues d'ancien Jeux Vidéos.

Qu'est ce qu'un ChipSound ou ChipTune ?
A l'instar des sons midi et des sons produits par les synthétiseurs on enregistre les variations de tonalité, de volume, de bruit sur plusieurs canaux et pas une numérisation précise d'un enregistrement comme dans un fichier Wav ou MP3.
Du coup un fichier ChipTune prendra très peu de place en mémoire comme un fichier midi, par contre un fichier midi utilise des instruments synthétisés qui sont très différents des ChipTunes.
J'ai testé sur le site basicpitch.spotify.com la conversion d'un ChipTune vers un fichier midi et le résultat est effroyable !! Il est donc nécessaire d'utiliser des programmes spécifiques pour lire ce type de fichier.

Mais pour en savoir plus et avoir des explications moins bancales vous pouvez regarder la vidéo du JDG sur ce sujet :
Les Musiques de Jeux Vidéo - Comment ça fonctionne ? ou lire cet article sur le site amstradtoday.com

Intégrer les fichiers '*.ym', basés sur le Chipset de l'Atari-ST (mais aussi l'Amstrad)
La caractéristique de ce plugin est de pouvoir lire des sons électroniques ChipSound équipant l'Atari-ST mais aussi l'Amstrad et qui gère 3 canaux. Les fichiers pris en charges ont l'extension ym et ne comportent que les données sonores sans codec intégré contrairement à d'autres.
Voici le site officiel du concepteur d'un plugin capable de lire ce type de fichier
leonard.oxg.free.fr
Il faut ensuite aller sur la rubrique -> ST-Sound -> Download et cliquez dans la page sur le lien Winamp plugin (in_ym.dll)
Voici aussi le lien direct : in_ym_1_3.zip

Je n'ai trouvé aucun moyen d'utiliser ce plugin au travers de Windows Media Player ou VLC et me suis reporté sur l'installation d'un lecteur très simple qui est aussi celui qu'utilise Arnaud Carré qui a développé ST-Sound et le plugin. Il a aussi la particularité d'offrir la possibilité de lire un fichier ym en ligne de commande et offre quelques options intéressantes.
Téléchargement d'XMPlay, lecteur audio très simple et bien documenté dans le fichier 'xmplay.txt' : support.xmplay.com
Pour l'installer il suffit d'extraire les fichiers dans le dossier où vous placez habituellement vos applications sans installation.
Ensuite pour installer le plugin 'in_ym.dll', copier le, dans le dossier d'installation d'XMPlay
Lancer XMPlay.exe et vous pourrez lire les ChipTunes avec l'extension 'ym'.

Lire les fichiers '*.ym' sous Excel
Ensuite pour pouvoir lancer XMPlay simplement en ligne de commande, il faut créer un raccourci sur l'exécutable le renommer en 'xmplay' et le déplacer dans un dossier que vous ajouterez à la variable d'environnement 'Path' sous windows.
Aide : pcastuces.com
Voici la liste des commandes shell utilisées :
  • Play : xmplay "X:{...}\ChipTunes\{name}.ym" -tray -play
  • Stop la lecture : xmplay "X:{...}\Sons\click.wav" -tray -play
  • Stop & Ferme l'application à la fin de la lecture : xmplay "X:{...}\Sons\click.wav" -tray -play -closetrack
  • Kill XMPlay.exe (Force l'arrêt de l'application) : taskkill /IM xmplay.exe
Comme il n'existe pas de commande Stop, l'astuce consiste à lire un son trés court pour stopper le titre en court à condition d'avoir paramétré XMPlay au préalable. Il faut que l'option 'Allow Multiple Instance' soit désactivée sur le Player dans Option->Miscellaneous.

Gestion du décompte dans le lecteur sous Excel :
J'ai voulu réaliser un simple décompte pour savoir quand la lecture d'un titre est terminée et n'ayant aucun retour d'XMPlay il est donc nécessaire de fournir dans la liste de lecture la durée de chaque titre. Pour partir sur un code relativement court, je n'ai pas utilisé d'évènement nécessitant de créer des classes mais j'utilise un évènement plus primaire fourni par l'objet Application : Application.OnTime.
On peut ainsi généré et reconduire une fonction différée chaque seconde (c'est le minimum possible). Cela suffit à mettre à jour la valeur du décompte avec une précision à la seconde mais n'ayant aucune possibilité de se synchroniser avec XMPlay cela est suffisant. J'utilise la propriété du module NbStep pour définir le numéro de l'étape en cours et ainsi je peux stopper le déclenchement en chaîne à la fonction SecondElapsed du titre précédant lorsqu'un titre est arrêté avant la fin ou que l'on bascule sur un autre titre :
VB:
Sub SecondElapsed(iNbStep)
    If iNbStep <> NbStep Then Exit Sub
L'archive fournie est bien commenté et possède une liste de musique de jeux Amstrad (ZX Spectrum ou Commodore) et un pannel de son qui peut être utile pour animer vos classeurs.
Voici également un autre lien qui fourni une banque d'image intéressante mais aussi des sons libre de droit : pixabay.com

Si vous connaissez une autre façon de lire ce type de fichier avec une méthode facile à intégrée (Active X ...) et qui gère des ChipTunes je suis intéressé de connaître vos solutions ...

Lire les autres types de ChipTune avec VLC
Je n'ai pas trouvé la possibilité de prendre en charge le plugin 'in_ym.dll' sur VLC même si par ailleurs il offre des commandes en ligne intéressantes et prend en charge beaucoup de type de ChipTune en intégrant leur codec : CommandeEnLigne_VLC
Il est donc possible d'appeler en ligne de commande ce lecteur et lire ces autres ChipTunes via Excel en procédant de la même manière que pour XMPlay.

Archives de ChipTune
Ou trouver des archives avec l'extension ym ?
musics.ym.zip
antoine.rozanski.free.fr

Les autres types de ChipTune :
archive.org
chiptune.com
 

Pièces jointes

  • LecteurAudioChiptune.zip
    445.8 KB · Affichages: 1

Discussions similaires

Statistiques des forums

Discussions
313 193
Messages
2 096 081
Membres
106 490
dernier inscrit
fabintou