Suivez-nous sur X

|
|
|
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
|
|
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
|
|
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
|
|
A propos d'Obligement
|
|
David Brunet
|
|
|
|
Point de vue : Le développement de Rave (huitième partie)
(Article écrit par Daniel Jedlicka et extrait de Rear Window - août 2025)
|
|
Note : traduction par David Brunet.
J'écris ces lignes depuis un chalet près du lac Vranov, où mon ancien groupe de démos tient sa réunion
annuelle. Ce qui a commencé il y a quatre ans comme un clin d'oeil à nos rassemblements Amiga des années 1990 -
qui se tenaient au même endroit - est devenu depuis un événement régulier que j'attends avec impatience
chaque été. Pendant ces quatre jours, je suis entouré d'Amiga, d'un grand fût de bière, de maillots de
bain qui sèchent et, surtout, de bons amis.
Mais ne vous y trompez pas, cet article n'est pas un compte rendu de ce rassemblement. Je vous écris
pour vous annoncer la sortie
d'une mise à jour de mon éditeur audio Rave et, comme j'aime souvent le
faire, pour vous donner un aperçu des coulisses du développement et partager l'histoire qui a mené à
cette publication.
J'ai mentionné la mise à jour dans mon article
précédent concernant le développement de sndfile.library,
que j'ai rendu public hier, car elle est devenue une dépendance de Rave. Cependant, le travail sur cette
mise à jour a débuté en janvier 2025, et c'est Niels Bache, bêtatesteur d'AmigaOS 4, qui en est à l'origine.
Il a écrit qu'il utilisait Rave de manière intensive pour éditer de gros fichiers WAV enregistrés à partir
de vinyles, et qu'il était agréablement surpris par la fluidité du processus. Cette expérience pratique
lui a néanmoins donné quelques pistes d'amélioration, dont certaines me semblent utiles et réalisables.
Rien ne fait plus plaisir aux bêtatesteurs que de voir leurs bogues signalés corrigés. J'ai donc commencé
par augmenter la longueur maximale de la chaîne dans le gadget de nom de fichier de la fenêtre de requête
de fichiers. Curieusement, Niels Bache avait un fichier dont le nom faisait environ 175 caractères, que
le gadget supprimait simplement - une solution facile de mon côté. Il a également suggéré d'afficher le temps
exact de la position actuelle du curseur, afin d'améliorer l'orientation. Auparavant, cette information
n'était affichée que pour les sélections (plages marquées) ; si vous cliquiez simplement à l'intérieur de
la forme d'onde, le curseur apparaissait, mais vous n'aviez aucune idée de sa position temporelle. Le
fonctionnement est désormais différent : la position est affichée dans les deux cas, dans la section
"Cursor/Selection" (Curseur/Sélection) de la fenêtre du programme. Ainsi, lorsque vous cliquez quelque part,
vous savez enfin exactement où vous vous trouvez.
Travailler avec des sélections de manière productive et précise est crucial lorsque l'on effectue de
nombreuses modifications. C'est pourquoi j'ai décidé d'aller plus loin. J'ai d'abord repensé le sous-menu
"Extend selection" (Étendre la sélection) pour en faire un menu plus général
"Modify selection" (Modifier la sélection), qui ressemble désormais à ceci :
Les nouveaux éléments "Halve" (Demi) et "Double" (Double) fonctionnent comme prévu : ils réduisent
ou agrandissent la sélection actuelle de moitié. Très utiles pour travailler avec des rythmes électroniques,
où les événements sonores sont réguliers et espacés de manière égale.
Deuxièmement, j'ai ajouté une fenêtre dédiée "Set selection" (Définir la sélection) qui permet de
définir des sélections à partir de valeurs fournies par l'utilisateur ou de plages prédéfinies. Le
début, la fin et la durée de la sélection peuvent être spécifiés non seulement en valeurs temporelles,
mais aussi en échantillons, les plus petites unités de données audio. Cette fonction peut paraître plus
abstraite que le temps du point de vue de l'utilisateur, mais elle permet des sélections et un positionnement
du curseur avec une précision maximale (J'ai réalisé que d'autres fonctions pourraient également bénéficier
d'une saisie par échantillons ; vous trouverez donc le sélectionneur "Input format" (Format d'entrée)
à d'autres endroits dans la nouvelle version). Enfin, un avantage supplémentaire de la fenêtre
"Set selection" (Définir la sélection) est que vous pouvez prévisualiser la sélection en appuyant sur
le bouton "Play" (Lecture), pour détecter d'éventuels clics ou simplement entendre ce que vous êtes sur
le point de sélectionner dans la forme d'onde.
Comme d'habitude, beaucoup de travail a été effectué en coulisses - un effort qui est toujours un peu
décevant, car difficilement visible pour les utilisateurs. Cela inclut diverses corrections et améliorations
qui rendent le programme globalement plus robuste et plus abouti. Un changement majeur, mentionné dans
le billet précédent, a été le remplacement de mon module de chargement/sauvegarde personnalisé par
sndfile.library. Par conséquent, la classe sndio.class de 2 Mo, basée sur BOOPSI, n'est plus nécessaire
ni fournie avec Rave : la bibliothèque partagée fait désormais le travail, ce qui, je pense, est plus
dans l'esprit Amiga. La nouvelle implémentation est également plus simple en termes d'utilisation de la
mémoire et de fragmentation. Auparavant, une instance distincte du module était créée (puis supprimée)
pour chaque échantillon chargé - mais avec la bibliothèque, ce n'est plus le cas.
De plus, le module de requête de fichiers, sndreq.class, a suscité beaucoup d'intérêt depuis que j'ai
commencé à le dissocier du programme principal. À l'origine, ce module s'appuyait fortement sur Rave
et partageait même certaines de ses ressources. Je m'efforce progressivement d'en faire une classe
indépendante que d'autres programmes audio pourraient utiliser ultérieurement pour parcourir les
fichiers audio, les charger et les enregistrer. D'ailleurs, cette classe utilise désormais également
sndfile.library.
Cela me rappelle que lorsque j'ai sorti Rave 1.7 l'année dernière, j'avais oublié de mentionner (pas même
dans le journal des modifications) qu'à partir de cette version, il était possible de charger des
fichiers Opus. Opus est un codec audio polyvalent, ouvert et libre de droits, généralement encapsulé
dans le format conteneur Ogg.
Bien que moins utilisé comme format de distribution musicale généraliste
que MP3, FLAC ou Ogg Vorbis, il offre un son de haute qualité à pratiquement tous les débits binaires.
Mais tout n'est pas rose, même en été. Je regrette un peu le manque de progrès sur le module d'enregistrement
que j'ai commencé l'année dernière. La gestion de l'enregistrement est sans doute ma priorité, mais je me
suis enlisé dans des tâches AHI de bas niveau et, avec d'autres engagements, je n'avais tout simplement pas
la bande passante nécessaire pour m'en occuper. Cela dit, je ne l'ai pas abandonné, et j'espère avoir de
meilleures nouvelles dans la prochaine version.
Pour l'instant, profitez de la mise à jour 1.8 autant que je vais profiter du reste de notre rassemblement
Amiga au bord du lac !
|