Publicité

Annonce

Réduire
Aucune annonce.

La rétro-ingénierie du DX7 par Ken Shirriff

Réduire
X
 
  • Filtre
  • Heure
  • Afficher
Tout nettoyer
nouveaux messages

  • La rétro-ingénierie du DX7 par Ken Shirriff

    J'avais atterri sur le blog de Ken Shirriff, righto.com, pour un sujet assez anodin, qui portait sur la sécurité intrinsèque des chargeurs de smartphone à bon marché. Mais en fait, j'y suis resté parce Shirriff est un véritable sorcier de la rétro-ingénierie de vieux équipements informatiques. D'un billet à l'autre, on voit qu'il est capable de décortiquer et retracer le fonctionnement de CI mythiques, comme d'intégrer la dream team remettant en route les équipements d'époque des missions Apollo (voir à ce sujet les vidéos postées par son compère, Curiousmarc).

    Mais pour en revenir au thème de notre forum, j'étais resté comme deux ronds de flanc sur une paire d'articles sortis en fin d'année dernière, et qui répondaient à une de mes grandes questions existentielles : comment en 1983 avait-on pu faire tenir dans synthé la puissance de calcul nécessaire à la génération de sons polyphoniques ?
    Personnellement, je suis entré en contact avec la FM un peu plus tard avec le VSS-100 qui comme pas mal de Portasounds devait recourir à de la FM 2op basique, mais c'est la flexibilité de programmation de mon DX100 qui m'a fait me poser la question. J'avais une idée pas trop mauvaise du principe théorique de la FM (ou modulation de phase comme disent les puristes !), mais rapporté à ce que j'avais côtoyé comme informatique programmable à l'époque (Oric, Apple II, Spectrum...), cette mise en pratique, c'était un peu magique.

    Capture1.PNG



    Je comparais évidemment des pommes et des oranges :une partie de la magie résidait manifestement dans le fait que Yamaha recourait à des CI spécialisés. Mais spécialisés à quel point ? C'est là que les articles de Shirriff m'ont cueilli.

    L'idée de Ken Shirriff était notamment de décortiquer les composants du DX7 afin de contribuer à améliorer encore les émulateurs, en récupérant des valeurs "vraies".
    Le premier article, c'est la prise de contact avec l'YM21280, un des deux principaux circuits dédiés du DX7 : https://www.righto.com/2021/11/rever...amaha-dx7.html.
    Et ça tape tout de suite dans le dur en comparant une vue au microscope du die de l'YM avec le schéma du brevet Yamaha.
    Capture2.PNG


    Capture3.PNG




    Différentes fonctions sont explorées, avec leur implémentation sur le circuit imprimé, dont les "briques de base" : la table de valeurs représentant un sinus, les registres à décalage, et les additionneurs. Après avoir lu des échanges sur Yamahasynth, j'avais déjà appris qu'en fait la forme d'onde sinusoïdale n'était pas calculée à partir de 0, mais lue d'une façon spécifique dans une table de valeurs figées. Je supposais naïvement qu'une ROM à part les contenait : non, non, en fait ces valeurs sont gravées dans le CI lui-même. Pour ma part j'étais loin d'imaginer une telle intégration.

    La seconde partie est consacrée au "circuit exponentiel" : https://www.righto.com/2021/11/rever...ha-dx7_28.html. Comme je le comprends, il était plus efficace de recourir à l'addition de logarithmes plutôt que de multiplier les valeurs nécessaires à la création du son. Mais je ne suis pas matheux, alors...

    Enfin la troisième partie se penche sur la table "log-sin" évoquée plus haut, et la façon dont les valeurs sont codées "en dur" : https://www.righto.com/2021/12/yamah...-part-iii.html.

    rom-closeup.jpg



    En examinant de près la ROM, vous pouvez voir les transistors individuels qui stockent les bits. Un transistor représente un 1, et l'absence de transistor représente un 0. Ainsi, les données de la mémoire morte sont créées par le modèle de dopage du silicium. J'ai pu lire les données de la ROM visuellement en regardant ce modèle.


    Cette série de billets ne m'a pas complètement éclairé, mais lorsque je vois un ténor comme Shirriff qualifier certaines solutions d'ingénieuses, ça me console d'être un peu laissé à la traîne
    En tout cas je comprends que les concepteurs de l'époque étaient des champions de l'optimisation de ressources !
    .


    Pour les bases théoriques de la FM, et si l'anglais vous rebute, il y a aussi le chouette article de Floyer, avec une maquette de synthétiseur FM en ligne : https://www.sinerj.org/~loyer/FM/index.html

    Dans les notes du premier billet, on trouve un papier extrêmement fouillé sur la prédominance du preset E.PIANO1 dans la pop des années 80 : https://meganlavengood.com/wp-conten...DX7-Electr.pdf.

    J'avais ce sujet sous le coude depuis un moment, ce n'est pas du tout parce Deus Ex Silicium nous a trollé hier sur la modulation de phase que je le ressors aujourd'hui. Non, pas du tout (en fait, je pense que pas mal de monde, moi le premier, aimerait le voir enfin aborder le décorticage des synthés, FM/PM ou pas !) Capture8.PNG
    Dernière modification par Daviplane, 07 juillet 2022, 07h54. Motif: Edit : mise en page
    « C'est pas de l'electro...» (valable 99% du temps)
    Roland FA-06, Studiologic Sledge Black Edition

  • #2
    Excellent ! Merci beaucoup Daviplane !
    Nord Stage 3 HP76 - Roland Fantom 06 - Piano Yamaha LU101
    RME Fireface 802 - Dell XPS 15 (Windows 10 x64) / Cubase 12 / VST Live / Camelot Pro / Plugs...
    Ibanez Electro Acoustique / Fender Precision Bass / Fender Strat

    [CHARTE AK] [Mettre un avatar (tuto)] [Choisissez un bon titre de message et de section]

    Commentaire


    • #3
      Super intéressant, tout comme la personne sous le pseudo Deus Ex Silicium qui explique beaucoup de chose en électronique...

      Commentaire


      • #4
        Très intéressant !

        le coup des logarithmes est aussi utilisé dans dexed, un émulateur DX7 dont les sources sont disponibles. Cf https://github.com/asb2m10/dexed

        L’idée est que A*B = exp( ln(A) + ln(B) )

        Les logarithmiques sont données par table de valeurs (au lieu d’avoir une table d’onde en sinus, c’est directement en ln(sinus)… cela ne coute rien.

        idem exponentielle par table de valeurs… (mais cela semble un peu plus compliqué).

        Je suppose que tu as déjà fait des additions et multiplications à la main et constate que les additions sont bien plus simples. Pour un CPU, c’est pareil en pire (à cause de la base 2).

        NB : mon père avait des tables de logarithmes pour faciliter les multiplications… le principe était donc déjà réalisé à la main.
        Dernière modification par floyer, 07 juillet 2022, 10h21.
        http://www.sinerj.org/~loyer/piano/

        It's never too late to learn to play the piano. (tip of the day)

        Côté piano : Yamaha N1X, pianos VSL Syncron et Vienna Imperial, Garritan CFX, Bechstein Digital Grand, Ivory, Galaxy et beaucoup d’autres pianos virtuels - Côté synthé : Roland A-500 Pro, Native-Instruments Komplete 13, Arturia V Collection 9, Korg Collection 3, Air Music Technology plugins, OP-X Pro II, dexed (émulateur DX7 libre), Yamaha S-YXG50 - DAW : Reaper 6, Cubase Artist 9 - Interface audio : Steinberg UR22 - Casque : AKG K-702

        Commentaire


        • #5
          Oh mais le fait que l'addition soit plus économe pour le processeur qu'une multiplication, je n'en doute pas. Pour moi la sorcellerie se trouve dans les tables de logarithmes elles-mêmes

          Et pourtant je rumine ça depuis moins longtemps, depuis cette vidéo d'un autre de mes youtubeurs favoris, Clifford Stoll

          « C'est pas de l'electro...» (valable 99% du temps)
          Roland FA-06, Studiologic Sledge Black Edition

          Commentaire


          • #6
            Le coup de la règle à calcul de 1m (d’habitude d’est plutôt 20 à 30cm) et motorisée ! m’a scié. En tout cas ta vidéo est très didactique.

            Ce qui est assez surprenant c’est que le logarithme est défini de façon assez éloigné de l’emploi que l’on en fait ici. En gros, tu traces la courbe y=1/x, et le logarithme de x est l’aire sous la courbe entre 1 et x…….. (pour les connaisseurs, c’est une intégrale) trouver une utilité aussi majeure et pratique à cette fonction peut être qualifié de sorcellerie comme tu le dis ! Heureusement, il n’y a plus de procès en sorcellerie ni de bûcher…

            Je reste épaté au sujet de l’ingéniosité des concepteurs de circuits intégrés des années 80 : peu de puissance des transistors et il faut sortir des résultats assez rapides pour l’époque. Dans le genre, il y a https://www.jacques-laporte.org/LeSe...lgorithmes.htm au sujet des algorithmes bien affinés de la première calculatrice scientifique de poche (là on est plutôt dans le début des années 70), mais l’idée est toujours comment obtenir le maximum de transistors pas très rapides. (Ceci-dit, même maintenant, c’est pareil : AMD, Intel se tirent la bourre pour faire les CPU les plus puissants).
            Dernière modification par floyer, 07 juillet 2022, 21h40.
            http://www.sinerj.org/~loyer/piano/

            It's never too late to learn to play the piano. (tip of the day)

            Côté piano : Yamaha N1X, pianos VSL Syncron et Vienna Imperial, Garritan CFX, Bechstein Digital Grand, Ivory, Galaxy et beaucoup d’autres pianos virtuels - Côté synthé : Roland A-500 Pro, Native-Instruments Komplete 13, Arturia V Collection 9, Korg Collection 3, Air Music Technology plugins, OP-X Pro II, dexed (émulateur DX7 libre), Yamaha S-YXG50 - DAW : Reaper 6, Cubase Artist 9 - Interface audio : Steinberg UR22 - Casque : AKG K-702

            Commentaire

            Chargement...
            X