Journal OpenMPT 1.28 : OPL & concours

Posté par  . Licence CC By‑SA.
22
22
sept.
2018

Sommaire

Petit rappel liminaire et essentiel en guise d'introduction rapide afin de rentrer dans le sujet sans superfétatoires déclarations qui n'auraient que pour but de tester la limite d'affichage d'un titre.

OpenMPT se place en digne héritier d'une abondante lignée de Soundtrackers.

Cette façon de composer de la musique est tombée en désuétude ces dernières années. C'est bien dommage, car c'est un format naturel pour les démos et les jeux videos, où pourtant la musique streamée s'est imposée peu à peu (mis à part quelques remarquable exceptions).

 
 

OpenMPT et la concurrence

OpenMPT n'est bien sûr pas le seul logiciel à être encore développé aujourd'hui, il existe également:

  • MilkyTracker : interface à l'ancienne, open-source, orienté MOD/XM (héritage FastTracker2 ).

  • Schismtracker : interface également à l'ancienne (mais plus ergonomique que Milky, de mon avis personnel à moi). Open-source, orienté S3M/IT (héritage ImpulseTracker ). Particularité intéressante, il supporte les instruments OPL : nous allons y revenir.

  • Sunvox : approche complètement différente, closed-source (builds linux & replays-routines disponibles) mais vaut incontestablement le détour pour ses générateurs incroyables.

  • Klystracker : beaucoup moins connu, mais vraiment sympathique pour la chip-music avec sa synthèse FM. Tire un peu sur le proc pour la replay. Ce n'est pas forcément rédhibitoire: le CPU a tendance à s'ennuyer de nos jours.

 
 

OpenMPT en lui-même

Aujourd'hui c'est OpenMPT qui nous intéresse.

OpenMPT est un logiciel open-source , mais ses différentes composantes sont supportées sous Linux de plusieurs façons.

Il est activement développé, principalement par deux contributeurs réguliers: Manxorist et Saga Musix , par ailleurs très actifs dans le petit monde du soundtracker.

Partie replay

Sa partie replay (pour rejouer des compositions) est supportée nativement sur un grand nombre de plate-formes, dont Linux. Il est à noter qu'il ne faut pas confondre la libmodplug, assez répandue dans le monde Linux et issue d'un fork ancien de ModPlugTracker (ancien nom de OpenMPT), et la libopenmpt.

La libopenmpt est développée conjointement avec OpenMPT et suit bien sûr ses évolutions. Quelques utilitaires sont intégrés au repo source, dont openmpt123 qui permet d'écouter en shell les modules dont le format est supporté par OpenMPT.

La libopenmpt est très performante, et offre bien plus de possibilités que la libmodplug qui n'a pour elle que sa large distribution. La libmodplug est par exemple intégrée dans love2d , bien qu'il soit régulièrement évoqué la possibilité de la remplacer par mieux (si il y a des courageux…).

Partie tracker

Il supporte les deux grandes familles de trackers classiques, à savoir MOD/XM et S3M/IT. , que ce soit en chargement ou sauvegarde.
Son format interne MPTM apporte quelques extensions à IT.

Il permet également l'utilisation d'instruments VST, mais je n'ai jamais utilisé cette possibilité dont la modernité me rempli d'effroi (aussi et surtout parce que cela m'empêcherait d'utiliser la replay-routine).

Son interface est à mon avis la plus ergonomique de tous les trackers: nous sortons des interfaces des années 90, à la lisibilité discutable.

Comparaison des différentes interfaces

(pour cette comparaison, je n'ai pas réussi à insérer des miniatures malgré l'aide du wiki linuxfr: donc clic-droit + voir pour l'image originale. Si un modo veut bien corriger ça et m'expliquer…)

  • MilkyTracker MilkyTracker: bienvenue dans les années 90.

  • SchismTracker SchismTracker: rendu flou dès que l'on redimensionne.

  • OpenMPT OpenMPT: clair et net.

Avec OpenMPT, nous avons une interface intégrée à l'OS. Malheureusement, cette interface est liée à Windows depuis le début, et rend le portage sous Linux bien difficile.

Support Wine

La bonne nouvelle est que les mainteneurs font tout ce qu'ils peuvent pour que le programme tourne parfaitement sous Wine.

OpenMPT détecte au démarrage si il tourne sous Wine, et applique quelques patches le cas échéant.

Le MIDI fonctionne également très bien, comme j'ai pu le tester avec mon mini-clavier Korg nanoKEY2

On peut installer le programme de façon traditionnelle ou utiliser une archive et le lancer directement avec wine mptrack.exe.

Il y a également un mode «portable» qui n'écrit rien dans la base de registres et stocke la configuration dans le répertoire courant.

 
 

OpenMPT 1.28 : le futur

OpenMPT 1.28 est la version de développement, sur le point de sortir.

L'OPL est désormais supporté.

L'OPL dans les soundtrackers

Les soundtrackers utilisent traditionnellement des samples. Il y eu cependant quelques notables exceptions, en particulier ScreamTracker 3.

En effet, ScreamTracker3 permettait de mélanger les samples et la synthèse FM. La synthèse FM était assurée par le chipset OPL présent sur les anciennes carte sons Adlib, puis SoundBlaster.
Le chipset supporté est donc l'OPL2, qui permettait 9 voies supplémentaires, en plus des voies PCM (samples).
L'utilisation de l'OPL apparait clairement dans le format S3M.

Le chipset est rustique, mais supporte néanmoins des sonorités intéressantes. Le fait de pouvoir ajouter des samples pour les instruments dont le rendu FM est désagréable (comme les percussions crachouillantes) permet de composer de bien belles mélodies.

Un bon exemple de ce qui est possible peut-être trouvé dans la démo Amnesia du groupe Renaissance. Elle accuse certes son âge, mais sa musique est toujours aussi intéressante (surtout la première, ma préférée).
La musique utilisait le format spécial CDFM propre au groupe et documenté ici. Ce format fut uniquement supporté dans le bien-nommé CDFM-tracker.
Néanmoins, un convertisseur a été écrit par Malvineous, ce qui a permis sa conversion en S3M.

Jusqu'à présent, seul SchismTracker permettait une écoute des pistes OPL, mais cela vient de changer avec OpenMPT 1.28.

OpenMPT 1.28 et l'OPL

le support

La plus grande nouveauté est le support des instruments OPL2 et OPL3, dans la droite ligne de ScreamTracker3 (quoique pour ce qu'il est d'OPL3, je ne suis pas sûr que ScreamTracker3 le supportait puisque limité à 9 channels).

Pour l'installer, il faut soit compiler soi-même la version de développement, soit passer par les builds créés en continu.

Je suis passé par la version win32 des builds , et ceci fonctionne très bien.

Les builds de la 1.28 sont ici.

Pour l'instant, il n'est pas possible de créer un nouvel intrument OPL.

Il faut donc en utiliser un existant. On peut cependant faire varier ses caractéristiques avec l'interface: menu «samples», où le graphique d'échantillonage sera remplacé par des sliders afin de faire varier les caractéristiques de l'instrument.

Pour trouver des instruments, il va vous falloir fouiller quelque peu , car on trouve surtout la description des acronymes S3I (instruments FM de ScreamTracker3) et SBI (soundblaster instruments).

Vous pouvez également essayer les instruments de l'archive contenant les S3M Amnesia, postée plus haut.

Vu la vitesse à laquelle les versions de dev se succèdent, il est possible que les possibilités d'édition d'instruments soient beaucoup plus grandes au moment où vous lirez ces lignes.

le concours

Il consiste à créer un module avec la version 1.28, en exploitant les instruments FM.

Il est ouvert jusqu'au 30 septembre 2018 (date de la sortie probable de la nouvelle version)

Il n'y a rien à gagner, si ce n'est la gloire d'avoir son module distribué avec les prochains OpenMPT.

Le réglement se trouve ici

Alors si un musicien traine par ici, c'est le moment ! Et le but de ce journal était d'ailleurs d'augmenter le nombre de participants potentiel.

  • # Liste non exhaustive

    Posté par  (site web personnel, Mastodon) . Évalué à 5.

    Dans les trackers libres et toujours plus ou moins vivants, il y a aussi:

    • protrekkr
    • hively tracker
    • sawteeth
    • komposter
    • le chiptracker de lft et la version pour la bitbox
    • avec une UI native en GTK, il existe un soundtracker

    Et encore plein d'autres

    • [^] # Re: Liste non exhaustive

      Posté par  . Évalué à 4.

      Oui il y en a beaucoup, mais je me suis volontairement limité aux trackers «généralistes».

      Avoir la possibilité de jouer des samples en plus d'ondes modulées (FM, AHX , émulateurs SID etc) est quand même intéressant.

      Ce que j'aime chez OpenMPT, outre qu'il continue à évoluer, est le travail réalisé sur la replay-routine. Elle offre ce qui est probablement le rendu le plus fidèle pour les anciens formats. Il y a même un export «compatible» pour les formats XM et IT, afin de respecter les standards d'origine (https://wiki.openmpt.org/Manual:_Saving_and_exporting#Compatibility_Export).
      Il y a beaucoup de docs également, et des gens pour répondre aux questions sur l'API.

      Hively Tracker est intéressant, car il tourne absolument partout, par contre assez minimaliste non ?

      Je ne connaissais Protrekkr que de nom, et je croyais qu'il s'agissait d'un programme Amiga abandonné.
      Son interface a l'air bien, et lui même semble complet.
      Par contre il ne bouge plus trop ( https://github.com/falkTX/protrekkr ) et son fork n'a pas changé depuis deux ans ( https://github.com/paulbatchelor/protrekkr ). À moins qu'il ne s'agisse de celui-ci : https://github.com/hitchhikr/protrekkr ?

      Discussions en français sur la création de jeux videos : IRC freenode / #gamedev-fr

      • [^] # Re: Liste non exhaustive

        Posté par  (site web personnel, Mastodon) . Évalué à 4.

        HivelyTracker ne permet pas d'utiliser des samples si je me souviens bien. Il est dérivé de AHX (pour Amiga) et fonctionne avec un synthétiseur en temps réel.

        Pour protrekkr, en effet je pense que la version de hitchhikr est la plus à jour (elle était hébergée sur Google Code il me semble, avant que ça ferme). Je ne sais pas si des évolutions sont nécessaires. Peut-être que le programme fait tout ce qu'on attend de lui et qu'il n'y a pas tellement besoin de changements?

        hitchhikr pourra faire la maintenance si nécessaire, ou bien je peux aussi m'en occuper (en tant que responsable du port vers Haiku, j'ai déjà un peu touché à son code).

        • [^] # Re: Liste non exhaustive

          Posté par  . Évalué à 2. Dernière modification le 24 septembre 2018 à 17:07.

          J'ai essayé de compiler protrekkr en partant d'un git clone du repo hitchhikr.

          Il a fallu que je fasse quelques modifs pour que ça passe avec C++11:

          • ajout de l'include cstdint pour le typedef uint64_t dans endianness.h
          • ajouter -pthread -fpermissive dans les flags de compile de makefile.linux
          • suppression de typedef unsigned long long uint64_t; (toujours dans endianness.h)

          Il me semble que c'est tout…

          Avec ça, ça compile et ça linke, mais:

          …/protrekkr/release/distrib$ ./ptk_linux
          Error: Error while calling open("/dev/dsp")
          On ne peut pas utiliser Alsa ?

          Pourtant dans le makefile, il y a bien : -D __LINUX_ALSASEQ__

          Bon, il semble qu'il faille installer une couche d'émulation telle que alsa-oss.

          Je n'ai pas cherché plus loin.

          Discussions en français sur la création de jeux videos : IRC freenode / #gamedev-fr

  • # Trackers <3

    Posté par  (Mastodon) . Évalué à 10.

    C'est malin ! Je viens de passer ma journée à lire des mods ! Malheureusement, pas avec OpenMPT. Mais grâce à cette news, et en particulier la page wikipedia sur les trackers, j'ai découvert qu'il existait un clone de FastTracker 2. Ça compile nickel sous Linux et le résultat est simplement bluffant ! D'après ce que j'ai compris, l'auteur a pris les sources originales en Pascal et assembleur et les a porté en C/SDL2. L'ensemble n'est pas libre, puisque les assets sont sous CC-BY-NC-SA. Mais quand même, ça me replonge une petite vingtaine d'année en arrière. Du coup, j'ai fait de l'archéologie dans mon grenier et j'ai ressorti plein de vieux CD gravés à cette époque là et sur lesquels j'avais toute une collection de xm, s3m et autre mod. Je suis aussi allé faire un tour sur modarchive et sur scene.org pour en chercher quelques autres. Bref, ça fait du bien d'entendre à nouveau Necros, Skaven, Purple Motion, MaF, Zodiak, Keih303, etc !

    Personnellement, j'adore les trackers, et je me demande pourquoi ils n'ont pas plus percé que ça. Moi qui n'ai aucune formation musicale (hormis ce qu'on apprends au collège), je pouvais tâtonner et sortir des trucs pas trop mal. Après, pour faire des choses évoluées, il fallait des années d'expérience, mais comme pour tout art. Quand je vois que, de nos jours, il faut un matériel de dingue pour faire de la MAO, j'ai l'impression qu'un tracker demandait (et demande toujours ?) beaucoup moins de ressources (FastTracker2 tournait sur un 486 DX2 à 66MHz !). Vivent les trackers !

    • [^] # Re: Trackers <3

      Posté par  . Évalué à 5. Dernière modification le 23 septembre 2018 à 21:59.

      gros gros +1 :)

      • [^] # Re: Trackers <3

        Posté par  (site web personnel) . Évalué à 2.

        Idem.

        Mes productions des années 80/90 : https://modarchive.org/index.php?request=view_artist_modules&query=90994, de l'Atari ST au PC…

        ;-)

        • [^] # Re: Trackers <3

          Posté par  . Évalué à 2.

          Héhé, ça sonne assez Karsten Obarski ;)

          Discussions en français sur la création de jeux videos : IRC freenode / #gamedev-fr

        • [^] # Re: Trackers <3

          Posté par  (Mastodon) . Évalué à 2.

          J'ai jamais osé mettre mes «productions» sur un site. À un moment, elles étaient en ligne mais elles ne sont pas restées très longtemps.

        • [^] # Re: Trackers <3

          Posté par  . Évalué à 1.

          de l'Atari ST au PC…

          Je ne reconnais pas le son de la puce AY-3-891x (Yamaha) qui habitait les Atari ST et les Amstrad CPC… Je n'ai essayé que quelques tunes. Les MODs étaient joués sur quelle puce ?

          • [^] # Re: Trackers <3

            Posté par  . Évalué à 2.

            L'atari ST était capable de jouer des samples, bien que possédant une puce audio plutôt ancienne pour l'époque.

            Par contre, je ne sais pas comment il modulait ceux-ci. L'amiga changeait la fréquence du sample en modifiant la vitesse du canal DMA par lequel celui-ci passait, ce qui n'utilisait pas de CPU.

            Discussions en français sur la création de jeux videos : IRC freenode / #gamedev-fr

            • [^] # Re: Trackers <3

              Posté par  (site web personnel, Mastodon) . Évalué à 3.

              Sur ST les samples sont joués au CPU, en écrivant dans les registres de volume de l'AY. En général ceci est fait à partir d'une interruption timer pour gérer la fréquence. Ces registres de volume étant seulement sur 4 bits, ça limite un peu les choses.

              Sur Atari STe, il y a en plus de la puce (qui est un YM2149, presque la même chose que l'AY-3-8912 mais pas tout à fait), deux canaux DMA pour les samples.

              Précision sur l'Amiga: les canaux DMA n'utilisent certes pas le CPU, mais font des accès à la chipram, ce qui empêche le CPU d'y accéder en même temps. Ce dernier est donc tout de même ralenti, à moins de s'arranger pour travailler uniquement en fastram (la mémoire étendue isolée du chipset et inaccessible par les canaux DMA).

              • [^] # Re: Trackers <3

                Posté par  . Évalué à 1.

                D'ailleurs il me semble que la différence entre l'Amiga et l'Atari est la forme de l'onde : carrée sur l'Atari (comme l'Amstrad d'ailleurs) et sinusoïdale/définissable sur l'Amiga.

                Ce qui fait qu'on peut distinguer les tunes Atari de celles de l'Amiga. D'où mon étonnement en écoutant ceux du lien du message auquel je répondais.

                • [^] # Re: Trackers <3

                  Posté par  . Évalué à 3.

                  Tu les as écouté sur un Atari ? Si tu les as écouté sur modarchive, c'est un player javascript sans émulation du son d'une machine particulière.

                  Sinon comme autre différence, il me semble que l'atari ST n'avait que 3 canaux, alors que le format .mod comportait 4 canaux (limite hard de l'amiga). Il devait donc y avoir un mixage de deux canaux sur un seul, ce qui doit commencer à s'entendre sur 4 bits (cf message un peu plus haut dans ce fil).

                  Discussions en français sur la création de jeux videos : IRC freenode / #gamedev-fr

                  • [^] # Re: Trackers <3

                    Posté par  . Évalué à 0.

                    Oui, c'était le player JS de ModArchive. Merci pour ta réponse.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.