Journal Amiga + Mac + Linux MOD player en ASM !!!

Posté par  . Licence CC By‑SA.
Étiquettes :
19
26
fév.
2024

Bonj'

Voici une évolution du player de "MOD" le plus rapide du monde, maintenant disponible pour Linux et Mac

https://github.com/arnaud-carre/LSPlayer

ou trouver des mod

https://modarchive.org

c'est utilisé dans la scene demo, encore aujourd'hui..

ici c'est le groupe "Oxygene" du membre "Leonard" qui à crée le player

https://www.pouet.net/groups.php?which=57

https://www.pouet.net/user.php?who=845

  • # bel exploit

    Posté par  . Évalué à 2.

    Merci pour le lien, ça fait toujours plaisir de voir ce genre d'exploit (n'ayons pas peur des mots, c'est un exploit et surement plus que la présentation de la dernière brique javascript).

    Sauf erreur de ma part (j'ai vérifié bien sûr), seul le convertisseur de modules peut s'exécuter sous Linux.
    Le module est converti dans un format adapté au player, qui lui reste uniquement disponible pour les archis 68k (Amiga & Atari, au moins).

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

  • # vitesse

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

    La vitesse est-elle un critère pertinent quand on parle de musique, avec donc un tempo dépendant de l'œuvre et non du lecteur?

    Ne veut-on pas plutôt parler d'usage cpu à la place?

  • # Détails techniques

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

    Un résumé rapide du principe de ce player.

    Les fichiers MOD sont basés sur deux choses: des "samples" (échantillons sonores, qui peuvent être rejoués à différentes fréquences pour jouer des notes différentes), et des "patterns" (qui indiquent quel sample jouer à quel moment, à quelle fréquence, à quel volume, etc).

    Sur Amiga, la partie "sample" est gérée par le matériel: on dispose de 4 canaux (2 à droite et 2 à gauche sur la sortie stéréo) alimentés par des DMA, avec un réglage du volume et de la fréquence.

    Toute la difficulté est donc la gestion des "patterns". Les fichiers MOD ont un format simple sous forme d'une liste de notes, chacune associée à un numéro de sample, un volume et un effet spécial. Un lecteur de musique MOD classique va directement lire ce format (ou une variante simplifiée ou compressée) et calculer en temps réel les fréquences, volumes, etc correspondants (les "effets" pouvant modifier les valeurs par rapport à ce qui est indiqué dans la liste de départ du pattern).

    Ce que fait LSPlayer, c'est de précalculer à l'avance tout ça. Les patterns sont donc remplacés par une liste d'évènements de type:

    • Temps 0: lancer le sample à l'adresse X, sur le cannal A, avec un volume 7 et une fréquence N
    • Temps 1: changer le volume du canal A à 6
    • Temps 10: changer la fréquence du canal A à N+2

    Ainsi, le player proprement dit n'a plus aucun calcul à faire, seulement à programmer ces valeurs directement dans les canaux DMA et la puce son.

    Le compromis est qu'une telle liste va peut-être occuper plus de mémoire que le fichier original. Mais, en pratique, le format MOD n'est déjà pas très compact, et en plus, de toutes façons, la plus grande partie de la mémoire nécessaire est occupée par les samples. C'est donc un tr`s bon compromis finalement.

    Leonard n'en est pas à son coup d'essai sur le sujet: cette technique est en fait assez directement inspirée de ce qu'il avait déjà fait il y a plusieurs dizaines d'années avec les fichiers YM permettant de faire la même chose, mais avec la puce son de l'Atari ST: stocker directement la liste des valeurs à programmer dans la puce, plutôt que de les calculer en temps réel à partir de données plus haut niveau.

    Reste un dernier problème: la version pour Atari ST du player doit s'adapter à un matériel complètement différent, pas du tout pensé pour jouer des fichiers MOD (ou plutôt, l'inverse: les fichiers MOD ont été conçus en accord avec les spécificités de l'Amiga). Là, je n'ai pas regardé quelles astuces et tours de magie sont exploités pour y parvenir. En principe il faut faire logiciellement le mixage, car il n'y a que 2 canaux DMA au lieu de 4, et si je me souviens bien, en plus, leur fréquence n'est pas configurable (ça c'est pour l'Atari STe et Falcon, pour les machines précédentes, c'est encore pire).

  • # Scene demo

    Posté par  . Évalué à 3.

    Tu donnerais quelle définition de "scene demo", de la scene demo actuelle si le terme a pris un cens différent ?

    J’en ai une certaine idée depuis longtemps et je n’ai pas encore souhaiter demander à Google. Et comme tu emplois le terme j’espère avoir les moyens de te faire parler.

    • [^] # Re: Scene demo

      Posté par  . Évalué à 3.

      https://fr.wikipedia.org/wiki/Scène_démo

      Je suis assez d'accord sur la définition du site ;)

      Leonard est un performeur, j'ai eu l'occasion de le connaître IRL…
      Il a été un des premiers à faire du scrolling hardware + fullscreen sur Atari ST (alors que ce n'est pas possible, il n'y a rien dans le hard qui permet de le faire, a contrario du hardware de l'Amiga). Il passait pas mal de temps à optimiser son code.

      • [^] # Re: Scene demo

        Posté par  . Évalué à 3. Dernière modification le 29 février 2024 à 22:17.

        Donc on ne peut pas dire par exemple que certains logiciel de « visualization » de musique qui affichent des espèces de formes psychédélique (ou pas) qui suivent la musique peuvent être issus de la scene demo ?

        C’est donc un domaine plutôt distinct, qui n’a pas trop de rapport avec le VJing ? Malgré que des demos puissent être drivées par de la musique. L’aspect optimisation du code étant central dans le délire.

        C’est vrai qu’aujourd’hui, sur du matos moderne, qu’est-ce que tu pourrais afficher qui témoignerait d’une optimisation astucieuse des capacités du matériel… ^^

        • [^] # Re: Scene demo

          Posté par  (Mastodon) . Évalué à 4. Dernière modification le 01 mars 2024 à 08:51.

          Si c'est du VJing, mais sous forme de concours à qui peut le faire mieux avec des contraintes très strictes, et donc via une programmation informatique optimisée.

          C’est vrai qu’aujourd’hui, sur du matos moderne, qu’est-ce que tu pourrais afficher qui témoignerait d’une optimisation astucieuse des capacités du matériel… ^

          Même avec le matos actuel ce n'est pas si facile car ton intro doit tenir dans 4KBytes. Idem pour les demos 64KB. Moins d'optimisation CPU, + d'optimisation GPU.

          • [^] # Re: Scene demo

            Posté par  . Évalué à 3.

            doit tenir dans 4KBytes. Idem pour les demos 64KB

            Ah oui, avec ce genre de contrainte en effet, peu importe la puissance du matériel dans ce cas. Ça me fait penser au Code golf dans le même genre, sauf que là c’est la taille du code source qu’il s’agit de minimiser.

            Je suis absolument admiratif des personnes capables de ce genre d’exploit.

            En tous cas merci pour vos réponses j’ai une idée plus clair de ce qu’est la demo scene et content de constater qu’elle existe toujours bel et bien.

            • [^] # Re: Scene demo

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

              elle existe toujours bel et bien.

              pouet.net est la porte d'entrée et permet de se tenir au courant de ce qui sort (et des parties). Il y a de belles choses récentes y compris sur vielles machines :)

        • [^] # Re: Scene demo

          Posté par  . Évalué à 4. Dernière modification le 01 mars 2024 à 12:14.

          Je trouve aussi que le live coding est un intermédiaire intéressant entre le VJing et la scène démo.

          En libre, il y a des outils comme Fluxus (visuel), Supercollider (audio) ou Pure Data (audio et visuel).

      • [^] # Re: Scene demo

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

        Il a été un des premiers à faire du scrolling hardware + fullscreen sur Atari ST (alors que ce n'est pas possible, il n'y a rien dans le hard qui permet de le faire,

        Heu comment faire un scroll hardware+fullscreen sur ST si ce n'est pas possible ? :D A coup de fer a souder ?
        Tu veux probablement dire : "alors que ce n'est pas fait pour", ce qui correspond plus aux joies de la démo :D Quoique…

        • [^] # Re: Scene demo

          Posté par  . Évalué à 3. Dernière modification le 04 mars 2024 à 14:23.

          En bricolant à mort les interruptions du CPU provoquant de nombreux changements (de résolutions je crois) par secondes dans la puce GFX, je n'ai pas plus de détails… Je ne suis pas équipé avec le bon CPU pour comprendre vraiment ;)

Suivre le flux des commentaires

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