begin process at 2012 02 17 12:01:00
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Tutoriaux

 > CREATION DUN FICHIER.WAV EN VB.NET

CREATION DUN FICHIER.WAV EN VB.NET


 Information sur la source

Note :
Aucune note
Catégorie :Tutoriaux Source .NET ( DotNet ) Classé sous :créer, wav, mht, sinus Niveau :Débutant Date de création :25/03/2005 Vu / téléchargé :13 749 / 552

Auteur : guyvdv

Ecrire un message privé
Site perso
Commentaire sur cette source (2)
Ajouter un commentaire et/ou une note

 Description

Bonjour,
je vous presente un fichier mht que j'ai trouvé sur vbfrance.Ce fic  n'ete pas tres claire pour moi, allors j'ai essayé d'ecrire une deuxieme partis pour cette article , mais moi je l'ai ecris en text ("courrier new" pour avoir les tableau en ligne ).
Il s'agis de creer plussieurs *.wav, silence en 8 et 16 bit et un sinus en mono et stereo 8 et 16 bits.   En plus il y a un wav d'origine  (un ringtone).
Malleheureusement ce wav et le fichier mht  sont assez lourds, peutetre vous n'avais pas bezoin de les telecharger hmhmhm.

Ammusez vous avec ce petit text.

A+
Guy van der velden

Source

  • 'pour votre plaizier un des sub
  • Private Sub btnSinusStereo8_Click(ByVal sender As System.Object, _
  • ByVal e As System.EventArgs) Handles btnSinusStereo8.Click
  • '
  • Dim FreqL As Integer = 500 ' frequentie left =gauche
  • Dim FreqR As Integer = 800 ' frequentie right = droite
  • Dim SRate As Integer = 8000 ' sample frequence
  • Dim Tsec As Integer = 1 ' laps de temps
  • Dim BitR As Short = 8 ' resolution en bits
  • Dim MS As Short = 2 ' (1=mono, 2=stereo)
  • '-----prepare headerfields --------
  • F1 = "RIFF"
  • F2 = F2 ' not set yet
  • F3 = F3 ' already set
  • F4 = F4 ' already set
  • F5 = 16 ' fmtBlockLength
  • F6 = 1 ' 1=PCM classic, not compressed
  • F7 = MS ' 1=mono, 2=stereo
  • F8 = SRate ' samplingRate(Frequency)
  • F9 = MS * SRate * (BitR / 8) ' total number of bytes per sec
  • F10 = MS * (BitR / 8) ' BlockAlign
  • F11 = BitR ' bits per sample ( resolution )
  • F12 = "data"
  • F13 = MS * (BitR / 8) * SRate * Tsec ' dataBlock-length in bytes incl chr(0)
  • F2 = F13 + 44 - 8 ' RiffBlock-length
  • 'Save de header
  • FN = Application.StartupPath & "\SinusStereo8.wav"
  • If Dir(FN, FileAttribute.Normal) <> "" Then Kill(FN)
  • K1 = FreeFile()
  • FileOpen(K1, FN, OpenMode.Binary)
  • 'header schrijven
  • FilePut(K1, F1) ' 4 bytes
  • FilePut(K1, F2) ' 4 b
  • FilePut(K1, F3) ' 4 b
  • FilePut(K1, F4) ' 4 b
  • FilePut(K1, F5) ' 4 b
  • FilePut(K1, F6) ' 2 b
  • FilePut(K1, F7) ' 2 b
  • FilePut(K1, F8) ' 4 b
  • FilePut(K1, F9) ' 4 b
  • FilePut(K1, F10) ' 2 b
  • FilePut(K1, F11) ' 2 b
  • FilePut(K1, F12) ' 4 b
  • FilePut(K1, F13) ' 4 b
  • 'save data chunck
  • ' 8 bits(= byte 0..255) le sinus = -127 .. +127, transformer en byte 0..255
  • ' stereo
  • 'taille du dataChunck F13, mais chaque echatillon compte un byte pour chaque canal
  • 'Je prefer compter en echantillon au lieu de octet.
  • i2 = F8 * Tsec
  • Dim Bt As Byte
  • Const pi = 3.14
  • Dim dL As Double = 2 * pi * FreqL / SRate
  • Dim dR As Double = 2 * pi * FreqR / SRate
  • Dim D1 As Double
  • For i1 = 0 To i2 - 1
  • D1 = 127 * Math.Sin(i1 * dL)
  • Bt = CByte(D1 + 127)
  • FilePut(K1, Bt)
  • D1 = 127 * Math.Sin(i1 * dR)
  • Bt = CByte(D1 + 127)
  • FilePut(K1, Bt)
  • Next
  • FileClose(K1)
  • MsgBox(FN & " is gesaved")
  • End Sub
  • Private Sub btnSilMono16_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSilMono16.Click
  • '
  • Dim SRate As Integer = 8000 ' sample frequency
  • Dim Tsec As Integer = 1 ' longueur du silence en secondes
  • Dim BitR As Short = 16 ' resolution en bits
  • Dim MS As Short = 1 ' (1=mono, 2=stereo)
  • Dim Bt As Byte
  • '-----prepare headerfields --------
  • F1 = "RIFF"
  • F2 = F2 ' not set yet
  • F3 = F3 ' already set
  • F4 = F4 ' already set
  • F5 = 16 ' fmtBlockLength
  • F6 = 1 ' 1=PCM classic, not compressed
  • F7 = MS ' 1=mono, 2=stereo
  • F8 = SRate ' samplingRate(Frequency)
  • F9 = MS * SRate * (BitR / 8) ' total number of bytes per sec
  • F10 = MS * (BitR / 8) ' BlockAlign
  • F11 = BitR ' bits per sample ( resolution )
  • F12 = "data"
  • F13 = MS * (BitR / 8) * SRate * Tsec ' dataBlock-length in bytes incl chr(0)
  • F2 = F13 + 44 - 8 ' RiffBlock-length
  • 'Save de header
  • FN = Application.StartupPath & "\SilStereo16.wav"
  • If Dir(FN, FileAttribute.Normal) <> "" Then Kill(FN)
  • K1 = FreeFile()
  • FileOpen(K1, FN, OpenMode.Binary)
  • 'header schrijven
  • FilePut(K1, F1) ' 4 bytes
  • FilePut(K1, F2) ' 4 b
  • FilePut(K1, F3) ' 4 b
  • FilePut(K1, F4) ' 4 b
  • FilePut(K1, F5) ' 4 b
  • FilePut(K1, F6) ' 2 b
  • FilePut(K1, F7) ' 2 b
  • FilePut(K1, F8) ' 4 b
  • FilePut(K1, F9) ' 4 b
  • FilePut(K1, F10) ' 2 b
  • FilePut(K1, F11) ' 2 b
  • FilePut(K1, F12) ' 4 b
  • FilePut(K1, F13) ' 4 b
  • 'save nu de data chunck
  • ' mono
  • ' 16 bit (= short -32768 <> +32767)
  • ' nombres de short (16 bit) a ecrire = Srate * Tsec
  • i2 = Tsec * SRate
  • 'voire ici "entete.txt"
  • Dim sh As Short ' 2 bytes
  • sh = 0
  • For i1 = 0 To i2 - 1
  • FilePut(K1, sh)
  • Next
  • FileClose(K1)
  • MsgBox(FN & " is gesaved")
  • End Sub
'pour votre plaizier un des sub

Private Sub btnSinusStereo8_Click(ByVal sender As System.Object, _
                      ByVal e As System.EventArgs) Handles btnSinusStereo8.Click
  '
  Dim FreqL As Integer = 500   ' frequentie left =gauche
  Dim FreqR As Integer = 800   ' frequentie right = droite
  Dim SRate As Integer = 8000  ' sample frequence
  Dim Tsec As Integer = 1      ' laps de temps
  Dim BitR As Short = 8        ' resolution en  bits
  Dim MS As Short = 2          ' (1=mono, 2=stereo)

  '-----prepare headerfields --------
  F1 = "RIFF"
  F2 = F2                      ' not set yet 
  F3 = F3                      ' already set
  F4 = F4                      ' already set  
  F5 = 16                      ' fmtBlockLength
  F6 = 1                       ' 1=PCM classic, not compressed
  F7 = MS                      ' 1=mono, 2=stereo  
  F8 = SRate                   ' samplingRate(Frequency)
  F9 = MS * SRate * (BitR / 8) ' total number of bytes per sec
  F10 = MS * (BitR / 8)        ' BlockAlign
  F11 = BitR                   ' bits per sample ( resolution )
  F12 = "data"
  F13 = MS * (BitR / 8) * SRate * Tsec  ' dataBlock-length in bytes incl chr(0)
  F2 = F13 + 44 - 8            ' RiffBlock-length

  'Save de header
  FN = Application.StartupPath & "\SinusStereo8.wav"
  If Dir(FN, FileAttribute.Normal) <> "" Then Kill(FN)
  K1 = FreeFile()
  FileOpen(K1, FN, OpenMode.Binary)
  'header schrijven
  FilePut(K1, F1)    '  4 bytes
  FilePut(K1, F2)    '  4 b
  FilePut(K1, F3)    '  4 b
  FilePut(K1, F4)    '  4 b
  FilePut(K1, F5)    '  4 b
  FilePut(K1, F6)    '  2 b
  FilePut(K1, F7)    '  2 b
  FilePut(K1, F8)    '  4 b
  FilePut(K1, F9)    '  4 b
  FilePut(K1, F10)   '  2 b
  FilePut(K1, F11)   '  2 b
  FilePut(K1, F12)   '  4 b
  FilePut(K1, F13)   '  4 b 

  'save  data chunck
  ' 8 bits(= byte  0..255) le sinus = -127 .. +127, transformer en byte 0..255
  ' stereo  
  'taille du dataChunck F13, mais chaque echatillon compte un byte pour chaque canal
  'Je prefer compter en echantillon au lieu de octet.
  i2 = F8 * Tsec
  Dim Bt As Byte
  Const pi = 3.14
  Dim dL As Double = 2 * pi * FreqL / SRate
  Dim dR As Double = 2 * pi * FreqR / SRate
  Dim D1 As Double
  For i1 = 0 To i2 - 1
   D1 = 127 * Math.Sin(i1 * dL)
   Bt = CByte(D1 + 127)
   FilePut(K1, Bt)
   D1 = 127 * Math.Sin(i1 * dR)
   Bt = CByte(D1 + 127)
   FilePut(K1, Bt)
  Next
  FileClose(K1)
  MsgBox(FN & " is gesaved")
 End Sub



 Private Sub btnSilMono16_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSilMono16.Click
  '
  Dim SRate As Integer = 8000  ' sample frequency
  Dim Tsec As Integer = 1      ' longueur du silence en secondes
  Dim BitR As Short = 16       ' resolution en  bits
  Dim MS As Short = 1          ' (1=mono, 2=stereo)
  Dim Bt As Byte

  '-----prepare headerfields --------
  F1 = "RIFF"
  F2 = F2                      ' not set yet 
  F3 = F3                      ' already set
  F4 = F4                      ' already set  
  F5 = 16                      ' fmtBlockLength
  F6 = 1                       ' 1=PCM classic, not compressed
  F7 = MS                      ' 1=mono, 2=stereo  
  F8 = SRate                   ' samplingRate(Frequency)
  F9 = MS * SRate * (BitR / 8) ' total number of bytes per sec
  F10 = MS * (BitR / 8)        ' BlockAlign
  F11 = BitR                   ' bits per sample ( resolution )
  F12 = "data"
  F13 = MS * (BitR / 8) * SRate * Tsec  ' dataBlock-length in bytes incl chr(0)
  F2 = F13 + 44 - 8            ' RiffBlock-length

  'Save de header
  FN = Application.StartupPath & "\SilStereo16.wav"
  If Dir(FN, FileAttribute.Normal) <> "" Then Kill(FN)
  K1 = FreeFile()
  FileOpen(K1, FN, OpenMode.Binary)
  'header schrijven
  FilePut(K1, F1)    '  4 bytes
  FilePut(K1, F2)    '  4 b
  FilePut(K1, F3)    '  4 b
  FilePut(K1, F4)    '  4 b
  FilePut(K1, F5)    '  4 b
  FilePut(K1, F6)    '  2 b
  FilePut(K1, F7)    '  2 b
  FilePut(K1, F8)    '  4 b
  FilePut(K1, F9)    '  4 b
  FilePut(K1, F10)   '  2 b
  FilePut(K1, F11)   '  2 b
  FilePut(K1, F12)   '  4 b
  FilePut(K1, F13)   '  4 b 

  'save nu de data chunck
  ' mono
  ' 16 bit  (= short -32768 <> +32767)
  ' nombres de short (16 bit) a ecrire = Srate * Tsec  
  i2 = Tsec * SRate
  'voire ici "entete.txt"
  Dim sh As Short ' 2 bytes 
  sh = 0
  For i1 = 0 To i2 - 1
   FilePut(K1, sh)
  Next
  FileClose(K1)
  MsgBox(FN & " is gesaved")
 End Sub

 Conclusion

Vous avez vu que la taille des fichiers wave sont assez lourds, mais j'espere que ce petit tutorial aidera au moins une personne, commeca j'aurai gagner mon paradis.
A+

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Sources du même auteur

Source avec Zip Source .NET (Dotnet) SOLUTION DE TOUS LES SUDOKU ,RECURSIVE, TRES BIEN COMMENTÉ
Source avec Zip Source .NET (Dotnet) SUDOKU SOLVER EN VB.NET2005 EXPRESS , PLUSIEURS SOLUTION POS...
Source avec Zip Source .NET (Dotnet) GLISSER UN TEXT D'UN TREEVIEW VERS UN LISTBOX
Source avec Zip CREER/AJOUTER TEXT, IMAGE, TABLEAU WORDART WORD DOCUMENT EN ...
Source avec Zip Source .NET (Dotnet) LARGEUR CHAMPS DATAGRID TYPE DE DONNÉES VB.NET

 Sources de la même categorie

Source avec Zip DLL PERSONNALISÉ AVEC ÉVÈNEMENTS ET PROPRIÉTÉS EN VB6. par Number7
Source avec Zip Source .NET (Dotnet) EXEMPLE DU TUTORAIL "CLASSES MÉTIER" par Adn56
Source avec Zip Source avec une capture Source .NET (Dotnet) GESTION DES LISTES : RANGEMENT (LIST.SORT) ET FILTRAGE (LIST... par kbalist
Source avec Zip EXEMPLE SUR LES MENUS POUR AIDER LES DÉBUTANTS COMME MOI ;-) par viragoloco
LES OPÉRATIONS DE LA LISTE CHAINÉE par smaili

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture TABLE DE MIXAGE COMME VIRTUAL DJ EN MIEUX par cednoir
Source avec Zip Source avec une capture OCX DE CARTE À JOUER AVEC PLEINS DE PROPRIÉTÉS UTILES par SnkVrt
Source avec Zip Source avec une capture ALBUMKGB (2009) par koumougilles
Source avec Zip TRANSPORTER UNE DB ACCESS DANS UN DOCUMENT WORD par jack
Source avec Zip Source avec une capture MINI SÉQUENSEUR par EvildarkEurope

Commentaires et avis

Commentaire de ninja hacker le 19/10/2007 04:17:36

J'aime beaucoup ta source mais tes notes ne sont pas justes... Je ne sais pas comment les changé mais prenon example la fréquence 1000. Pour obtenir cette fréquence il faut écrir 988 hertz et non 1000 pour quelle soi just. Par contre en desous de 500 hertz c'est linverse. 250 = apeupres 260... Une idée?

Commentaire de guyvdv le 22/10/2007 19:34:18

Cher Ninja,

Pas une idee, moi je ne peut pas mesurer 1000 Hz exact.

Guy van der Velden

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Pb de compilation [ par Xaviou ] Salut à tousJ'ai un petit problème à la compilation d'un petit jeu de cartes genre FreeCell.Lorsque je lance la création de l'EXE, VB compile, puis, a créer un tableau [ par maryem ] salut! je suis débutante en Vb et1- je voudrais savoir comment créer un tableau pour y stocker des valeurs constantes2- je voudrais savoir comment fa créer un service !! help [ par nilrem ] salut,j'ai essayé de créer un service en VB mais ca ne marche pasil me dit a la compilation :"point d'entrée registerserviceprocess d'une dll introuva menu contextuel [ par tchacm25 ] je suis en train de créer un petit prog sous visual basic 4.j'aurais besoin de créer un menu contextuel sur une liste de fichier.je sais créer ce menu Carnet d'adresses [ par Raynald ] Bonjour,le logiciel que je suis en train de créer demande l'adresse e-mail du client.Est-il possible, à partir de cette réponse, de créer un carnet d' lire un wav urgent [ par Nic ] comment faire pour lire un fichier *.waven cliquant sur un command boutton comment créer un menu ? [ par 2001 ] merci pour ce site, qui aide les neophytes.comment faire pour un créer un menu ?jj Comment créer moteur de recherche? [ par alinefr57@caramail.com ] J'aimerais savoir comment creer un moteur de recherche sous vb 6 avec du texte qui est afficher en Richtextbox envoyer moi des exemples car je suis dé Créer un contrôle image dynamiquement [ par Fred ] Salut,je voudrais faire un gestionnaire d'albums photos. Sachant qu'un album peut contenir un nombre d'images indéfini, il me faut créer (et afficher)


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
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,936 sec (4)

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