Myriad Blog 1.3.0 Monday, Dec 17th, 2018 at 10:06am 

Wednesday, Mar 16th, 2016 at 04:55pm
Myriad Plug-in, et MP3

 
Les incompatibilités entre navigateurs, conjuguées avec le bricolage duquel est issu le format MP3, nous obligent à improviser un numéro de jongleur contorsionniste.
 
Voici l'état de l'art en la matière :  
 
Le format MP3
 
La base de ce format est solide et claire, mais les manques ont été comblés de bric et de broc, créant toute une série de "standards" de facto
Par exemple:  
A l'origine, les fichiers MP3 étaient en "Constant Bit Rate" (CBR) : chaque petit bout de son (trame) était compressé de la même façon, quel que soit son contenu.
Une seconde de silence occupait la même place qu'une seconde de son d'un orchestre symphonique.
Puis est apparu le "Variable Bit Rate" (VBR) : la trame est plus ou moins compressée selon son contenu, de manière à maximiser la qualité globale de la compression.
 
Problème: en CBR, il est facile de savoir où est située la 100e seconde d'un morceau. On connait la durée de chaque trame, et sa longueur en octets. Il suffit de multiplier.
 
En VBR, c'est impossible, les trames ayant des longueurs variables, il faudrait tout balayer depuis le début. De même, il n'est pas possible de prévoir la durée du morceau avant de le jouer en se basant sur la taille du fichier.
Alors, une tentative de "standard" bricolé de table de correspondance entre position en seconde et position dans le fichier a été créée.  
Ca améliore les choses, mais ne les résout pas vraiment. Il y a encore une imprécision importante entre la position estimée et la position véritable dans la musique.
 
Web Audio et <audio> en HTML5
 
- en HTML 5, le Web Audio permet de jouer de charger des extraits sonores en divers formats,  les décoder, les modifier (ou en créer à partir de rien), puis les jouer en totalité ou en partie.  
En gros, tout est possible, sauf le changement de tempo, qui doit alors être réalisé en Javascript, par des opérations mathématiques très (trop ?) complexes.
Le Web Audio n'est pas géré par certains navigateurs sur Windows (IE 10 et 11) ou certains terminaux mobiles.
 
- Dans ce cas, il est la plupart du temps possible d'utiliser à la place le tag HTML5 <audio> destiné à jouer un fichier audio complet. Par une astuce permettant d'inclure les données audio dans les données de la page Web, il n'est pas obligatoire que les données audio soient dans un fichier à part, ce qui nous permet de les extraire du fichier Myrweb.
Mais : les formats de fichier gérés par le tag <audio> dépendent du navigateur. Seul le format MP3 semble être géré par à peu près tous, heureusement. Cette solution est bien moins souple que le Web Audio, on ne peut pas gérer la position stéréo de chaque piste, ou créer des sons de toute pièce pour superposer les sons de métronome à la musique. Par contre, curieusement, il est possible de changer facilement le tempo de la musique jouée.  
 
Les combinaisons
 
On en arrive donc à cela :
 
- En Web Audio, avec des données MP3 CBR ou VBR, on peut jouer tout ou partie, pauser, reprendre, changer le volume et la position stéréo de chaque piste, et superposer les sons de métronome, mais pas changer le tempo
 
- Lorsque le Web Audio n'est pas disponible, avec le tag <audio>:
 
 . avec des données MP3 CBR, on peut jouer tout ou partie, pauser, reprendre, changer le volume et changer le tempo, mais pas changer la position stéréo des pistes ni superposer les sons de métronome
 
 . avec des données MP3 VBR, on peut jouer depuis le début, changer le volume et changer le tempo, mais ni jouer une partie, ni pauser ou reprendre, ni changer la position stéréo des pistes, ni superposer les sons de métronome.
 
Ca ne va pas être évident à expliquer à l'utilisateur lambda, même avec une doc hyper bien fichue...
by Olivier Guillion


Most recent first
Oldest first

Top of page
Legal information Last update:  (c) Myriad