コード例 #1
0
ファイル: Program.cs プロジェクト: superowner/practicesharp
        private static WaveStream CreateInputStream(string fileName, out WaveChannel32 waveChannel)
        {
            WaveStream readerStream = null;

            if (fileName.EndsWith(".wav"))
            {
                readerStream = new WaveFileReader(fileName);
            }
            else if (fileName.EndsWith(".mp3"))
            {
                readerStream = new Mp3FileReader(fileName);
            }
            else
            {
                throw new InvalidOperationException("Unsupported extension");
            }

            // Provide PCM conversion if needed
            if (readerStream.WaveFormat.Encoding != WaveFormatEncoding.Pcm)
            {
                readerStream = WaveFormatConversionStream.CreatePcmStream(readerStream);
                readerStream = new BlockAlignReductionStream(readerStream);
            }

            // Provide conversion to 16 bits if needed
            if (readerStream.WaveFormat.BitsPerSample != 16)
            {
                var format = new WaveFormat(readerStream.WaveFormat.SampleRate,
                                            16, readerStream.WaveFormat.Channels);
                readerStream = new WaveFormatConversionStream(format, readerStream);
            }

            waveChannel = new WaveChannel32(readerStream);

            // **************************************************************************************
            // Chain the DSP Equalizer Effect - DSP Equalizer must come AFTER WaveChannel32 because it
            //  was coded to expect Ieee Float samples, NOT PCM samples
            m_eqEffect = new EqualizerEffect();
            m_eqEffect.OnFactorChanges();

            readerStream = new DSPEffectStream(waveChannel, m_eqEffect);
            // **************************************************************************************

            return(readerStream);
        }
コード例 #2
0
ファイル: Program.cs プロジェクト: mattcuba/practicesharp
        private static WaveStream CreateInputStream(string fileName, out WaveChannel32 waveChannel)
        {
            WaveStream readerStream = null;

            if (fileName.EndsWith(".wav"))
            {
                readerStream = new WaveFileReader(fileName);
            }
            else if (fileName.EndsWith(".mp3"))
            {
                readerStream = new Mp3FileReader(fileName);
            }
            else
            {
                throw new InvalidOperationException("Unsupported extension");
            }

            // Provide PCM conversion if needed
            if (readerStream.WaveFormat.Encoding != WaveFormatEncoding.Pcm)
            {
                readerStream = WaveFormatConversionStream.CreatePcmStream(readerStream);
                readerStream = new BlockAlignReductionStream(readerStream);
            }

            // Provide conversion to 16 bits if needed
            if (readerStream.WaveFormat.BitsPerSample != 16)
            {
                var format = new WaveFormat(readerStream.WaveFormat.SampleRate,
                16, readerStream.WaveFormat.Channels);
                readerStream = new WaveFormatConversionStream(format, readerStream);
            }

            waveChannel = new WaveChannel32(readerStream);
            
            // **************************************************************************************
            // Chain the DSP Equalizer Effect - DSP Equalizer must come AFTER WaveChannel32 because it
            //  was coded to expect Ieee Float samples, NOT PCM samples
            m_eqEffect = new EqualizerEffect();
            m_eqEffect.OnFactorChanges();

            readerStream = new DSPEffectStream(waveChannel, m_eqEffect);
            // **************************************************************************************

            return readerStream;
        }