Changeset 9


Ignore:
Timestamp:
Aug 28, 2011, 4:57:19 AM (10 years ago)
Author:
roman
Message:
 
Location:
trunk/Utilities/GeneratePcmWavFile
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/Utilities/GeneratePcmWavFile/GeneratePcmWavFile.cpp

    r8 r9  
    252252                                                        SHORT* pnSampleData = (SHORT*) (Properties.pbBuffer + nIndex);
    253253                                                        for(WORD nChannelIndex = 0; nChannelIndex < pWaveFormatEx->nChannels; nChannelIndex++)
    254                                                                 pnSampleData[nChannelIndex] += (SHORT) (m_fSignalAmplitude * (DOUBLE) (rand() - RAND_MAX / 2) / (RAND_MAX / 2));
     254                                                                pnSampleData[nChannelIndex] += (SHORT) (m_fNoiseAmplitude * (DOUBLE) (rand() - RAND_MAX / 2) / (RAND_MAX / 2));
    255255                                                }
    256256                                        }
     
    273273                        VOID InitializeSignal(DOUBLE fSignalPeriod, DOUBLE fSignalAmplitude, DOUBLE fNoiseAmplitude)
    274274                        {
    275                                 __D(fSignalPeriod > 0 && fSignalAmplitude >= 0, E_INVALIDARG);
     275                                __D(fSignalPeriod >= 0 && fSignalAmplitude >= 0 && fNoiseAmplitude >= 0, E_INVALIDARG);
    276276                                m_fSignalPeriod = fSignalPeriod;
    277277                                m_fSignalAmplitude = fSignalAmplitude;
     
    460460                {
    461461                        __D(m_WaveFormatEx.wBitsPerSample == 16, E_NOTIMPL);
    462                         const DOUBLE fSignalPeriod = (DOUBLE) pWaveFormatEx->nSamplesPerSec / m_nSignalFrequency;
    463                         const DOUBLE fSignalAmplitude = 32767.0 / pow(10.0, m_nSignalLoudness / 20.0);
    464                         const DOUBLE fNoiseAmplitude = 32767.0 / pow(10.0, m_nNoiseLoudness / 20.0);
     462                        DOUBLE fSignalPeriod = 0, fSignalAmplitude = 0;
     463                        if(m_nSignalFrequency && m_nSignalLoudness)
     464                        {
     465                                fSignalPeriod = (DOUBLE) pWaveFormatEx->nSamplesPerSec / m_nSignalFrequency;
     466                                fSignalAmplitude = 32767.0 / pow(10.0, m_nSignalLoudness / 20.0);
     467                        }
     468                        DOUBLE fNoiseAmplitude = 0;
     469                        if(m_nNoiseLoudness)
     470                        {
     471                                fNoiseAmplitude = 32767.0 / pow(10.0, m_nNoiseLoudness / 20.0);
     472                        }
    465473                        pSourceFilter->InitializeSignal(fSignalPeriod, fSignalAmplitude, fNoiseAmplitude);
    466474                }
Note: See TracChangeset for help on using the changeset viewer.