Obligement - L'Amiga au maximum

Vendredi 23 mai 2025 - 21:48  

Translate

En De Nl Nl
Es Pt It Nl


Rubriques

Actualité (récente)
Actualité (archive)
Comparatifs
Dossiers
Entrevues
Matériel (tests)
Matériel (bidouilles)
Points de vue
En pratique
Programmation
Reportages
Quizz
Tests de jeux
Tests de logiciels
Tests de compilations
Trucs et astuces
Articles divers

Articles in English


Réseaux sociaux

Suivez-nous sur X




Liste des jeux Amiga

0, A, B, C, D, E, F,
G, H, I, J, K, L, M,
N, O, P, Q, R, S, T,
U, V, W, X, Y, Z,
ALL


Trucs et astuces

0, A, B, C, D, E, F,
G, H, I, J, K, L, M,
N, O, P, Q, R, S, T,
U, V, W, X, Y, Z


Glossaire

0, A, B, C, D, E, F,
G, H, I, J, K, L, M,
N, O, P, Q, R, S, T,
U, V, W, X, Y, Z


Galeries

Menu des galeries

BD d'Amiga Spécial
Caricatures Dudai
Caricatures Jet d'ail
Diagrammes de Jay Miner
Images insolites
Fin de jeux (de A à E)
Fin de Jeux (de F à O)
Fin de jeux (de P à Z)
Galerie de Mike Dafunk
Logos d'Obligement
Pubs pour matériels
Systèmes d'exploitation
Trombinoscope Alchimie 7
Vidéos


Téléchargement

Documents
Jeux
Logiciels
Magazines
Divers


Liens

Associations
Jeux
Logiciels
Matériel
Magazines et médias
Pages personnelles
Réparateurs
Revendeurs
Scène démo
Sites de téléchargement
Divers


Partenaires

Annuaire Amiga

Amedia Computer

Relec


A Propos

A propos d'Obligement

A Propos


Contact

David Brunet

Courriel

 


Point de vue : Le développement de Rave (quatrième partie B)
(Article écrit par Daniel Jedlicka et extrait de Rear Window - septembre 2022)


Note : traduction par David Brunet.

Merci pour la mémoire

Lorsque Hyperion Entertainment a annoncé dans un article de 2014 de son blog qu'AmigaOS 4 allait bénéficier d'une gestion pour accéder à la mémoire au-delà de la limite de 2 Go, les réactions ont été mitigées. Comme on pouvait s'y attendre, les commentaires les plus acerbes sont venus de personnes qui n'avaient jamais possédé de système AmigaOS 4, mais le camp des supporters ne semblait pas non plus ravi. Peut-être que le titre de l'article ("Casser la barrière de la mémoire") semblait trop prometteur, et que la réalité n'était pas à la hauteur des attentes suscitées. Mais il y aurait probablement eu moins de déception si les gens n'avaient pas trop interprété le titre et avaient plutôt pris la fonctionnalité pour ce qu'elle est réellement. Parce que les objets de mémoire étendue ("Extended Memory Objects" ou ExtMem, comme la fonctionnalité est communément appelée) n'ont jamais été présentés comme autre chose qu'un pis-aller. Ou bien quelqu'un s'attendait-il sérieusement à ce qu'AmigaOS adopte miraculeusement l'adressage mémoire 64 bits ?

Cependant, les solutions provisoires sur AmigaOS ont tendance à devenir silencieusement des fonctionnalités permanentes (prenez AHI, par exemple), donc huit ans après l'annonce de Hyperion, nous n'avons toujours pas de meilleure solution. Pire encore, l'adoption de la fonctionnalité semble avoir été assez lente : le disque RAM du système (adapté pour ExtMem par Colin Wenzel) et SketchBlock d'Andy Broad sont les seules applications concrètes de la fonctionnalité que je connaisse. La principale raison pour laquelle les programmeurs ne se précipitent pas pour l'utiliser est probablement les limitations inhérentes à cette fonctionnalité; car, comme les critiques aiment le répéter, ExtMem est fondamentalement un retour à l'ancienne pratique de changement de banque que nous connaissons depuis l'ère des micro-ordinateurs. C'est ringard et technologiquement inepte, n'est-ce pas ?

Comme la plupart des logiciels audio, mon éditeur audio Rave peut être très gourmand en mémoire. Les formats compressés populaires tels que MP3 et la pratique de la lecture en continu ont détourné notre attention du fait que les données audio d'aujourd'hui peuvent facilement prendre des centaines de mégaoctets lorsqu'elles sont décompressées dans la mémoire de l'ordinateur. Cela peut être un problème sur un système 32 bits comme l'Amiga. J'étais donc naturellement curieux de savoir si ExtMem pouvait m'aider à relever certains des défis auxquels je faisais face. Et il ne m'a pas fallu longtemps pour commencer à chercher dans une direction particulière.

Après la sortie de la première version de Rave, les retours des utilisateurs ont clairement montré que la fonctionnalité la plus demandée était la fonction "Undo" (Annuler), c'est-à-dire la possibilité d'annuler les modifications apportées à la forme d'onde. Ce n'est pas une grande surprise : honnêtement, si j'étais à la place de mes utilisateurs, je serais l'un des premiers à souligner l'omission d'une fonctionnalité aussi importante ! Mais il est intéressant de voir à quel point nous en sommes venus à considérer la fonction "Annuler" comme acquise, car, croyez-le ou non, un éditeur audio Amiga doté de telles fonctionnalités est loin d'être acquis. J'ai récemment lancé un certain nombre de programmes de manipulation audio qui étaient populaires à l'époque. J'étais curieux de savoir comment mon nouveau-né Rave se compare à eux, et je voulais spécifiquement voir comment ils implémentent la fonction "Annuler", en espérant trouver de l'inspiration.

Rave
Aegis Audiomaster et Digital Sound Studio étaient mes éditeurs
d'échantillons de référence dans les années 1990


Les résultats de mes petites recherches ont été pour le moins surprenants. Sur les dix programmes que j'ai examinés, seuls trois proposaient une fonction d'annulation dédiée - et une seule des implémentations d'annulation que je qualifierais d'utile. Pour faire court, j'ai résumé mes conclusions dans un tableau :

Programme Version Date Implémentation d'annuler
Aegis Audiomaster IV 1.0 1991 Pas d'annulation
Megalosoud 1.35 1993 Annulation en une seule étape, les données sont stockées dans la RAM
GVP Digital SOund Studio 3.0b 1994 Pas d'annulation
Samplitude Opus 3.5 R9-5 1997 Pas d'annulation
SoundProbe 2.11 1998 Annulation en une seule étape, les données sont stockées dans la RAM
SampleE 4.08 2000 Pas d'annulation
SoundFX 4.3 2004 Pas de véritable annulation : les échantillons modifiés sont stockés en tant que nouveaux projets (ce qui consomme beaucoup de mémoire et augmente l'encombrement de l'écran)
Samplemanager 1.6 2005 Annulation illimitée, les données sont stockées sur le disque sous forme de fichiers temporaires
AmiSoundEd 0.12 2009 Pas d'annulation
SampleZ 0.15 alpha 2021 Pas d'annulation

Et le gagnant est (roulement de tambour) : Samplemanager de Thilo Köhler !

Même si je n'ai pas envie de montrer ce tableau à mes amis PCistes, les résultats m'ont redonné le moral car j'ai réalisé que beaucoup de mes prédécesseurs se sont gratté la tête sur la même chose que moi. Ils ont également confirmé ma petite théorie selon laquelle l'implémentation de la fonction "Annuler" n'est pas vraiment simple du point de vue du développeur. L'utilisateur peut penser qu'il suffit de vider les données d'échantillon dans une mémoire tampon et de les rappeler en cas de besoin, mais ce n'est vraiment pas aussi simple que cela, surtout si vous voulez le faire correctement.

D'un autre côté, je savais que j'étais dans une position différente avec les possibilités matérielles de la prochaine génération Amiga. Je me disais : si Samplemanager fonctionnait sur un Amiga classique il y a dix-sept ans, pourquoi devrais-je m'inquiéter sur un système AmigaOS 4 avec une mémoire et un accès au disque beaucoup plus rapides ?

Rave
Samplemanager de Thilo Köhler, un compagnon du séquenceur HD-Rec de l'auteur

Les tests préliminaires effectués sur mes deux systèmes Amiga, un AmigaOne X5000 et une Sam440ep Flex, ont montré qu'une solution basée sur disque serait plus que suffisante, j'ai donc décidé de suivre cette voie. J'ai écarté l'idée que la fonction "Annuler" stockerait les données dans la mémoire système normale. Imaginez une session avec dix projets audio haute définition ouverts, chacun conservant un historique d'édition distinct, chacun consommant une partie de la RAM à chaque fois que vous effectuez une modification destructrice. Le simple fait de penser à l'empreinte mémoire me fait frémir ! (bien sûr, je pourrais limiter l'historique à, disons, dix étapes pour éviter que les choses ne dégénèrent. C'est certainement une grande amélioration par rapport à l'absence totale de fonction "Annuler", mais alors que j'essaie de défendre AmigaOS 4 et son logiciel, je n'ai guère de pitié pour les solutions à moitié élaborées).

Malgré tout, avec 4 Go de mémoire installés dans l'AmigaOne X5000, j'étais intrigué par l'idée d'essayer ExtMem car ce que j'avais lu dans la documentation semblait encourageant, malgré les "vilaines" limitations qui gâchent la fête pour les puristes. Quelles sont-elles, en fait ? Par nature, AmigaOS ne peut pas adresser plus de quatre gigaoctets de RAM, ce qui laisse environ 2 Go d'espace adressable pour l'utilisation des applications. Le cadre d'application ExtMem permet aux applications de stocker plus de données que cela, en divisant les données en blocs (objets ExtMem) qui sont stockés dans la mémoire physique au-delà de la limite d'adressage. Le compromis est que tous les blocs de mémoire ne seront pas disponibles à un moment donné. En effet, un tel bloc doit d'abord être adressé dans la mémoire système, en acquérant une adresse dans la plage de 2 Go pour la durée d'utilisation du bloc. S'il n'y a pas assez de RAM pour adresser les autres blocs, ils doivent rester non adressés (et inaccessibles) dans le vide électronique.

Cette limitation ne m'a pas vraiment dérangé car, en raison du fonctionnement de la fonction "Annuler", une seule donnée est nécessaire pour chaque étape précédente. En fait, comme Andy Broad me l'a expliqué, la clé pour utiliser ExtMem efficacement est de s'assurer qu'un bloc de mémoire n'est jamais adressé à moins qu'il ne soit immédiatement nécessaire pour la lecture ou l'écriture. Le programmeur doit donc anticiper et garder les éléments de mémoire organisés et hiérarchisés.

Sachant cela, j'avais toutes les informations nécessaires pour écrire deux morceaux de code d'annulation analogiques, l'un pour ExtMem et l'autre impliquant le stockage sur disque. Le résultat est un système double, qui présente plusieurs avantages. Surtout, les utilisateurs d'AmigaOS 4 avec plus de 2 Go de RAM installés sur leur ordinateur peuvent utiliser la mémoire supplémentaire, qui autrement resterait un espace mort. Ils gagnent également en vitesse car bien que l'adressage d'un objet ExtMem implique une surcharge processeur, il est toujours plus rapide que l'écriture sur disque. En même temps, la solution basée sur le disque est suffisamment bonne et fournit des annulations illimitées même sur des systèmes d'entrée de gamme tels que la Sam440. Elle fonctionne également comme solution de secours dans les situations où l'enregistrement dans la mémoire étendue échoue parce qu'il n'y a pas assez de mémoire libre pour adresser le bloc : dans ce cas, Rave stockera simplement les données sur le disque.

Maintenant que la version 1.3 est disponible, je vous souhaite à tous un bon déblocage ! J'espère également que le cadre d'application ExtMem sera davantage utilisé dans la vie réelle pour prouver son potentiel, et que les programmeurs AmigaOS 4 trouveront des moyens de l'adopter utilement dans leurs programmes. Je pense qu'il est temps de dissiper l'idée fausse selon laquelle il n'existe aucun logiciel permettant d'exploiter la puissance et les ressources supplémentaires présentes dans des machines telles que l'AmigaOne X1000 ou X5000. Il existe désormais un logiciel, et je suis sûr qu'il en existera d'autres à l'avenir.


[Retour en haut] / [Retour aux articles] [Article précédent] / [Article suivant]