Publié : 20 janv. 2009, 01:16
Ce problème de fichier wav ayant piqué ma curiosité, j'ai demandé le fichier à Alexis, et c'est maintenant corrigé.
Voilà ce que j'ai fait :
J'ai d'abord jetté un oeuil au contenu du fichier en hexa. J'ai d'abord constaté que l'entête du fichier n'était pas bonne, et ne contenais pas d'infos sur le format, nombre de canaux, bits, fréquence d'échantillonage.
J'ai vu sur le forum qu'il s'agissait de 24 bit, ce que j'ai pu confirmer en voyant la tête des données en hexa. J'ai donc créé un petit fichier wav 24 bit stéréo avec TwistedWave, et j'ai récupéré l'entête, j'y ai collé les données provenant du fichier endommagé, et mis à jour les infos sur la longueur du fichier dans l'entête.
J'ai ensuite ouvert ça dans TwistedWave. Bingo ! Ça marche. Je sauve en FLAC pour que ça upload plus vite, et voilà.
En fait la raison pour laquelle la lecture du fichier en raw ne fonctionnait pas est la suivante :
Les données sont en 24 bit, donc 3 octets, fois 2 canaux. Or, après l'entête, les données ne commencaient que 1024 octets après le début. Si on lit le fichier en raw, on lit les données 3 octets par 3 à partir du début, or 1024 n'est pas divisible par 3, donc on se retrouver à lire les données en lisant 2 octets d'un canal, et un dans l'autre, avec en plus un décalage de 8 bits qui explique le signal très fort, les saturations et le bruit.
Une manière dont vous auriez pu récuperer le fichier, c'est avant de le lire en raw, d'essayer d'ajouter ou enlever quelques octets au début du fichier. Je n'ai pas vraiment de soft à vous conseiller pour faire ça. Moi, je fais ça "à la main" dans le terminal. En enlevant un octet, par exemple, les données se trouvent 1023 octets après le début. C'est divisible par 3, mais pas par 6, donc on va se retrouver avec les canaux gauche et droit inversés. En général il faut enlever ou ajouter les octets par deux. Ici, il aurait fallu en enlever 4, ou en ajouter 2. On se serait retrouvé respectivement avec un offset de 1020, ou 1026, qui sont des multiples de 6.
Maintenant, j'imagine que le zoom H2 mettra toujours une entête de 1024 octets, donc dans le cas de problèmes avec des fichiers généres par le zoom H2, l'idéal est de virer les 1024 premiers octets avant de lire en raw.
Thomas
Voilà ce que j'ai fait :
J'ai d'abord jetté un oeuil au contenu du fichier en hexa. J'ai d'abord constaté que l'entête du fichier n'était pas bonne, et ne contenais pas d'infos sur le format, nombre de canaux, bits, fréquence d'échantillonage.
J'ai vu sur le forum qu'il s'agissait de 24 bit, ce que j'ai pu confirmer en voyant la tête des données en hexa. J'ai donc créé un petit fichier wav 24 bit stéréo avec TwistedWave, et j'ai récupéré l'entête, j'y ai collé les données provenant du fichier endommagé, et mis à jour les infos sur la longueur du fichier dans l'entête.
J'ai ensuite ouvert ça dans TwistedWave. Bingo ! Ça marche. Je sauve en FLAC pour que ça upload plus vite, et voilà.
En fait la raison pour laquelle la lecture du fichier en raw ne fonctionnait pas est la suivante :
Les données sont en 24 bit, donc 3 octets, fois 2 canaux. Or, après l'entête, les données ne commencaient que 1024 octets après le début. Si on lit le fichier en raw, on lit les données 3 octets par 3 à partir du début, or 1024 n'est pas divisible par 3, donc on se retrouver à lire les données en lisant 2 octets d'un canal, et un dans l'autre, avec en plus un décalage de 8 bits qui explique le signal très fort, les saturations et le bruit.
Une manière dont vous auriez pu récuperer le fichier, c'est avant de le lire en raw, d'essayer d'ajouter ou enlever quelques octets au début du fichier. Je n'ai pas vraiment de soft à vous conseiller pour faire ça. Moi, je fais ça "à la main" dans le terminal. En enlevant un octet, par exemple, les données se trouvent 1023 octets après le début. C'est divisible par 3, mais pas par 6, donc on va se retrouver avec les canaux gauche et droit inversés. En général il faut enlever ou ajouter les octets par deux. Ici, il aurait fallu en enlever 4, ou en ajouter 2. On se serait retrouvé respectivement avec un offset de 1020, ou 1026, qui sont des multiples de 6.
Maintenant, j'imagine que le zoom H2 mettra toujours une entête de 1024 octets, donc dans le cas de problèmes avec des fichiers généres par le zoom H2, l'idéal est de virer les 1024 premiers octets avant de lire en raw.
Thomas