[THREAD] C'est la fin d'année, l'heure des bilans et des regards émus en arrière. Aujourd'hui, je vais vous conter une belle aventure de jeu vidéo, de son et d'archivage vécue avec @Percight. Voici comment nous avons résolu le mystère de l'audio dans Conker's Bad Fur Day !
Le sous-titre de cette aventure pourrait être "Comment j’ai failli diffuser une information fausse en pensant qu'elle était l'explication la plus plausible à un truc incompréhensible". On en tire des leçons, j'espère donc que ce petit post-mortem servira à d'autres ! \o/
Tout a commencé il y a plus d'un an à vrai dire. Lorsque j'ai fait mon thread sur le son de la Nintendo 64. À l'époque, je suis restée vague sur certaines choses, mais j'ai alors remarqué que Conker's était un jeu au son... particulier.
Pourquoi particulier ? Eh bien parce qu'il semble que Rare soit l'un des premiers studios à avoir mis de l'audio encodé en MP3 (format de compression récent à l'époque) dans ses jeux sur ce support.
Ce qui a posé quelques soucis aux curieux qui ont ensuite tenté d'extraire ces fichiers. En cherchant plus d'informations sur la question, je tombe sur un post au détour d'un forum technique où quelqu'un a extrait les dialogues de la ROM, mais se heurte à un os de taille.
Toutes les voix des doublages sonnent comme dans le jeu, sauf une. Au milieu des dialogues fleuris, Conker a un drôle de ton, comme si son débit de parole était "accéléré"… Une erreur d'extraction ? (source : vg-resource.com/thread-28025.h… )
J'en parle à @Percight quelques mois après, et mon hypothèse de l'extraction mal faite saute vite : l'”erreur” est tellement systématique et propre à l'écureuil que nos instincts d'inspecteurs-VGM sursautent. Ça cache forcément quelque chose. Ni une ni deux, l'enquête commence.
On se procure les fichiers, et on les analyse avec nos outils. Très vite, on constate que les lecteurs audios réagissent différemment aux passages où Conker intervient : certains lisent bien sa voix en accéléré, mais d'autres la passent à la moulinette, la rendant inaudible.
Faute de mieux, nous décidons de suivre la piste de l'accélération : c'est le résultat le plus stable. Et puis, je dois parler de cette histoire en conférence très bientôt, en février 2020. Après discussion, on arrive à une… intéressante hypothèse.
Et si la voix de Conker était accélérée pour des raisons… techniques ? Après tout, la plupart des histoires de ce genre trouvent leur source dans les restrictions des supports et consoles. Et si tout était fait, comme supposé sur le forum initial, pour gagner de la place ?
Je vous vois froncer les sourcils, mais vous allez voir, le cheminement est plutôt simple. Le fichier est déjà compressé par son format (MP3) : pour qu'il prenne moins de place, on lui a retiré des fréquences "inutiles". (je vous en parlais par ici )
Si cela ne suffit toujours pas (pour rappel, le jeu tient sur 64 Mo) une autre solution est de "raccourcir" le fichier. Si la vitesse du son est par exemple doublée par rapport à l'original, alors l'audio prend la place d'un fichier qui dure 5 secondes au lieu de 10 ! Magie !
Il ne reste ensuite plus qu'à faire jouer le fichier deux fois plus lentement par la machine, et le tour est joué ! Le débit binaire des voix dans Conker plafonne à 40 kb/s et descend jusqu'à 24 kb/s, une qualité juste suffisante pour que la parole soit compréhensible.
Difficile de compresser plus par souci d'intelligibilité. Accélérer la voix pour la faire ralentir au décodage serait donc l’ultime rempart technique, le petit truc de la dernière chance pour gratter la moitié de l'espace alloué à la voix et ne pas surcharger la cartouche. Malin.
Mais tout ne colle pas, à commencer par : "Pourquoi juste la voix de Conker et pas celle des autres personnages ?" Dans le doute, juste avant la conférence, je contacte le compositeur du jeu, Robin Beanland, afin de lui demander confirmation.
Très gentiment, il nous répond, et c'est la douche froide : il n'a jamais entendu parler d'une telle pratique. Il nous fournit d'autres informations essentielles, mais pour lui, cette accélération sonne comme une erreur, quelque chose qui ne vient pas du jeu. Game Over ?
Déception : j'étais persuadée d'avoir trouvé une anecdote technique super intéressante et vraiment rare. Mais force est de constater que je me suis monté la tête : accélérer le son pour ensuite le jouer au ralenti, et puis quoi encore ?
Malgré tout, j’en parle à ma conférence : la salle est remplie de vétérans de l'audio. Je veux les sensibiliser en leur montrant comment on peut mal interpréter l'angle historico-technique en manquant d'informations et d'outils. Leur réaction est pour le moins… surprenante.
Non seulement personne n'a l'air surpris par cette "folle théorie” contrariée, mais en plus, on me répond en riant : "Si si, c'est possible ! Les compositeurs ne savent pas toujours tout ce qui se passe en arrière-boutique, même s'ils sont impliqués !"
La théorie du son accélérée serait-elle donc vraie ? On me confirme à demi-mot que c'était une technique plutôt répandue à une époque, qui a couru jusqu'à la PS3. Une nouvelle porte s'ouvre et je ressors de la conférence exaltée, mais le cerveau un peu en vrac.
De son côté, @Percight creuse la question en analysant manuellement l’hexadécimal d’un fichier. Il constate une chose troublante : l’existence de deux entêtes distincts pour la voix de Conker. Avec un débit binaire constant, comme ici, on s’attend pourtant à une uniformité.
[La suite du thread arrive vite ! Qui a raison ? Parviendra-t-on à résoudre le mystère derrière la voix de Conker ? La réponse après une petite explication technique un peu musclée, mais la conclusion est accessible, promis.]
Pour rappel, les fichiers MP3 sont constitués d'une accumulation de frames. Chaque frame s'identifie par un entête (header) contenant des métadonnées sur quatre octets. Elles donnent surtout des infos techniques et essentielles au décodage (comme la fréquence d’échantillonnage).
Mais elles comptent aussi deux bits purement descriptifs : l’un doit permettre de savoir si on a affaire à du contenu copié (= 0) ou non (= 1) tandis que l’autre est censé indiquer si l’audio est protégé par copyright (= 1) ou non (= 0).
Le bit de copyright est justement celui qui distingue de l’entête le plus fréquent celui qui apparaît seulement pour la voix de Conker. Son dernier octet est en effet égal à 0xC8 plutôt qu’à 0xC0 (les quatre derniers bits valant 1000 au lieu de 0000).
Mais plutôt que de jouer son rôle attendu (qui aurait peu de sens dans ce contexte), le bit est à 1 pour indiquer au décodeur MP3 que des données supplémentaires ont été intercalées entre la fin de la frame à laquelle l'entête est rattaché et le début de la suivante.
Donc, cela signifie que les développeurs ont procédé à un ajout d'informations, mais lesquelles ? On ne le sait pas du tout, et c'est bien là le problème : les lecteurs audios sont également déroutés par ce changement, et interprètent chacun ces instructions à leur manière.
Après plusieurs expériences, @Percight bidouille les fichiers et retire ces informations : le son devient normal. Il constate alors que si elle va plus vite, la voix de Conker ne prend en fait pas moins de place. Elle est même plus volumineuse puisqu’il y a davantage d'octets !
Bon, on parle de neuf octets supplémentaires par frame concernée, mais c'est une information capitale : quel que soit leur rôle, le contenu en devient plus lourd. La théorie du gain d'espace s'éloigne à nouveau, et on pédale alors fermement dans une épaisse choucroute.
En bref : plus on nous confirme que notre théorie initiale est potentiellement juste, plus on trouve d'informations nous disant le contraire. Une question persiste et reste insoluble : à quoi servent ces fameux octets en plus qui fichent la voix en l’air ? Pourquoi sont-ils là ?
La seule certitude qu'on en retire, c'est que les variantes de rendu viennent de ces informations “en trop”, que les lecteurs audios ne savent pas interpréter correctement. On est dans de la customisation spéciale, et la réponse pourrait être plus ou moins n'importe quoi.
Faute de réponse évidente, le mystère s'épaissit : un son qui devient audible quand on lui retire des informations ? Qu'est-ce que c'est que ça encore ? On est sur le point de jeter l'éponge...
Jusqu'à ce que je propose d'écrire un article sur la N64 pour le @CPCHardware n° 46. Il est alors hors de question de 1) ne pas parler de cette histoire, et 2) raconter des bêtises. On décide de relancer les recherches et, peu avant la deadline, je tente une ultime piste.
Je contacte Mike Currington, ancien Audio Software Engineer de Rare (et sur Conker). Je lui explique notre étrange quête, et lui demande s'il peut éclairer notre lanterne enfumée. Par chance, il nous répond et se souvient bien de quelque chose. Soudain, tout devient limpide.
En fait, si les lecteurs audios deviennent fous en lisant la voix de Conker, c'est parce que les neuf octets anormaux que @Percight a identifiés ne sont pas là pour... le son. Ils sont liés à quelque chose d'autre, quelque chose de très important pour le jeu.
Et ce quelque chose, c'est les mouvements de la bouche de Conker, ce qu'on appelle le “lip-sync”. Ces 9 octets ajoutés viennent de l'outil développé par Mike Currington pour faciliter le travail des animateurs et rattacher ses nombreuses expressions aux articulations de sa voix.
(Il s'agit de fait du seul personnage à avoir des expressions faciales complexes dans le jeu, donc du seul à avoir besoin de données supplémentaires pour les synchroniser correctement avec la voix.)
Ici, mon cerveau a fait un virage à 180°, et j’ai repris l'article en criant "noooon, on ne peut pas le publier en l'étaaaaaat", pour changer toute la fin peu de temps avant la deadline.
La suite, certains la connaissent : le monde est sauvé, l'article est publié avec la bonne information (c'était difficile de tout faire tenir dans la limite de caractères allouée, mais on a fait au mieux, merci à @DandumontP pour sa patience 🦄).
Et voilà, tout est bien qui finit bien ! Mais l'aventure ne s'arrête pas là et nous laisse sur plusieurs questions : tout d'abord, il y a cette histoire d'accélération pour gain de place, qui semble avoir vraiment existé, mais n'est pas (ou peu) documentée.
… Autant vous dire que "Trouver des jeux qui utilisent cette méthode" est en tête des bonnes résolutions de 2021 ! Mais une autre question plus archivistique se pose : quelle valeur accorder à ces octets en trop qu'on a enlevés pour "réparer" le fichier, ou à ces accélérations ?
L'instinct nous pousse à dire que le fait que l'audio soit fidèle à ce qui est entendu en jeu prime. Mais d'un point de vue historique, en faire abstraction revient à ignorer des informations fondamentales, qui nous racontent une histoire essentielle sur le développement du jeu.
À défaut de pouvoir encapsuler correctement les informations, on laisse au moins une trace écrite à leur sujet, afin qu'elles ne soient pas oubliées. Mais ce n'est qu'une anecdote parmi tant d'autres qui restent encore à découvrir !
N'épiloguons pas plus longtemps, mais retenons ces quelques leçons : aller au fond des choses, ne jamais trop compter sur l'évidence, parler plus avec les développeurs. Et surtout : l'erreur fait partie du processus, elle nous réserve toujours des surprises ! Il faut se tromper !
Sur ce, je vous souhaite une année 2021 mille fois meilleure que ne l'a été 2020. C’est une période particulièrement difficile pour beaucoup, et à défaut d'avoir un gros impact, j'espère que mes threads et articles vous ont permis de vous changer un peu les idées !
Évidemment, un grand merci à toutes les personnes qui ont fait route avec moi, qui ont rendu cette année encore plus riche et passionnante que prévu à travers de nombreuses collaborations. Plusieurs sont toujours en cours, certaines ont été retardées, mais sont en route. 🤓
Et dans le cadre de ce thread, un grand merci à @Percight qui a grandement contribué à sa construction en s'occupant des aspects techniques (allez donc faire un tour sur son compte  !). Puisse 2021 nous donner de nouvelles occasions de nous tromper et de faire des découvertes !
P.S. : Pour ceux qui veulent tout savoir sur cette histoire, un post-mortem complet, plus détaillé techniquement est en cours de rédaction et sera publié dans quelques semaines. Il sera gratuit, accessible à tous, et écrit en anglais (car publié sur un site anglophone).

• • •

Missing some Tweet in this thread? You can try to force a refresh
 

Keep Current with Fanny Rebillard

Fanny Rebillard Profile picture

Stay in touch and get notified when new unrolls are available from this author!

Read all threads

This Thread may be Removed Anytime!

PDF

Twitter may remove this content at anytime! Save it as PDF for later use!

Try unrolling a thread yourself!

how to unroll video
  1. Follow @ThreadReaderApp to mention us!

  2. From a Twitter thread mention us with a keyword "unroll"
@threadreaderapp unroll

Practice here first or read more on our help page!

More from @Cactuceratops

16 Jun 19
Il est venu le temps des ca-thread-rââââââleuh ! 🎶
Non, je ne dis pas ça à la légère, parce qu'aujourd'hui, on s'attaque à un monument de l'histoire du JV. La musique sur la première PlayStation, ça vous dit quelque chose ?
L'autre jour, j'ai discuté avec le compositeur Philippe Vachey de son travail sur l’emblématique Little Big Adventure. Comme le Kickstarter du projet de Suite Symphonique ferme dans quelques jours, j'ai eu envie de vous faire un petit thread sur le sujet en guise de soutien !
Pour ceux qui ne connaissent pas, LBA1 est un jeu d'aventure sorti sous MS-DOS en 1994, puis porté sur PlayStation en 1997, juste avant l'arrivée de LBA2. L'occasion rêvée de parler d'un sujet qu'on a effleuré de très loin jusqu'à présent : le support CD.
Read 52 tweets
8 May 19
Après plusieurs recherches et discussions passionnantes (cc @Zetsuboushitta ), je ne peux résister à l'envie de vous parler du son sur une console dont on n’entend pas beaucoup (et pour cause, on va le voir) parler : la Nintendo 64.
En effet, une question m'a récemment frappée : on parle souvent du son sur NES, SNES, des prouesses de leurs compositeurs, de la fracture avec le support CD et l'arrivée révolutionnaire de la PlayStation. Pourtant, on aborde peu cette première console 3D de la firme de Kyoto.
Une enquête s'est donc imposée, et voici mes résultats actuels. Dans ce petit thread, nous allons parler non seulement de ce qu'était la composition pour ce support, mais aussi des difficultés d'interprétation qu'il présente aujourd'hui.
Read 50 tweets

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just two indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3/month or $30/year) and get exclusive features!

Become Premium

Too expensive? Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal Become our Patreon

Thank you for your support!

Follow Us on Twitter!