Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 13/05/2011, à 23:35

temps

[résolu] fonctionnement little-endian

Bonjour,
Est-ce que quelqu'un peu m'indiquer comment fonctionne little-endian ?
Plus particulièrement dans un fichier wav.
J'ai tenté de créer un fichier wav comme je le fait avec aiff en pensant à des données brutes, mais j'ai eu la surprise de ne jouer qu'une valeur sur deux, comme si j'avais accéléré le temps par deux. En d'autres mots, quand j'écris dix valeurs, il n'en joue que cinq. C'est donc que je ne connais pas la règle d'écriture en little-endian. Je suis donc à la recherche de cette règle.
est-ce que chaque valeur pèse un poids supérieur à 1 octet ?
2 octets qui permet de passer du 8 bits au 16 bits ?
ce qui expliquerait que j'ai le même son en accéléré.
ou est-ce autre chose ?
cordialement

Dernière modification par temps (Le 15/05/2011, à 18:35)


Parce que l'USB bootable est le support des systèmes experts,
Parce que l'USB bootable contient sa propre image au démarrage.
L'USB bootable permet de créer un monde à la dimension de son imagination
https://www.letime.net

Hors ligne

#2 Le 14/05/2011, à 23:40

temps

Re : [résolu] fonctionnement little-endian

un petit up !
Après quelques tests, j'ai la confirmation que chaque donnée occupe deux octets, que la valeur est écrite en indiquant en premier l'octet de poids faible.
J'ai deux solutions, soit j'écris mes deux tableaux de conversions terme après termes, des milliers de termes à écrire, soit je trouve une conversion toute faite en langage c de little-endian vers décimal.
je me débarrasse des 44 premiers octets du fichier wav en écrivant :

int purge;
purge = 0;
if ( purge < 44 )
        { purge = purge + 1; 
        } /*je saute les premiers, en allant chercher le suivant*/
else          /*je modélise*/
        {

si quelqu'un sait ou trouver une conversion toute faite, je suis preneur, sinon je commence à taper les tableaux de conversions.
Mais après avoir écris les deux premiers tableaux, je réalise que cela fait 256 tableaux de 256 éléments ! ce qui implique en plus de boucles à n'en plus finir.
C'est pourquoi, je m'oriente vers ce genre de code qui développe la première forme à deux octets.

abadie = fgetc(oups); /* abadie vient chercher tout ce qui bouge*/
while (abadie != EOF)
        {

if ( purge < 44 )
            { 
            purge = purge + 1; 
            }
else
            {
        


int force;
int force1;
int groupe1;
int groupe2;

for (ji=0; ji<127; ji++)
                {

if ( abadie == tab1[ji])

                    {
force1 = ji + 128;
                    }


if ( abadie == tab[ji])


                    {
force1 = ji;
                    }



                }

/***debut assemble***/

                if (assemble == 1)
                {
                groupe1 = force1;
                assemble = 2;
                }

                else

                {

                groupe2 = force1;

                force = groupe1 + 256 * groupe2;



                FILE* joris = NULL;

                int amplitude, jo, bariere1;
                int bariere2;


                joris = fopen(cecci, "ab+");
                    if (joris != NULL)
                    {

/*modelisation*/

Il me reste encore à adapter à little-endian que je découvre petit à petit en testant puisque, je n'arrive pas à trouver d'informations dessus.

cordialement

Dernière modification par temps (Le 15/05/2011, à 15:47)


Parce que l'USB bootable est le support des systèmes experts,
Parce que l'USB bootable contient sa propre image au démarrage.
L'USB bootable permet de créer un monde à la dimension de son imagination
https://www.letime.net

Hors ligne

#3 Le 15/05/2011, à 18:34

temps

Re : [résolu] fonctionnement little-endian

Je poste en résolu, j'ai trouvé en fait le système little-endian indique qu'il faut deux octets par donnée. De mes tests, je peux dire  que quand j'utilise du 8 bits mono, j'ai 128 positions possibles sur l'amplitude, et que quand j'utilise little-endian avec le wav mono 16 bits, j'ai 32768 positions possibles pour l'amplitude.
J'ai deux exemples d'application sur mon modéliseur wav  et lecteur wav
.


Parce que l'USB bootable est le support des systèmes experts,
Parce que l'USB bootable contient sa propre image au démarrage.
L'USB bootable permet de créer un monde à la dimension de son imagination
https://www.letime.net

Hors ligne