IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Delphi Discussion :

proprietes fichier WAV


Sujet :

Langage Delphi

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2002
    Messages : 35
    Points : 16
    Points
    16
    Par défaut proprietes fichier WAV
    Salut,

    J'aurais voulu savoir comment faire pour récupérer les propriétés d'un fichier wav (en particulier savoir si il est mono ou stéréo) avec juste son nom.

    Merci d'avance

  2. #2
    Expert éminent sénior
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Points : 10 008
    Points
    10 008
    Par défaut
    Salut,

    J'ai trouvé ceci à cette adresse http://col2000.free.fr/vocal/formawav.htm
    Par contre les couleurs sont très mauvaises. Désolé.


    Voilà j'espère que cela t'aidera,
    @+

  3. #3
    Expert éminent sénior
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Points : 10 008
    Points
    10 008
    Par défaut
    Salut,

    Voici un exemple de code te permettant de lire l'en-tête d'un fichier Wave.
    [Edit]: Ajout déclaration varaiable FFile dans procédure.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
     
    type
      TWaveHeader = record
        File_Type: array[0..3] of char;     // 1 à 4:   Identification du format = 'RIFF'
        File_Size: DWORD;                   // 5 à 8:   Taille du fichier - 8 (restant)
        File_ID: array[0..3] of char;       // 9 à 12:  'WAVE'
        Chunk_ID: array[0..3] of char;      // 13 à 16: Identification du chunk format = 'fmt'
        Chunk_Size: DWORD;                  // 17 à 20: Taille du chunk format
        Format: WORD;                       // 21 à 22: N° de format (0 = classique)
        Channels_nb: WORD;                  // 23 à 24: Nb de canaux (mono/stéréo) 1 ou 2
        Sampling_Frequency: DWORD;          // 25 à 28: Fréquence d'échantilonnage
        Byte_Per_Second: DWORD;             // 29 à 32: Nb octets / seconde utilisés
        Byte_Per_Sample: WORD;              // 33 à 34: Nb octets / échantillonnage utilisés
        Depth: WORD;                        // 35 à 36: Profondeur (Nb bits / échantillonnage) 8 ou 16
        Chunk_Data_ID: array[0..3] of char; // 37 à 40: Identification chunk données = 'data'
        Chunk_Data_Size: DWORD;             // 41 à 44: Taille du chunk données
      end;
     
    Implementation
     
    procedure TForm1.Button1Click(Sender: TObject);
    var
      FFile: File;
      NumRead: Integer;
      WaveHeader: TWaveHeader;
    begin
      if OpenDialog1.Execute then
      begin
        lblFilename.Caption := OpenDialog1.Filename;
        AssignFile(FFile, OpenDialog1.Filename);
        FileMode := 0;   // Lecture seule
        Reset(FFile, 1);
     
        // Lecture de l'en-tête
        BlockRead(FFile, WaveHeader, SizeOf(WaveHeader), NumRead);
        with WaveHeader do
        begin
          lblFile_Type.Caption := File_Type;
          lblFile_Size.Caption := IntToStr(File_Size) + ' Octets';
          lblFile_ID.Caption := File_ID;
          lblChunk_ID.Caption := Chunk_ID;
          lblChunk_Size.Caption := IntToStr(Chunk_Size) + ' Octets';
          case Format of
            0: lblFormat.Caption := 'Classique';
            1: lblFormat.Caption := 'PCM';
            else lblFormat.Caption := 'Autre (' +IntToStr(Format) + ')';  // A compléter je manque d'infos
          end;
          if Channels_nb = 1 then
            lblChannel_nb.Caption := 'Mono'
          else
            lblChannel_nb.Caption := 'Stéréo';
          lblSampling_Frequency.Caption := IntToStr(Sampling_Frequency) + ' Hz';
          lblByte_Per_Second.Caption := IntToStr(Byte_Per_Second);
          lblByte_Per_Sample.Caption := IntToStr(Byte_Per_Sample);
          lblDepth.Caption := IntToStr(Depth);
          lblChunk_Data_ID.Caption := Chunk_Data_ID;
          lblChunk_Data_Size.Caption := IntToStr(Chunk_Data_Size) + ' Octets';
          // Fermeture
          CloseFile(FFile);
        end;
      end
    end;
    Voilà ! @+

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2002
    Messages : 35
    Points : 16
    Points
    16
    Par défaut
    Merci pour le code, je vais jetter un oeil

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2002
    Messages : 35
    Points : 16
    Points
    16
    Par défaut
    Le code est impec, c'est ce qu'il me fallait, merci beaucoup.

    Par contre j'ai encore une petite question:
    Comment faire pour lire deux fichiers wave en même temps, et pouvoir enregistrer le résultat dans un seul fichier wave.

    Merci d'avance

  6. #6
    Expert éminent sénior
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Points : 10 008
    Points
    10 008
    Par défaut
    Re-Salut Carl,

    Le code est impec, c'est ce qu'il me fallait, merci beaucoup.
    Ce fut avec plaisir !

    Par contre pour répondre à ta dernière question, euh, j'avoue que je décrouve tout ceci en même temps que toi.
    Donc laisse-moi un peu de temps, je vais me pencher sur le problème.

    Pour être sûr de l'objectif, tu veux créer Wave3 qui sera égal à Wave1 + Wave2. C'est ça ?

    @+ Claude

  7. #7
    Expert éminent sénior
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Points : 10 008
    Points
    10 008
    Par défaut
    Salut,

    Je cherchais chez l'ami Google des infos pour concatener des fichiers Waves, et voilà ce que j'ai trouvé: Un bel exemple sur ce site !

    http://delphi.developpez.com/sources/?page=sec_sys_son

    Tu as d'autres infos sur les waves: les en-tetes, les données, ...

    @+

  8. #8
    Membre éclairé
    Inscrit en
    Juin 2005
    Messages
    644
    Détails du profil
    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2005
    Messages : 644
    Points : 754
    Points
    754
    Par défaut
    voir aussi
    pour format des waves voir
    http://ccrma.stanford.edu/courses/422/projects/WaveFormat/

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2002
    Messages : 35
    Points : 16
    Points
    16
    Par défaut
    Merci pour le lien, mais je ne veux pas concatener des waves, mais les lire en même temps. mais merci quand même

  10. #10
    Membre éclairé
    Inscrit en
    Juin 2005
    Messages
    644
    Détails du profil
    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2005
    Messages : 644
    Points : 754
    Points
    754
    Par défaut
    Qu'entendez-vous pour lire
    - Les écouter sour une sortie audio
    - voir les data
    - ...

    ?

  11. #11
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2002
    Messages : 35
    Points : 16
    Points
    16
    Par défaut
    Sorry, c'est vrai que ça peu preter à confusion, quand je met lire, je parle d'écouter les fichiers et de pouvoir enregister le résultat dans un autres fichier wave.

  12. #12
    Expert confirmé
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Points : 4 219
    Points
    4 219
    Par défaut
    Salut!

    Je pense que la solution a déjà été donné plus haut...
    j'ai réalisé ce petit tuto sur le format WAV, alors je vous en fait profiter :

    http://sub0.developpez.com/FormatWAV/FormatWAV.htm

    à+

Discussions similaires

  1. [Audio]Java et fichiers Wav
    Par danael dans le forum Multimédia
    Réponses: 3
    Dernier message: 10/10/2005, 20h09
  2. Réponses: 1
    Dernier message: 24/05/2005, 14h50
  3. Création d'un fichier .wav
    Par eag35 dans le forum MFC
    Réponses: 5
    Dernier message: 09/02/2005, 15h13
  4. Lecture de fichiers ".WAV"...
    Par 0x4e84 dans le forum Langage
    Réponses: 2
    Dernier message: 03/09/2002, 09h43
  5. [Kylix] jouer un fichier wav avec kilyx
    Par JlouisI dans le forum EDI
    Réponses: 1
    Dernier message: 14/06/2002, 02h05

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo