我现在得到了声卡的波形数据,现在要从中分离出各频段的信号分量,请问怎么玩啊就是类似WINAMP的波形与频谱显示

解决方案 »

  1.   

    播放.WAV文件,并显示其波形
    http://www.vbaspnew.com/ziyuan/y/dmt/m013.ZIP
      

  2.   

    大侠们,我看过了,还是不对我现在已能得到波形数据,现在要通过FFT快速傅里叶变换得到频谱分量高手快帮忙啊!
      

  3.   

    http://www.un4seen.com/files/bass20.zip
      

  4.   

    谢谢,那个BASS还真不错还差一步,我如何获得音量,分一定给
      

  5.   

    MSDN的PlatformSDK的Audio Mixer部分,有一个叫Meter Controls的东东可以获得实时波形电平.不过好像在XP下无效,你可以试试
      

  6.   

    声音的话可以用以下的函数:
    ' Set the global music/sample/stream volume levels.
    ' musvol : MOD music global volume level (0-100, -1=leave current)
    ' samvol : Sample global volume level (0-100, -1=leave current)
    ' strvol : Stream global volume level (0-100, -1=leave current)
    Declare Sub BASS_SetGlobalVolumes Lib "bass.dll" (ByVal musvol As Long, ByVal samvol As Long, ByVal strvol As Long)' Retrive the global music/sample/stream volume levels.
    ' musvol : MOD music global volume level (NULL=don't retrieve it)
    ' samvol : Sample global volume level (NULL=don't retrieve it)
    ' strvol : Stream global volume level (NULL=don't retrieve it)
    Declare Sub BASS_GetGlobalVolumes Lib "bass.dll" (ByRef musvol As Long, ByRef samvol As Long, ByRef strvol As Long)' Set the digital output master volume.
    ' volume : Desired volume level (0-100)
    Declare Function BASS_SetVolume Lib "bass.dll" (ByVal volume As Long) As Integer' Get the digital output master volume.
    ' RETURN : The volume level (0-100, -1=error)
    Declare Function BASS_GetVolume Lib "bass.dll" () As Long当然也可以用:
    waveOutGetVolume、waveOutSetVolume这两个API函数,具体的例子搜索一下一大堆。