Point de vue : Le développement de Rave (troisième partie)
(Article écrit par Daniel Jedlicka et extrait de Rear Window - février 2022)
Note : traduction par David Brunet.
Noël 2021 approchait à grands pas et il était clair pour moi que je manquerais à nouveau la date magique
de sortie de mon application (soupir...). Je travaillais sur l'éditeur audio Rave depuis bien plus de
deux ans, et vous pouvez imaginer à quel point j'étais frustré de ne pas être encore prêt à sortir une
version fonctionnelle, avec toutes les caractéristiques que j'avais envisagées pour la sortie publique
initiale. Pire : je commençais à craindre que - malgré la documentation du processus de développement
sur ce blog et la publication de captures d'écran sur Facebook - certains de mes suiveurs soient devenus
suffisamment sceptiques pour croire que le programme n'était rien d'autre qu'un projet sans lendemain ! Heureusement,
à peu près au même moment, j'ai reçu un courriel de Roman "kas1e" Kargin, l'une des forces motrices derrière
plusieurs développements passionnants d'AmigaOS 4. Le message de Roman était du genre "Hé, que dirais-tu
de m'envoyer une démo et j'en ferai une vidéo, montrant le programme en action ?".
Je n'avais pas pensé à faire une vidéo moi-même parce que, premièrement, je n'ai pas les compétences et
l'expérience pour le faire et, deuxièmement, une telle tâche ne ferait que consommer davantage de mon
précieux temps pour la programmation Amiga. Mais je savais qu'une vidéo valait mille captures d'écran, j'ai
donc accepté avec plaisir l'offre de Roman et j'ai attendu le résultat avec impatience. Il a publié la vidéo
le lendemain de Noël, et comme elle apparaît maintenant, je n'aurais pas pu espérer un meilleur moment.
La période des fêtes de fin d'année suscite toujours beaucoup d'attentes dans le camp Amiga, il y avait
donc une chance qu'une grande nouvelle vole toute l'attention. Mais le Noël de l'année dernière a été plutôt
pauvre en sorties majeures pour AmigaOS 4, alors j'ai été heureux de voir que la vidéo a été remarquée sans
problème. Au cas où vous ne l'auriez pas vue :
Maintenant que la vidéo de Roman Kargin a montré que Rave est bien vivant, vous vous demandez peut-être quel
est le vrai problème. En toute honnêteté, le principal coupable est mon côté perfectionniste. Je connais les
avantages de l'approche "sortir tôt et améliorer plus tard", mais ce n'est pas comme ça que je travaille.
Je déteste sortir quelque chose que je ne considère pas comme suffisamment bon, et même si je comprends que
la notion de "suffisamment bon" est relative et subjective, c'est simplement ce que je ressentais à propos
de Rave vers la fin de l'année. Non pas que le programme souffrait d'imperfections majeures, mais il manquait
une fonctionnalité qui - si l'éditeur était publié - attirerait sûrement des commentaires négatifs, faisant
paraître Rave pire qu'il n'est. Cette fonctionnalité manquante était la gestion du format MP3.
"Pas de MP3, vous dites ? Impensable !" La raison pour laquelle Rave n'était pas prêt à gérer ce populaire format
est qu'il n'était pas géré par libsndfile, la bibliothèque audio utilisée par le module d'entrées-sorties de
mon éditeur. À ce moment-là, les brevets audio MPEG de Fraunhofer avaient déjà expiré, mais bien que le principal
obstacle ait disparu, l'auteur de la bibliothèque ne semblait pas s'en soucier. J'envisageais d'écrire mes
propres routines de gestion des MP3 lorsqu'un message du forum a mentionné que l'un des nouveaux mainteneurs de
la bibliothèque libsndfile avait finalement commencé à s'y intéresser. Cela ressemblait à une bonne nouvelle.
Une nouvelle version publique a finalement été publiée en janvier 2021, et devinez quoi - la gestion du MP3 était
toujours absent. "Ce n'est pas grave, ça viendra plus tard dans l'année", me suis-je dit. Et puis soudain,
Noël 2021 est arrivé, et il était clair que Rave allait malheureusement devoir rester en attente un peu plus
longtemps.
Néanmoins, les réactions positives que j'ai reçues après la publication de la vidéo de Roman Kargin sur sa
chaîne YouTube m'ont donné un petit coup de pouce. Peu après le jour de l'an, j'ai contacté Fredrik Wikstrom et
lui ai demandé s'il pouvait porter la dernière version non publique de libsndfile pour moi. J'estimais mes
chances plutôt minces car Fredrik Wikstrom, en plus d'être un des principaux développeurs d'AmigaOS 4, est
également occupé à travailler sur ses propres projets. Eh bien, il m'a répondu trois jours plus tard et n'a
même pas pris la peine de me dire "oui" - il m'a envoyé la bibliothèque portée immédiatement ! Ce n'était pas
la première fois que Fredrik Wikstrom m'aidait, je n'ai donc pas hésité à visiter à nouveau son site Web et
à cliquer sur le bouton de don en bas de la page. Vraiment, ce sont des gens comme lui qui incarnent le
merveilleux esprit Amiga, et je leur suis éternellement reconnaissant de maintenir le bateau à flot.
L'utilisation d'une version non publique et non testée d'une bibliothèque écrite pour un système d'exploitation
différent était, naturellement, un peu un pari. Mais je suis heureux de dire que les choses se sont déroulées
plus facilement que je ne l'avais prévu. Maintenant que la dernière pièce manquante était en place, ajouter la
gestion des MP3 dans l'éditeur n'était qu'une question de quelques lignes de code. L'avantage d'utiliser une
bibliothèque comme libsndfile est que lorsqu'un nouveau type de fichier audio est ajouté, Rave en bénéficie
automatiquement. La version envoyée par Fredrik Wikstrom était également accompagnée d'un bonus inattendu :
le format Opus (un membre relativement nouveau de la famille Ogg), et le prédécesseur moins réussi du MP3,
le MPEG Audio Layer II, plus connu sous le nom de MP2. Ainsi, après une simple recompilation de mon module
d'entrées-sorties, Rave a ajouté trois nouveaux formats audio en une seule fois ! Le nombre actuel de types de
fichiers gérés est de dix-neuf - je me demande s'il existe un éditeur Amiga qui pourrait faire mieux que cela ?
La requête de fichiers montrant la liste actuelle des formats audio gérés
Alors, que reste-t-il à faire, et à quelle distance sommes-nous de la sortie de la chose ?
Il y a plusieurs choses sur lesquelles je travaille en ce moment. Tout d'abord, la sauvegarde nécessite
un code de configuration et une interface graphique pour les différents formats, que j'ai ajoutés un par
un. Seuls les principaux formats audio seront gérés dans les versions initiales du programme ; la sauvegarde
dans des formats moins courants viendra plus tard, si l'intérêt est là. Les musiciens par pistes seront
probablement heureux d'apprendre que la sauvegarde dans l'ancien format IFF 8SVX est déjà implémentée,
mais seulement en monophonique pour le moment (étant donné l'image chérie de l'Amiga en tant que "premier
ordinateur multimédia du monde", il est difficile de croire que la spécification IFF originale d'Electronic
Arts ne prenait pas en compte les formes d'onde stéréo - leur gestion n'a été ajoutée que plus tard par une
tierce partie. Malheureusement, les fichiers IFF stockent les données stéréo d'une manière non standard
que libsndfile ne gère pas, je dois donc écrire mon propre code de sauvegarde. Oh là là !).
Pour ajouter l'insulte à la blessure, un de mes testeurs a signalé certains problèmes liés à la mémoire
sur sa Sam460ex, que nous sommes en train d'examiner. C'est pourquoi j'ai ressorti ma vieille Sam440ep-Flex
de sa réserve et l'ai réinstallé afin d'avoir une machine supplémentaire pour les tests ; je veux vraiment
que Rave fonctionne de façon plausible sur toute la gamme de matériel AmigaOS 4. Avec ses faibles spécifications,
la Sam est plus adapté à la simulation de conditions de mémoire difficiles (vous tombez simplement à court
de mémoire plus rapidement) par rapport à mon AmigaOne X5000, et j'ai déjà résolu un problème de mémoire
insuffisante que mon vieux mais fidèle ordinateur a contribué à révéler. Les choses s'améliorent donc et si
aucun autre obstacle ne se présente, l'éditeur Rave devrait être disponible d'ici à quelques semaines. Comme
d'habitude, restez à l'écoute et affaire à suivre...