begin process at 2010 02 10 10:39:29
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Multimédia

 > 

couper un fichier wav


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

couper un fichier wav

mardi 6 septembre 2005 à 19:20:43 | couper un fichier wav

delfare

salut,
j'aimerais savoir comment je peux couper un fichier wav en plusieurs fichiers wav(genre un fichier wav de 10 minutes en 10 fichiers wav d'une minute)
merci d'avance.
mardi 6 septembre 2005 à 21:03:07 | Re : couper un fichier wav

Matt67

Bonjour,

Debut de piste :
Tu recuperes l'entete du fichier wav.
Apres tu recuperes dans l'entete wave sur combien de bit est codé un echantillon (8 ou 16), c'est la dynamique.

Apres tu recuperes, toujours dans l'entete wave, le nombre de channel (mono ou stéréo).

La longueur de l'entete bien-sur puis la longueur des datas.

Tu determines la taille de tes differents fichiers (attentions a la dynamique et au nombre de channel par exemple si 16 bits et stéréo alors prendre les octets 4 par 4)

dans un nouveau fichier tu mets l'entete (avec le nouveau parametre longueur data)
tu ecris l'entete, puis un morceau de tes datas et ainsi de suite...

j'espere que j'ai été clair...

Bon courage,

Matt...
mercredi 7 septembre 2005 à 17:56:03 | Re : couper un fichier wav

delfare

merci, je me doutait que ca devait etre un truc dans le genre mais comment puis-je savoir si on donne n'importe quel fichier wav si c'est du 16 ou 8 bits.
aussi : est-ce qu'il n'y aurait pas un petit code d'exemple?
merci d'avance
mercredi 7 septembre 2005 à 21:41:21 | Re : couper un fichier wav

jul39dole

faut faire attention qu'il s'agisse bien du format PCM (c'est à dire non compressé). Va voir sur [ Lien ] pour obtenir des informations sur le format wav. Ce sera probablement en anglais par contre...
vendredi 9 septembre 2005 à 17:45:25 | Re : couper un fichier wav

delfare

ok, je croix que c'est du PCM mais j'aurais besoin d'un code exemple ou d'un bon tuto car sur wotsite, ca m'aide pas assez
samedi 10 septembre 2005 à 18:56:15 | Re : couper un fichier wav

delfare

bon, j'ai reussi a couper comme je voulais en fichier wav, ca marche sous windows media player mais cependant, le header n'est pas recopier et comme je veux utiliser un prog que j'ai trouve pour faire un compressage, il lui faut le header du fichier, j'ai reussi a recuperer les infos (wFormatTag,nChannels,...) mais j'aimerais savoir comment je peux les copier correctement
merci d'avance
mardi 25 octobre 2005 à 21:49:18 | Re : couper un fichier wav

Poufine

Réponse acceptée !

moi j'utilise ce bout de code: 

WAVEFORMATEX recordingType;
recordingType.wFormatTag = WAVE_FORMAT_PCM;
recordingType.nChannels = 1;                                        // 1 ou 2 selon si c'est mono ou stereo
recordingType.nSamplesPerSec = _fs;                           //  frequence d'echantillonage
recordingType.wBitsPerSample = 16;                             //  nb de bytes par echantillon
recordingType.nBlockAlign = (recordingType.nChannels * recordingType.wBitsPerSample) / 8;        // aucune idée
recordingType.nAvgBytesPerSec = recordingType.nSamplesPerSec * recordingType.nBlockAlign;  // aucune idée

//j'utilise un WAVEFORMATEX pour initialiser la carte son mais dans ton cas c'est peu etre pas utile

DWORD lTaille_Donnees ;


//creation de l'entete de mon fichier wav


DWORD lNb_Bytes ;
   hFichier = CreateFile("record.wav", GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
   DWORD dwTemp = 0;
      WORD dTemp = 0;
      WriteFile(hFichier, "RIFF", 4, &lNb_Bytes, NULL);
      dwTemp = 0;
      WriteFile(hFichier, &dwTemp, 4, &lNb_Bytes, NULL);
      WriteFile(hFichier, "WAVE", 4, &lNb_Bytes, NULL);
      WriteFile(hFichier, "fmt ", 4, &lNb_Bytes, NULL);
      dwTemp = 16;
      WriteFile(hFichier, &dwTemp, 4, &lNb_Bytes, NULL);
      dTemp = WAVE_FORMAT_PCM;
      WriteFile(hFichier, &dTemp, 2, &lNb_Bytes, NULL);
      dTemp = recordingType.nChannels;
      WriteFile(hFichier, &dTemp, 2, &lNb_Bytes, NULL);
      dwTemp = recordingType.nSamplesPerSec;
      WriteFile(hFichier, &dwTemp, 4, &lNb_Bytes, NULL);
      dwTemp = recordingType.nAvgBytesPerSec;
      WriteFile(hFichier, &dwTemp, 4, &lNb_Bytes, NULL);
      dTemp = recordingType.nBlockAlign;
      WriteFile(hFichier, &dTemp, 2, &lNb_Bytes, NULL);
      dTemp = recordingType.wBitsPerSample;
      WriteFile(hFichier, &dTemp, 2, &lNb_Bytes, NULL);
      WriteFile(hFichier, "data", 4, &lNb_Bytes, NULL);
      dwTemp = 0;
      WriteFile(hFichier, &dwTemp, 4, &lNb_Bytes, NULL);
 lTaille_Donnees =0;

///////////////////////////////////////////////////////////////////

//  ajout des echantillons


 DWORD lNb_Bytes;

WriteFile(hFichier,   ( Nom de ton buffer contenant  le son)   , ( Nombre de bytes de ton buffer contenant  le son) , &lNb_Bytes, NULL);

lTaille_Donnees += lNb_Bytes;
//////////////////////////////////////////////////////////////////////////////


//    mise a jour de l'entete
DWORD dwTemp,lNb_Bytes;


      dwTemp = lTaille_Donnees + 36;
      SetFilePointer(hFichier, 4, NULL, FILE_BEGIN);
      WriteFile(hFichier, &dwTemp, 4, &lNb_Bytes, NULL);
      dwTemp = lTaille_Donnees;
      SetFilePointer(hFichier, 40, NULL, FILE_BEGIN);
      WriteFile(hFichier, &dwTemp, 4, &lNb_Bytes, NULL);

il se peut que j'ai oublié des trucs, mais je ne pense pas....
ceci dit vu la date du dernier message t'as peut etre déja trouvé



Cette discussion est classée dans : fichier, fichiers, wav, couper


Répondre à ce message

Sujets en rapport avec ce message

ASCII [ par musikadri ] Bonjour à tousJe suis complètement novice dans tous ces domaines de codes sources.Voici ma question:En voulant lire un fichier audio (wav) sur mon MAC effacer un fichier (remove) ne marche pas [ par LaTatadu91 ] Bonjour,J'ai cherché un moyen pour effacer des fichiers et j'ai trouver la fonction remove:voici comment je l'utilise ( a priori mal vu que mes fichie Ouverture de fichier [ par chevalboiteux ] Bonjour,Je développe une application qui doit intercepter l'ouverture des fichiers sur un disque réseau pour effectuer un traitement sur ceux-ci avant Fichier qui affiche dans la console tout les fichiers et dossier du lecteur C [ par kiitos ] Comment faire un fichier qui affiche dans la console tout les fichiers et dossier du lecteur C ? Utilisation de Fichiers txt en C++.net [ par zebulon88 ] Bonjour à tous,j'ai deux questions :- J'utilise visual c++.net express 2008, et je cherche à lire uniquement les dernières lignes d'un fichier txt trè Chercher un string dans un fichier texte ? [ par chtitpierre78 ] Bonjour,Je développe actuellement un outils en C++ (VisualC++) qui me permet de comparer 2 fichiers textes (.txt) d'environ 4Mo chacun (soit environ 6 suppression de fichier en fonction de la date de création [ par koma777 ] Bonjour à tous, Je cherche actuellement un programme automatisant la suppression de fichier en fonction d'une date antérieur. En effet, j'ai une camer fichier généré lors de l'execution d'un programme [ par lilly91 ] Bonjour,Dans le cadre de mon stage, j'aimerais savoir qu'elles sont les fichiers généré en règle générale lors de l'éxécution d'un programme, qu'elles Gros problème sur les fichiers en C [ par Zworykin ] Bjr à tous voià dans le cadre d'un tp je dois faire les fichiers de mon programme. j'arrive à écrire dans mon fichier mais je calle trop et c'est pas


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,374 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales