Ejemplo n.º 1
0
        private void AddToSampleAggregator(byte[] buffer, int bytesRecorded, bool isFloatingPointAudio)
        {
            var buff = new WaveBuffer(buffer);

            if (isFloatingPointAudio)
            {
                for (var index = 0; index < bytesRecorded / 4; ++index)
                {
                    var sample = buff.FloatBuffer[index];
                    _sampleAggregator?.Add(sample);
                }
            }
            else
            {
                for (var index = 0; index < bytesRecorded / 2; ++index)
                {
                    var sample = buff.ShortBuffer[index];
                    _sampleAggregator?.Add(sample / 32768F);
                }
            }
        }
Ejemplo n.º 2
0
        private void WaveSourceDataAvailableHandler(object sender, WaveInEventArgs waveInEventArgs)
        {
            // as audio samples are provided by WaveIn, we hook in here
            // and write them to disk, encoding to MP3 on the fly
            // using the _mp3Writer...

            byte[] buffer        = waveInEventArgs.Buffer;
            int    bytesRecorded = waveInEventArgs.BytesRecorded;

            if (_fader != null && _fader.Active)
            {
                // we're fading out...
                _fader.FadeBuffer(buffer, bytesRecorded);
            }

            for (int index = 0; index < bytesRecorded; index += 2)
            {
                short sample   = (short)((buffer[index + 1] << 8) | buffer[index + 0]);
                float sample32 = sample / 32768F;
                _sampleAggregator.Add(sample32);
            }

            _mp3Writer.Write(buffer, 0, bytesRecorded);
        }
Ejemplo n.º 3
0
 private void SampleRead(object sender, SampleEventArgs e)
 {
     sampleAggregator.Add(e.Left, e.Right);
 }
Ejemplo n.º 4
0
 void waveStream_Sample(object sender, SampleEventArgs e)
 {
     waveformAggregator.Add(e.Left, e.Right);
 }