Здравствуйте, XOR, Вы писали:
http://soobcha.ru/rushelp/articles/winmm/index.html
Вот здесь найдешь книгу Фроловых, по функциям для работы со звукам (функции низкоуровневые ведь поддержка даже на Windows 9x тебе может пригодится).
алгоритм такой:
загружаешь Wave файл (или записываешь звук с микрофона) с помощью функций которые прилагаются к этой книги.
У тебя будет массив значений , следовательно пропускаешь этот массив через преобразования Фурье:
int math_inverse_bits( int value, int bits )
// инвертируем биты для преобразования Фурье
{
int result = 0 ;
int mask = 1 << (bits-1) ;
for ( int i=0; i<bits; i++ )
{
if ( value & mask )
result |= 1 << i ;
mask = mask >> 1 ;
}
return ( result ) ;
}
BOOL math_fft( double* dbl_array, int* nSize )
{
// определяем длину для преобразования фурье
int tmp_size = *nSize ;
for( int M=0; tmp_size>1; tmp_size/=2,M++ ) ;
int fft_size = 1 << M ; // 1<<M == 2^M
// подготавливаем массив
std::complex<double>* fft_array =
new std::complex<double>[ fft_size ] ;
ASSERT( fft_array ) ;
// устанавливаем порядок для fft
for ( int i=0; i<fft_size; i++ )
{
fft_array[ math_inverse_bits(i,M) ] =
std::complex<double>(dbl_array[ i ],0.0) ;
}
double pi = 3.141592653589793 ;
// M этапов
for ( int l=0; l<M; l++ )
{
int le = 1 << (l+1) ; // le - смещение между бабочками
int le1 = le >> 1 ; // le1 - размер бабочки
std::complex<double> U ( 1.0, 0.0 ) ;
std::complex<double> W ( cos( pi / le1 ), sin( pi / le1 ) ) ;
for ( int j=0; j<le1; j++ )
{
for ( int i=j; i<fft_size; i+=le )
{
int ip = i + le1 ;
std::complex<double> T = fft_array[ ip ] * U ;
fft_array [ ip ] = fft_array[ i ] - T ;
fft_array [ i ] = fft_array[ i ] + T ;
}
U *= W ;
}
}
for ( i=0; i<fft_size / 2 ; i++ )
{
dbl_array[ i ] = std::abs( fft_array[ i ] ) ;
}
*nSize = fft_size / 2 ;
delete[] fft_array ; fft_array = NULL ;
return ( TRUE ) ;
}
Далее рисуешь график спектра GDI функциями

, используя значения полученные из массива после преобразования.
Кажется дальше объяснять не надо.
Вот можешь в MSDN еще посмотреть

:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_waveform_functions.asp
P.S. Если лень рисовать самому график сигнала (звука) то можно использовать вот такой вот класс:
http://codeguru.com/multimedia/CWaveFile.html
Успехов.