begin process at 2012 02 16 01:45:23
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Visual Basic 6

 > 

Multimédia

 > 

Audio

 > 

Selectionner une fréquence ou plusieur


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

Selectionner une fréquence ou plusieur

mardi 5 décembre 2006 à 16:43:46 | Selectionner une fréquence ou plusieur

jamaica

bonjour

Voila le module de mon programmeen VB6, que doit je ajouter pour pouvoir selectionner une fréquence ex : 1000Hz  de facon a pouvoir incrementer un bargraph par exemple.
déja une fréquence ce serait cool.

Merci d'avance  


Module :

Option Explicit

Public DevHandle As Long 'Handle of the open audio device

Public Visualizing As Boolean
Public Divisor As Long

Public ScopeHeight As Long 'Saves time because hitting up a Long is faster
                            'than a property.
                           
Public Type WaveFormatEx
    FormatTag As Integer
    Channels As Integer
    SamplesPerSec As Long
    AvgBytesPerSec As Long
    BlockAlign As Integer
    BitsPerSample As Integer
    ExtraDataSize As Integer
End Type

Public Type WAVEHDR
    lpData As Long
    dwBufferLength As Long
    dwBytesRecorded As Long
    dwUser As Long
    dwFlags As Long
    dwLoops As Long
    lpNext As Long 'wavehdr_tag
    Reserved As Long
End Type

Public Type WAVEINCAPS
    ManufacturerID As Integer      'wMid
    ProductID As Integer       'wPid
    DriverVersion As Long       'MMVERSIONS vDriverVersion
    ProductName(1 To 32) As Byte 'szPname[MAXPNAMELEN]
    Formats As Long
    Channels As Integer
    Reserved As Integer
End Type

Public Const WAVE_INVALIDFORMAT = &H0&                 '/* invalid format */
Public Const WAVE_FORMAT_1M08 = &H1&                   '/* 11.025 kHz, Mono,   8-bit
Public Const WAVE_FORMAT_1S08 = &H2&                   '/* 11.025 kHz, Stereo, 8-bit
Public Const WAVE_FORMAT_1M16 = &H4&                   '/* 11.025 kHz, Mono,   16-bit
Public Const WAVE_FORMAT_1S16 = &H8&                   '/* 11.025 kHz, Stereo, 16-bit
Public Const WAVE_FORMAT_2M08 = &H10&                  '/* 22.05  kHz, Mono,   8-bit
Public Const WAVE_FORMAT_2S08 = &H20&                  '/* 22.05  kHz, Stereo, 8-bit
Public Const WAVE_FORMAT_2M16 = &H40&                  '/* 22.05  kHz, Mono,   16-bit
Public Const WAVE_FORMAT_2S16 = &H80&                  '/* 22.05  kHz, Stereo, 16-bit
Public Const WAVE_FORMAT_4M08 = &H100&                 '/* 44.1   kHz, Mono,   8-bit
Public Const WAVE_FORMAT_4S08 = &H200&                 '/* 44.1   kHz, Stereo, 8-bit
Public Const WAVE_FORMAT_4M16 = &H400&                 '/* 44.1   kHz, Mono,   16-bit
Public Const WAVE_FORMAT_4S16 = &H800&                 '/* 44.1   kHz, Stereo, 16-bit

Public Const WAVE_FORMAT_PCM = 1

Public Const WHDR_DONE = &H1&              '/* done bit */
Public Const WHDR_PREPARED = &H2&          '/* set if this header has been prepared */
Public Const WHDR_BEGINLOOP = &H4&         '/* loop start block */
Public Const WHDR_ENDLOOP = &H8&           '/* loop end block */
Public Const WHDR_INQUEUE = &H10&          '/* reserved for driver */

Public Const WIM_OPEN = &H3BE
Public Const WIM_CLOSE = &H3BF
Public Const WIM_DATA = &H3C0

Public Declare Function waveInAddBuffer Lib "winmm" (ByVal InputDeviceHandle As Long, ByVal WaveHdrPointer As Long, ByVal WaveHdrStructSize As Long) As Long
Public Declare Function waveInPrepareHeader Lib "winmm" (ByVal InputDeviceHandle As Long, ByVal WaveHdrPointer As Long, ByVal WaveHdrStructSize As Long) As Long
Public Declare Function waveInUnprepareHeader Lib "winmm" (ByVal InputDeviceHandle As Long, ByVal WaveHdrPointer As Long, ByVal WaveHdrStructSize As Long) As Long

Public Declare Function waveInGetNumDevs Lib "winmm" () As Long
Public Declare Function waveInGetDevCaps Lib "winmm" Alias "waveInGetDevCapsA" (ByVal uDeviceID As Long, ByVal WaveInCapsPointer As Long, ByVal WaveInCapsStructSize As Long) As Long

Public Declare Function waveInOpen Lib "winmm" (WaveDeviceInputHandle As Long, ByVal WhichDevice As Long, ByVal WaveFormatExPointer As Long, ByVal CallBack As Long, ByVal CallBackInstance As Long, ByVal Flags As Long) As Long
Public Declare Function waveInClose Lib "winmm" (ByVal WaveDeviceInputHandle As Long) As Long

Public Declare Function waveInStart Lib "winmm" (ByVal WaveDeviceInputHandle As Long) As Long
Public Declare Function waveInReset Lib "winmm" (ByVal WaveDeviceInputHandle As Long) As Long
Public Declare Function waveInStop Lib "winmm" (ByVal WaveDeviceInputHandle As Long) As Long

Public Const PI As Double = 3.1415
Public Const NumSamples = 1024

Public Wave As WAVEHDR
Public InData(0 To NumSamples - 1) As Integer

Public LastVolLeft As Double
Public LastVolRight As Double
Public VolLeft As Double
Public VolRight As Double

Sub InitDevices()
    Dim Caps As WAVEINCAPS, Which As Long
    frmMain.DevicesBox.Clear
    For Which = 0 To waveInGetNumDevs - 1
        Call waveInGetDevCaps(Which, VarPtr(Caps), Len(Caps))
        If Caps.Formats And WAVE_FORMAT_1S16 Then
            Call frmMain.DevicesBox.AddItem(StrConv(Caps.ProductName, vbUnicode), Which)
        End If
    Next
    If frmMain.DevicesBox.ListCount = 0 Then
        MsgBox "You have no audio input devices!", vbCritical, "Ack!"
    End If
    frmMain.DevicesBox.ListIndex = 0
End Sub

Public Sub DoStop()
    DevHandle = 0
    Call waveInReset(DevHandle)
    Call waveInClose(DevHandle)
End Sub

mardi 5 décembre 2006 à 17:57:54 | Re : Selectionner une fréquence ou plusieur

Flachy Joe

Ce qu'il faut rajouter ? Plein de chose...
Regarde de ce coté : http://www.vbfrance.com/codes/FFT-CALCUL-SPECTRE-FILTRAGE_30471.aspx

Flachy Joe
mardi 5 décembre 2006 à 18:11:48 | Re : Selectionner une fréquence ou plusieur

jamaica

bonjour et maerci flachy Joe,

Ce n'est pas tellement Fourier et ses algoritmes qui m'interesse mais comment peux t'on faire pour selectionner q'une fréquence (exemple reprit si dessus 1000Hz) d'un son pour avoir une variable qui incrementer un bargraph .


Merci
mardi 5 décembre 2006 à 18:24:22 | Re : Selectionner une fréquence ou plusieur

Flachy Joe

Ben, il faut justement calculer le spectre (courbe de l'intensité du son en fonction de la frequence) et recuperrer la valeur de celui çi à la frequence voulue.

Flachy Joe


Cette discussion est classée dans : public, long, format, const, wave


Répondre à ce message

Sujets en rapport avec ce message

Treeview,icone, et transparence ... [ par Warning ] Voila mon probleme:J'ai créer cette fonction, mais j'aimerais pouvoir récupérer l'icone du fichier dans un TreeView, avec un fond transparent, j'ai ri lecture de la base de registre [ par dragon ] j`ai trouver un code source sur le forum qui montre comment créé, ajouter un valeur, effacer la clé, effacer la valeur, mais ilo dit pas comment conna Trouvez l'erreur SVP !!! (Rapidement si possible) :) [ par titiboux ] ChristianJe veux copier un disque dur complet sur un autre disque dur. J'ai tapé le code suivant, qui ne fonctionne que si l'origine est un répertoire Copier-Coller-Supprimer de Win 9X vers XP [ par joro ] Il ya quelque temps, Gerome GUILLEMIN avait déposé le code suivant----------------------------------------------------------------'SHFILEOPERATION Cop WNetOpenEnum et les fontions réseau dans VB.NET [ par Iceabyssal ] Bonjour, J'ai un probleme avec les fonctions d'énumération du réseau, du type "WNetOpenEnum". J'ai un programme qui tourne parfaitement sous VB 6 et Music midi en boucle [ par kakenette ] Bonjour ! voila j'ai un module qui me sert a play une musique midi : -------------------------------------------------------------------------------- Garder le dernier fichier sauvegardé [ par jmkkkk ] Comment faire un message très long : J'ai un fichier JMTree.bas commme ci.dessous : Option Explicit     Type SHITEMID   ' mkid         cb As Long Api - BackColor (experts) [ par davidauche ] Bah après une galère pour détecter le message WM_CTLCOLORSTATIC (avec une méthode conne mais ça marche :) ).  Maintenant je me trouve devant une autre Problèmes avec systray en vb2005 [ par Julien237 ] Bonjour, je viens de passer à VB2005 (à mon avis ceux qui utilisent .NET peuvent très bien me répondre, vb6 pas vu la nature de mon problème...) Je vo Erreur Mappage Reseau [ par ldFix ] BonjourJ'essaye de faire du mappage Reseau en utilisant les API Windows (WNetAddConnection2A) et j'ai en retour l'erreur 487.Merci de votre aide.Mon c


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

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

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