1

Je créer un topic sur le futur Player de PolySnd. Ce programme n'a rien avoir avec la librairie proprement parlé et donc n'a pas ça place dans le topic de PolySnd.

Ce Player ne sera pa diffusé avec le pack de la librairie.

PolySnd Player qui permet de jouer 2 mode de musiques (Le format 'MIDI' de PolySnd et peut être le format WAV). La taille des fichiers MIDI seront divisé presque par 3 grace à la compression des données.Ce format comportera beaucoup d'informations sur le fichier comme l'auteur, description, compositeur, commentaire et nom complet de la musique.

Il permettera de visualiser le temps écoulé et le temps totale.Il y aura aussi 2 barres vertical renseignant sur le volume.

Il y aura aussi 2 oscilloscopes de faible taille.

Sur TI92+ une liste à droite de tout les fichiers MIDI et WAV avec le nom de la musique et son tempo ou vitesse d'échantillionage. Sur TI89 cette liste n'apparaîtera faute de taille de l'écran.
L'environnement est en niveaux de gris.
Voici une ébauche, vous en pensez quoi?

env.bmp

Pour l'instant PolySnd Player est capable de parcourir toute la VAT est de trouver tout les fichiers MIDI, d'afficher les infos sur le fichier en cours et aussi savoir en permanence son tempo, le temps totale et si c'est un fichier MONO ou stéréo.
avatar
la Nature nous montre seulement la queue du lion. Mais je suis certain que le lion a qui elle appartient pense qu'il ne peut pas se révéler en une fois en raison de son immense taille.

- Fondateur de Ti-Gen -: http://www.tigen.org

- Membre du Groupe Orage Studio -: http://oragestudio.free.fr/

- Mon site perso -: http://tisofts.free.fr

Projets TI68K en cours:
GFA-Basic = http://www.tigen.org/gfabasic
Arkanoid.
PolySnd 3.0.

2

Très bien, mais sur TI-89, ça rend comment ?

3

Ah oui ce programme sera en nostub et aura la version 2 de PolySnd en interne.
La création de fichiers pour ce player ne pourront ce faire qu'avec le convertisseur MIDI et WAV.
avatar
la Nature nous montre seulement la queue du lion. Mais je suis certain que le lion a qui elle appartient pense qu'il ne peut pas se révéler en une fois en raison de son immense taille.

- Fondateur de Ti-Gen -: http://www.tigen.org

- Membre du Groupe Orage Studio -: http://oragestudio.free.fr/

- Mon site perso -: http://tisofts.free.fr

Projets TI68K en cours:
GFA-Basic = http://www.tigen.org/gfabasic
Arkanoid.
PolySnd 3.0.

4

Très bien, mais sur TI-89, ça rend comment ?


Sur TI-89 il suffit que tu retire la boîte de dialogue qui ce situe tout à droite.
Je sais c'est un peu vide mais je travail sur tout ça. smile

Ca peut vous paraître bizarre que je ne termine pas à 100% PolySnd v2.0 (quoi que c'est le cas) mais il me manque un outil très important pour tester... c'est le convertisseur WAV donc en attendant je me penche sur le player.
avatar
la Nature nous montre seulement la queue du lion. Mais je suis certain que le lion a qui elle appartient pense qu'il ne peut pas se révéler en une fois en raison de son immense taille.

- Fondateur de Ti-Gen -: http://www.tigen.org

- Membre du Groupe Orage Studio -: http://oragestudio.free.fr/

- Mon site perso -: http://tisofts.free.fr

Projets TI68K en cours:
GFA-Basic = http://www.tigen.org/gfabasic
Arkanoid.
PolySnd 3.0.

5

Tu attends sur moâ pour le convertisseur WAV?
avatar
Highway Runners, mon jeu de racing à la Outrun qu'il est sorti le 14 décembre 2016 ! N'hésitez pas à me soutenir :)

https://itunes.apple.com/us/app/highway-runners/id964932741

6

Je me pose une petite question, c possible de penser a compresser les WAV et les lire en *temps réel* ?

7

Essaie de décompresser des données en temps réel et tu verras!
Non c'est *logiquement* impossible... Ca dépend de la compression, c'est clair, mais avec une compression type huffman (absolument inefficace pour le wav) c'est impossible, maintenant si tu penses au mp3, c'est *possible* par petits échantillons, cependant cela demande BEAUCOUP de temps processeur. Le mieux (mais pas ce qui se fait effectivement) serait, au détriment de la mémoire, de décompresser le fichier entièrement pour obtenir un fichier WAV lisible directement. Le principe du mp3 est extêmement compliqué, et j'ai vu que geogeo essayait de s'y pencher... à mon avis ce n'est pas une bonne idée!
avatar
Highway Runners, mon jeu de racing à la Outrun qu'il est sorti le 14 décembre 2016 ! N'hésitez pas à me soutenir :)

https://itunes.apple.com/us/app/highway-runners/id964932741

8

Tu attends sur moi pour le convertisseur WAV?


Je t'ai envoyé un mini-message sur ce sujet. Je t'assure que je ne vois pas comment faire pour extraire les bits des échantillions qui m'interesse. Je voulais juste que tu m'explique même avec le code source de ton convertisseur WAV pour que je puisse au pire développer la version en C sur PC. Comme je te l'ai dit je n'ai jamais fait un seul prog en C sur PC et donc c'est l'occasion de mis mettre mais je n'y connais rien à l'extraction d'arguments MS-DOS, ouvrir un fichier et lire et écrire dedans. Et je ne vois pas comment extraire correctement les données WAV.
Je me pose une petite question, c possible de penser a compresser les WAV et les lire en *temps réel* ?


C'est possible car la lecture de fichiers WAV avec PolySnd ne prennent pas beaucoup de ressources CPU, au alentours de 20% max. En plus si une méthode de compression comme complib est utilisé ou bien plus puissante c'est encore plus possible.
Essaie de décompresser des données en temps réel et tu verras! Non c'est *logiquement* impossible... Ca dépend de la compression, c'est clair, mais avec une compression type huffman (absolument inefficace pour le wav) c'est impossible, maintenant si tu penses au mp3, c'est *possible* par petits échantillons, cependant cela demande BEAUCOUP de temps processeur. Le mieux (mais pas ce qui se fait effectivement) serait, au détriment de la mémoire, de décompresser le fichier entièrement pour obtenir un fichier WAV lisible directement. Le principe du mp3 est extêmement compliqué, et j'ai vu que geogeo essayait de s'y pencher... à mon avis ce n'est pas une bonne idée!


Si tu lit 8000 échantillions par secondes. 1 échantillions max fait 4 bits, pour executer ses 4 bits tu consomme 20% voir moins je n'ai pas fait des tests appronfie du processeur et donc presque rien de l'interruption maintenant si tu décompresse et met ça dans un buffer donc PolySnd devra lire... Au résultat il te reste encore des ressources CPU et encore du temps d'interruptions. Maintenant il est clair que si ton type de compression et comment tu procéde joue un rôle essentiel.

Si tu regarde le schéma audio d'un WAV 4 bits dans le topic de PolySnd tu verra que le processeur ne travail pas énromément car les données TI sont très proche de la réalitée.

La question de compression WAV en temps réelle est a voir avec _Orion car on a commencais à en discuté. Mais bon je ne me penche pas encore la dessus car j'ai énormément d'outils à faire et à terminer.
avatar
la Nature nous montre seulement la queue du lion. Mais je suis certain que le lion a qui elle appartient pense qu'il ne peut pas se révéler en une fois en raison de son immense taille.

- Fondateur de Ti-Gen -: http://www.tigen.org

- Membre du Groupe Orage Studio -: http://oragestudio.free.fr/

- Mon site perso -: http://tisofts.free.fr

Projets TI68K en cours:
GFA-Basic = http://www.tigen.org/gfabasic
Arkanoid.
PolySnd 3.0.

9

Brunni :
Essaie de décompresser des données en temps réel et tu verras!

roll
Non c'est *logiquement* impossible... Ca dépend de la compression, c'est clair, mais avec une compression type huffman (absolument inefficace pour le wav) c'est impossible, maintenant si tu penses au mp3, c'est *possible* par petits échantillons, cependant cela demande BEAUCOUP de temps processeur.

Y'a pas que des méthodes de compression comme ça dans la vie ...
Le mieux (mais pas ce qui se fait effectivement) serait, au détriment de la mémoire, de décompresser le fichier entièrement pour obtenir un fichier WAV lisible directement. Le principe du mp3 est extêmement compliqué, et j'ai vu que geogeo essayait de s'y pencher... à mon avis ce n'est pas une bonne idée!

Donc si c'est le mieux ...

10

>Y'a pas que des méthodes de compression comme ça dans la vie ...
Je n'en connais pas beaucoup. Si tu en connais d'autres, tu pourrais les dire, ça pourrait nous être largement utile à geogeo et à moi!
>Donc si c'est le mieux ...
Je ne comprends pas ta remarque! Peut-être que je fais un peu le "monsieur-je-sais-tout-qui-sait-en-fait-rien-du-tout" et je m'en excuse. Je pense effectivement que le système que j'ai décrit ci-dessus est le meilleur si l'on veut que "ça tourne" sachant que le temps disponible dans une interruption à 8 kHz est vraiment MINIME! Quelques milliers de cycles et ta TI ne répond déjà plus, alors faut faire gaffe! Clairement, tu n'as jamais le temps de faire des analyses pour la décompression.
avatar
Highway Runners, mon jeu de racing à la Outrun qu'il est sorti le 14 décembre 2016 ! N'hésitez pas à me soutenir :)

https://itunes.apple.com/us/app/highway-runners/id964932741

11

Je vois que mon post est passé à la ramasse. roll
avatar
la Nature nous montre seulement la queue du lion. Mais je suis certain que le lion a qui elle appartient pense qu'il ne peut pas se révéler en une fois en raison de son immense taille.

- Fondateur de Ti-Gen -: http://www.tigen.org

- Membre du Groupe Orage Studio -: http://oragestudio.free.fr/

- Mon site perso -: http://tisofts.free.fr

Projets TI68K en cours:
GFA-Basic = http://www.tigen.org/gfabasic
Arkanoid.
PolySnd 3.0.

12

[remarque tres constructive]
Moi je trouve le player tres jolie smile
[/remarque tres constructive]
http://membres.lycos.fr/pingooz/
Un cafe et deux sucres

13

Là j'ai finit de gérer la liste des fichier et la scrollbar. smile
avatar
la Nature nous montre seulement la queue du lion. Mais je suis certain que le lion a qui elle appartient pense qu'il ne peut pas se révéler en une fois en raison de son immense taille.

- Fondateur de Ti-Gen -: http://www.tigen.org

- Membre du Groupe Orage Studio -: http://oragestudio.free.fr/

- Mon site perso -: http://tisofts.free.fr

Projets TI68K en cours:
GFA-Basic = http://www.tigen.org/gfabasic
Arkanoid.
PolySnd 3.0.

14

Voici avec un nouveau screen:

Là il y a la gestion de la liste avec la scrollbar et des petites infos ajouté.
Le moteur de gestion des fichiers et terminé.
Reste plus que le moteur de gestion commandes et gestion audio avec PolySnd v2.0 ça devrait pas être trop difficile. wink

pplayer.bmp

Aussi pour vous donner une idée de la taille des musiques:

Une musiques de 2 630 octets avec les infos dedans fait que 607 octets compressée, dont ça laisse la possibilitée de faire ça propre compile. wink
avatar
la Nature nous montre seulement la queue du lion. Mais je suis certain que le lion a qui elle appartient pense qu'il ne peut pas se révéler en une fois en raison de son immense taille.

- Fondateur de Ti-Gen -: http://www.tigen.org

- Membre du Groupe Orage Studio -: http://oragestudio.free.fr/

- Mon site perso -: http://tisofts.free.fr

Projets TI68K en cours:
GFA-Basic = http://www.tigen.org/gfabasic
Arkanoid.
PolySnd 3.0.

15

Le "MIDI" se compresse facilement et c'est un avantage...
avatar
Highway Runners, mon jeu de racing à la Outrun qu'il est sorti le 14 décembre 2016 ! N'hésitez pas à me soutenir :)

https://itunes.apple.com/us/app/highway-runners/id964932741

16

C'est pas du MIDI comme tu l'entend, c'est un format spécial à PolySnd.
avatar
la Nature nous montre seulement la queue du lion. Mais je suis certain que le lion a qui elle appartient pense qu'il ne peut pas se révéler en une fois en raison de son immense taille.

- Fondateur de Ti-Gen -: http://www.tigen.org

- Membre du Groupe Orage Studio -: http://oragestudio.free.fr/

- Mon site perso -: http://tisofts.free.fr

Projets TI68K en cours:
GFA-Basic = http://www.tigen.org/gfabasic
Arkanoid.
PolySnd 3.0.

17

Je parlais des formats du type, "interprétés" en fait.
avatar
Highway Runners, mon jeu de racing à la Outrun qu'il est sorti le 14 décembre 2016 ! N'hésitez pas à me soutenir :)

https://itunes.apple.com/us/app/highway-runners/id964932741

18

Jolie interface en tout cas, mais tu vas mettre un curseur de souris ?
Parce que les flèches pour faire monter/descendre la barre de défilement elles servent à quoi sinon ? grin
Mon site :
[TI68k] Space Dementia I : Version 0.8
[TI68k] Space Dementia II, mod arena : Version 0.3 avec IA
[OpenGL] Environment Mapping 3ds Viewer : version 1.0
[OpenGL] Programmation d'une simulation de voiture avec le moteur physique Tokamak

19

Y a pas de curseur de souris, c'est juste pour indiquer ou on ce situe dans la liste.
Mais vu que PolySnd v2.0 ce fait en tâche de fond, c'est tout à fait possible d'utiliser une souris. grin


[EDIT] C'est vraiment utile une souris? Peut être pour changer la position de lecture avec la barre en bas dans le cadre 'Progression et Oscilloscope'.
avatar
la Nature nous montre seulement la queue du lion. Mais je suis certain que le lion a qui elle appartient pense qu'il ne peut pas se révéler en une fois en raison de son immense taille.

- Fondateur de Ti-Gen -: http://www.tigen.org

- Membre du Groupe Orage Studio -: http://oragestudio.free.fr/

- Mon site perso -: http://tisofts.free.fr

Projets TI68K en cours:
GFA-Basic = http://www.tigen.org/gfabasic
Arkanoid.
PolySnd 3.0.

20

Pensais vous qu'une option jouer en boucle et jouer un fichier au hazard ou dans l'ordre soit utile?
avatar
la Nature nous montre seulement la queue du lion. Mais je suis certain que le lion a qui elle appartient pense qu'il ne peut pas se révéler en une fois en raison de son immense taille.

- Fondateur de Ti-Gen -: http://www.tigen.org

- Membre du Groupe Orage Studio -: http://oragestudio.free.fr/

- Mon site perso -: http://tisofts.free.fr

Projets TI68K en cours:
GFA-Basic = http://www.tigen.org/gfabasic
Arkanoid.
PolySnd 3.0.

21

oui

22

Ca change mon environnement. sad Quoi que avec une boîte de dialogue de réglages. smile
avatar
la Nature nous montre seulement la queue du lion. Mais je suis certain que le lion a qui elle appartient pense qu'il ne peut pas se révéler en une fois en raison de son immense taille.

- Fondateur de Ti-Gen -: http://www.tigen.org

- Membre du Groupe Orage Studio -: http://oragestudio.free.fr/

- Mon site perso -: http://tisofts.free.fr

Projets TI68K en cours:
GFA-Basic = http://www.tigen.org/gfabasic
Arkanoid.
PolySnd 3.0.

23

geogeo
: C'est vraiment utile une souris?

Je trouve pas vraiment, mais ca offre les possibilités interressantes que tu cites...

Par oscilloscope, tu entends quoi ? Le signal de sortie en fonction du temps ?

>19 :
Je trouve que jouer au hasard n'est pas très interressant (on va pas utiliser sa TI comme un jukebox quand même smile), par contre jouer en boucle c'est interressant avec des musiques courtes (types effets sonores).
Mon site :
[TI68k] Space Dementia I : Version 0.8
[TI68k] Space Dementia II, mod arena : Version 0.3 avec IA
[OpenGL] Environment Mapping 3ds Viewer : version 1.0
[OpenGL] Programmation d'une simulation de voiture avec le moteur physique Tokamak

24

par contre jouer en boucle c'est interressant avec des musiques courtes (types effets sonores).


Bas il est pas possible de jouer des effets sonores, et je ne pens epas que ça soit interessant.

Je trouve pas vraiment, mais ca offre les possibilités interressantes que tu cites...


Je vais y réflechir.
Par oscilloscope, tu entends quoi ? Le signal de sortie en fonction du temps ?


C'est ça. smile

Je trouve que jouer au hasard n'est pas très interressant (on va pas utiliser sa TI comme un jukebox quand même ), par contre jouer en boucle c'est interressant avec des musiques courtes (types effets sonores).


Bas tu sais vu la taille des fichiers et la faciliter de création tu peut en faire un jukebox. Encore une taille pour 3min14 j'arrive à 358 octets au lieu de 2061 octets. smile


Je viens d'intégrer la gestion de la barre de progression, le temps écoulé et totale et le rafraichissement.Le résultat est magnifique avec du son en plus. Ma librairei travil sans PB avec les niveaux de gris et une consommation en programme principal très importante. Je ne peux pas vous faire de screens car le son ne fonctionne pas sur Virtuel TI.
avatar
la Nature nous montre seulement la queue du lion. Mais je suis certain que le lion a qui elle appartient pense qu'il ne peut pas se révéler en une fois en raison de son immense taille.

- Fondateur de Ti-Gen -: http://www.tigen.org

- Membre du Groupe Orage Studio -: http://oragestudio.free.fr/

- Mon site perso -: http://tisofts.free.fr

Projets TI68K en cours:
GFA-Basic = http://www.tigen.org/gfabasic
Arkanoid.
PolySnd 3.0.

25

Bas il est pas possible de jouer des effets sonores, et je ne pense pas que ça soit interessant

Je voulais dire genre les waves de windows, "ding dong" ou des trucs du genre (bruitages pour un jeu...) grin
Bas tu sais vu la taille des fichiers et la faciliter de création tu peut en faire un jukebox. Encore une taille pour 3min14 j'arrive à 358 octets au lieu de 2061 octets.

Nickel pour les tailles, mais je voulais dire que je n'en voyais pas l'utilité.
L'option random track est interressante quand tu écoutes de la musique chez toi, en fond sonore, et que tu veux pas t'occuper de sélectionner les morceaux ou de les écouter dans l'ordre ou il sont rangés... mais bon sur une TI.
Enfin ca ne fait pas de mal si c'est implémenté, c'est a toi de voir... smile
Mon site :
[TI68k] Space Dementia I : Version 0.8
[TI68k] Space Dementia II, mod arena : Version 0.3 avec IA
[OpenGL] Environment Mapping 3ds Viewer : version 1.0
[OpenGL] Programmation d'une simulation de voiture avec le moteur physique Tokamak

26

Brunni: les principe de la programmation embarquée (sur TI etc.) c'est d'essayer de trouvé des moyens de stockage/lecture rapide ... Et c'est ça qu'il faut trouver !
{Quant aux compression, renseigne toi un peu pke huffman n'est clairement pas jouable}

27

>{Quant aux compression, renseigne toi un peu pke huffman n'est clairement pas jouable}
Huffman n'est pas jouable directement et c'est normal grin
Et en plus de ça la compression huffman est carrément inutile pour le wav, cependant pour un format comme celui de PolySnd, c'est possible que oui. Le exepack de TIGCC ne compresse quasiment rien de mes progs wav (45 ko -> 40 ko, 55 ko -> 51 ko, 5.5 ko -> 5.1 ko, pour mes essais)
avatar
Highway Runners, mon jeu de racing à la Outrun qu'il est sorti le 14 décembre 2016 ! N'hésitez pas à me soutenir :)

https://itunes.apple.com/us/app/highway-runners/id964932741

28

Brunni :
Essaie de décompresser des données en temps réel et tu verras! Non c'est *logiquement* impossible... Ca dépend de la compression, c'est clair, mais avec une compression type huffman (absolument inefficace pour le wav) c'est impossible, maintenant si tu penses au mp3, c'est *possible* par petits échantillons, cependant cela demande BEAUCOUP de temps processeur. Le mieux (mais pas ce qui se fait effectivement) serait, au détriment de la mémoire, de décompresser le fichier entièrement pour obtenir un fichier WAV lisible directement. Le principe du mp3 est extêmement compliqué, et j'ai vu que geogeo essayait de s'y pencher... à mon avis ce n'est pas une bonne idée!



Renseigne toi plus sur le MP3, le problème de la compression MP3 n'est pas a la décompression mais a la compression car elle est desctrutive et que l'algorythme de compression est passablement compliqué (pour couper czertaines harmonique mais en laisser d'autre, modifier legerement certaines fréquences etc...) une fois ttes ses infos supprimé, la taille "wav" est largement dimunué, il s'en suit apres une "simple" compression huffman (ou equivalent, mais qq chose d'archi simple et connu) donc la décompression est plus qu'aisée
avatar
Proud to be CAKE©®™


GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.

29

Orion avait commencé à travail dessus et avait des résultats corrects, je crois qu'il avait fait ça routine de décompression par paquet en ASM en plus.

[cite]Je voulais dire genre les waves de windows, "ding dong" ou des trucs du genre (bruitages pour un jeu...)

Ah d'accord, dans ce cas du WAV. Je verrais quand j'aurais finit déjà le MIDI car déjà c'est pas facile à faire. Surtout que pour ding dong tu aurait le me^me résultat en format MIDI. grin
Nickel pour les tailles, mais je voulais dire que je n'en voyais pas l'utilité.
L'option random track est interressante quand tu écoutes de la musique chez toi, en fond sonore, et que tu veux pas t'occuper de sélectionner les morceaux ou de les écouter dans l'ordre ou il sont rangés... mais bon sur une TI. Enfin ca ne fait pas de mal si c'est implémenté, c'est a toi de voir...


Pour l'utilitée je te comprend, on verra avec le temps mais ce programmes donne une idee des fonctions de PolySnd v2.0. smile

Pour les fonctions, je pense l'inclure car en 5 min c'est fait.
Pour les tailles de fichiers je trouve ça superbe car on ne pourras pas repprocher que ce format est inadéquate aux jeux et consomme énormément en mémoire. Surtout que avec 2 ko sans compression on peut avoir 2 min ou 3 min de musique donc c'est pas négligeable.

Ce que j'essaye de dire c'est que maintenant la possibilitée de faire du son dans des jeux ou autre progs avec presque aucune contraintes en taille, consommation CPU et support de programmation est possible. PolySnd v2.0 est une librairie un peu comme Xlib, extgraph... sauf quelle est orientée son.
avatar
la Nature nous montre seulement la queue du lion. Mais je suis certain que le lion a qui elle appartient pense qu'il ne peut pas se révéler en une fois en raison de son immense taille.

- Fondateur de Ti-Gen -: http://www.tigen.org

- Membre du Groupe Orage Studio -: http://oragestudio.free.fr/

- Mon site perso -: http://tisofts.free.fr

Projets TI68K en cours:
GFA-Basic = http://www.tigen.org/gfabasic
Arkanoid.
PolySnd 3.0.

30

geogeo
: Comme je te l'ai dit je n'ai jamais fait un seul prog en C sur PC et donc c'est l'occasion de mis mettre

Bon courage smile
mais je n'y connais rien à l'extraction d'arguments MS-DOS

int main(int argc, void *argv[])
{
 /*
    argc = Nombre d'argument
    argv = ptr vers les arguments 
 */

  while(argc--)
  {
   printf("Argument %d : %s\n", argc+1, argv[argc]);
  }

  return 0;
}

ouvrir un fichier et lire et écrire dedans.

Comme sur ti happy
fopen/fclose
et en général tte fonction C commencant par f

exemple :
int main(int argc, void *argv[])
{
 /*
    argv[0] = nom + chemin du programme lancé
    argv[1] = premier argument
    argv[2] = second argument
    ...
 */
 FILE *fp_in, *fp_out; /* structure de type "pointeur de fichier" */
 /*
    se programme prend 2 argrument :
 */
  if (argc != 3)
  {
    fprintf(stderr,"Nombre d'argument incorrect !\n"
                   "\tusage : foo fichier1 fichier2\n\n");
    return -1; /* erreur */
  }

  /* ouverture du fichier 1 en mode lecture binaire "rb" : r pour read, b pour binary */
  if ( ( fp_in = fopen(argv[1],"rb")) == NULL )
  {
    fprintf(stderr,"Impossible d'ouvrir le fichier %s !\n", argv[1]);
    return -1; /* erreur */
  }


  /* ouverture du fichier 2 en mode ecriture binaire "wb" : w pour write, b pour binary */
  if ( ( fp_out = fopen(argv[2],"wb")) == NULL )
  {
    fprintf(stderr,"Impossible d'ouvrir le fichier %s !\n", argv[2]);
    fclose(fp_in); /* on ferme proprement le fichier ouvert ci-dessus */
    return -1; /* erreur */
  }

/* On fait se qu'on a a faire... */


  fclose(fp_in);
  fclose(fp_out);  
  return 0;
}


Les "type" d'ouvertures sont :

t pour texte le mode texte. A n'utiliser que pour l'ouverture de fichier texte !!
b pour binaire. A utiliser dans tout les autres cas !

et les modes :

r : lecture (read) si le fichier existe pas une erreur est généré
w : ecriture (write) si le fichier n'existe pas il est cree
a : Ajout (append) cree le fichier si il n'existe pas
r+ : Lecture "augmenté" (en fait ouvre le fichier en lecture/ecriture mais genere une erreur si le fichier est inexistant)
w+ : Ecriture "augmenté" (en fait ouvre le fichier en lecture/ecriture mais cree le fichier si il n'existe pas)

Et je ne vois pas comment extraire correctement les données WAV.

reprenons l'exemple si dessus :

int main(int argc, void *argv[])
{
 /*
    argv[0] = nom + chemin du programme lancé
    argv[1] = premier argument
    argv[2] = second argument
    ...
 */
 FILE *fp_in, *fp_out; /* structure de type "pointeur de fichier" */

 char buffer[10];
 /*
    se programme prend 2 argrument :
 */
  if (argc != 3)
  {
    fprintf(stderr,"Nombre d'argument incorrect !\n"
                   "\tusage : foo fichier1 fichier2\n\n");
    return -1; /* erreur */
  }

  /* ouverture du fichier 1 en mode lecture binaire "rb" : r pour read, b pour binary */
  if ( ( fp_in = fopen(argv[1],"rb")) == NULL )
  {
    fprintf(stderr,"Impossible d'ouvrir le fichier %s !\n", argv[1]);
    return -1; /* erreur */
  }


  /* ouverture du fichier 2 en mode ecriture binaire "wb" : w pour write, b pour binary */
  if ( ( fp_out = fopen(argv[2],"wb")) == NULL )
  {
    fprintf(stderr,"Impossible d'ouvrir le fichier %s !\n", argv[2]);
    fclose(fp_in); /* on ferme proprement le fichier ouvert ci-dessus */
    return -1; /* erreur */
  }


  /* tant qu'on est pas a la fin du fichier :
     f : comme file, premiere lettre de toutes les fonctions de fichiers
     e : End
     o : Of 
     f : File
  */
  while(!feof(fp_in)) 
  {
   /*
    fread : Reads data from a stream.

    size_t fread( void *buffer, size_t size, size_t count, FILE *stream );

    Return Value :

    fread returns the number of full items actually read, which may be less than count if an error occurs
    or if the end of the file is encountered before reaching count. Use the feof or ferror function to
    distinguish a read error from an end-of-file condition. If size or count is 0, fread returns 0 and
    the buffer contents are unchanged.

    Parameters :

        buffer : Storage location for data

        size : Item size in bytes
    
        count : Maximum number of items to be read

        stream : Pointer to FILE structure
   */
   fread( buffer, 1, 1, fp_in );

   /*
    fwrite : Writes data to a stream.

    size_t fwrite( const void *buffer, size_t size, size_t count, FILE *stream );

    Return Value :

    fwrite returns the number of full items actually written, which may be less than count if an
    error occurs. Also, if an error occurs, the file-position indicator cannot be determined.

    Parameters :

        buffer : Pointer to data to be written

        size : Item size in bytes

        count : Maximum number of items to be written

        stream : Pointer to FILE structure
   */
    fwrite(buffer, 1, 1, fp_out);   
  }


  fclose(fp_in);
  fclose(fp_out);  
  return 0;
}


voila smile
j'espere avoir été compréhensible

edit: correction de qq erreurs betes #honte#
avatar
Proud to be CAKE©®™


GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.