Exemplo n.º 1
0
        //Record/Stop, user can record with many tries as possible
        private void recStpBtn_Click(object sender, EventArgs e)
        {
            //When pressed first, start recording
            if (mode)
            {
                try
                {
                    recStpBtn.Text       = "Stop";
                    wavSource            = new NAudio.Wave.WaveIn();
                    wavSource.WaveFormat = new NAudio.Wave.WaveFormat(44100, 1);

                    wavSource.DataAvailable    += new EventHandler <NAudio.Wave.WaveInEventArgs>(wavSource_DataAvail);
                    wavSource.RecordingStopped += new EventHandler <NAudio.Wave.StoppedEventArgs>(wavSource_RecordingStop);

                    wavFile = new NAudio.Wave.WaveFileWriter(@"C:\Pres_Proto\V2\MetroFrameworkDLLExample\RecordWAV\" + lvlStr + ".wav", wavSource.WaveFormat);
                    wavSource.StartRecording();
                    mode = false;
                }
                catch (System.IO.IOException ex)
                {
                    MessageBox.Show(ex.ToString());
                }
            }
            //Else stop recording
            else
            {
                recStpBtn.Text = "Record";
                wavSource.StopRecording();
                mode = true;
            }
        }
Exemplo n.º 2
0
        private void button5_Click(object sender, EventArgs e)
        {
            if (sourceList.SelectedItems.Count == 0)
            {
                return;
            }

            SaveFileDialog save = new SaveFileDialog();

            save.Filter = "Wave File (*.wav)|*.wav;";
            if (save.ShowDialog() != System.Windows.Forms.DialogResult.OK)
            {
                return;
            }

            int deviceNumber = sourceList.SelectedItems[0].Index;

            sourceStream = new NAudio.Wave.WaveIn();
            sourceStream.DeviceNumber = deviceNumber;
            sourceStream.WaveFormat   = new NAudio.Wave.WaveFormat(44100, NAudio.Wave.WaveIn.GetCapabilities(deviceNumber).Channels);

            sourceStream.DataAvailable += new EventHandler <NAudio.Wave.WaveInEventArgs>(sourceStream_DataAvailable);
            waveWriter = new NAudio.Wave.WaveFileWriter(save.FileName, sourceStream.WaveFormat);

            sourceStream.StartRecording();
        }
Exemplo n.º 3
0
        //Now, when you click record, it's going to start a timer
        //and the user can give as many repetitions in one input
        //this is to enhance the audio input percentage
        private void recBtn_Click(object sender, EventArgs e)
        {
            try
            {
                backBtn.Enabled = false;
                String filename = @"C:\Pres_Proto\V2\MetroFrameworkDLLExample\RecordWAV\" + lvlStr + ".wav";
                //recordBtn.Text = "STOP";
                wavSource            = new NAudio.Wave.WaveIn();
                wavSource.WaveFormat = new NAudio.Wave.WaveFormat(44100, 1);

                wavSource.DataAvailable    += new EventHandler <NAudio.Wave.WaveInEventArgs>(wavSource_DataAvail);
                wavSource.RecordingStopped += new EventHandler <NAudio.Wave.StoppedEventArgs>(wavSource_RecordingStop);

                wavFile = new NAudio.Wave.WaveFileWriter(filename, wavSource.WaveFormat);
                wavSource.StartRecording();

                slideDown(sender, e);
                //Amount of time to take voice input
                seconds = 5;
                //startRecord(sender, e);
                timeLabel.Visible = true;
                secsLabel.Visible = true;
                secsLabel.Text    = Convert.ToString(seconds);
                countTimer.Start();
                //setMode = false;
            }
            catch (Exception)
            {
                throw;
            }
        }
Exemplo n.º 4
0
        public static async System.Threading.Tasks.Task MicrophoneToFileAsync(string fileName, TimeSpan timeout)
        {
            Console.Write("Listening for " + timeout.TotalSeconds + " seconds ...");
            // create wave input using microphone
            using (NAudio.Wave.WaveInEvent waveIn = new NAudio.Wave.WaveInEvent())
            {
                waveIn.DeviceNumber       = Options.options.audio.NAudio.inputDeviceNumber;
                waveIn.BufferMilliseconds = Options.options.audio.NAudio.waveInBufferMilliseconds;
                waveIn.WaveFormat         = new NAudio.Wave.WaveFormat(Options.options.audio.samplingRate, (int)Options.options.audio.bitDepth, Options.options.audio.channels); // usually only mono (one channel) is supported
                waveIn.DataAvailable     += WaveIn_DataAvailable;                                                                                                                // use event to fill buffer
                using (waveInFile = new NAudio.Wave.WaveFileWriter(Options.options.tempFolderPath + fileName, waveIn.WaveFormat))
                {
                    waveIn.StartRecording();

                    //Console.WriteLine("Hit enter when finished recording.");
                    //Console.ReadKey();
                    System.Threading.Tasks.Task.Delay(timeout).Wait();

                    waveIn.StopRecording();

                    waveInFile.Close();
                }
                Console.WriteLine("");
            }
        }
Exemplo n.º 5
0
        } // End Sub Main

        // https://ourcodeworld.com/articles/read/702/how-to-record-the-audio-from-the-sound-card-system-audio-with-c-using-naudio-in-winforms
        // https://stackoverflow.com/questions/18812224/c-sharp-recording-audio-from-soundcard
        static void TestAudioRecording()
        {
            // Define the output wav file of the recorded audio
            string outputFilePath = @"D:\username\Desktop\system_recorded_audio.wav";

            // Redefine the capturer instance with a new instance of the LoopbackCapture class
            NAudio.Wave.WasapiLoopbackCapture CaptureInstance = new NAudio.Wave.WasapiLoopbackCapture();

            // Redefine the audio writer instance with the given configuration
            NAudio.Wave.WaveFileWriter RecordedAudioWriter = new NAudio.Wave.WaveFileWriter(outputFilePath, CaptureInstance.WaveFormat);

            // When the capturer receives audio, start writing the buffer into the mentioned file
            CaptureInstance.DataAvailable += (s, a) =>
            {
                // Write buffer into the file of the writer instance
                RecordedAudioWriter.Write(a.Buffer, 0, a.BytesRecorded);
            };

            // When the Capturer Stops, dispose instances of the capturer and writer
            CaptureInstance.RecordingStopped += (s, a) =>
            {
                RecordedAudioWriter.Dispose();
                RecordedAudioWriter = null;
                CaptureInstance.Dispose();
            };

            // Start audio recording !
            CaptureInstance.StartRecording();


            System.Console.WriteLine(" --- Press any key to stop recording --- ");
            System.Console.ReadKey();
            CaptureInstance.StopRecording();
        } // End Sub Main
Exemplo n.º 6
0
        private void btnSpeech_Click(object sender, EventArgs e)
        {
            if (this.checkSubscriptionKey())
            {
                this.btnSpeech.Enabled = false;

                if (this.micClient == null)
                {
                    this.CreateMicrophoneRecoClient();
                }

                this.micClient.StartMicAndRecognition();

                //if (identify)
                //{
                string fileName = "C:\\Users\\Mac\\Desktop\\check.wav";

                int deviceNumber = 0;

                sourceStream = new NAudio.Wave.WaveIn();

                sourceStream.DeviceNumber = deviceNumber;

                sourceStream.WaveFormat = new NAudio.Wave.WaveFormat(16000, 1);

                sourceStream.DataAvailable += new EventHandler <NAudio.Wave.WaveInEventArgs>(sourceStream_DataAvailable);
                waveWriter = new NAudio.Wave.WaveFileWriter(fileName, sourceStream.WaveFormat);

                sourceStream.StartRecording();
                //}
            }
        }
        static void Main(string[] args)
        {
            string songPath = (args.Length == 1) ? args[0] : Console.ReadLine();
            string songName = Path.GetFileNameWithoutExtension(songPath);
            string simPath  = "simOut\\" + songName + "\\";

            string[] filenames = new string[] { simPath + "output" }; // TODO doesn't this mean the following loop should be removed?
            foreach (string e in filenames)
            {
                StreamReader file   = new StreamReader(e + ".txt");
                List <Int16> values = new List <Int16>();
                while (!file.EndOfStream)
                {
                    string   line         = file.ReadLine();
                    string[] stringValues = line.Split(',');
                    for (int i = 0; i < stringValues.Length; i++)
                    {
                        double h;
                        if (double.TryParse(stringValues[i], out h))
                        {
                            values.Add((Int16)Math.Round(32768 * double.Parse(stringValues[i])));
                        }
                    }
                }
                Int16[]                    buffer    = values.ToArray();
                FileStream                 outStream = new FileStream(e + ".wav", FileMode.Create);
                NAudio.Wave.WaveFormat     format    = new NAudio.Wave.WaveFormat(44100, 16, 1);
                NAudio.Wave.WaveFileWriter writer    = new NAudio.Wave.WaveFileWriter(outStream, format);
                writer.WriteSamples(buffer, 0, buffer.Length);
                writer.Close();
            }
            System.IO.File.Copy(filenames[0] + ".wav", "simOut\\" + songName + ".wav", true);
        }
Exemplo n.º 8
0
        private void recordBatton_Click(object sender, EventArgs e)
        {
            if (deviceListBox.SelectedItems.Count == 0)
            {
                MessageBox.Show("Nie wybrano żadnego urządzenia");
            }
            else
            {
                SaveFileDialog save = new SaveFileDialog();
                save.Filter = "Wave File (*.wav)|*.wav;";
                if (save.ShowDialog() != DialogResult.OK)
                {
                    return;
                }

                messageBox.Text  = " ";
                messageBox.Text += "Recording...\n";
                int deviceNumber = deviceListBox.SelectedIndex;

                sourceStream = new NAudio.Wave.WaveIn();
                sourceStream.DeviceNumber = deviceNumber;
                sourceStream.WaveFormat   = new NAudio.Wave.WaveFormat(44100, NAudio.Wave.WaveIn.GetCapabilities(deviceNumber).Channels);

                sourceStream.DataAvailable += new EventHandler <NAudio.Wave.WaveInEventArgs>(sourceStream_DataAvailable);
                waveWriter = new NAudio.Wave.WaveFileWriter(save.FileName, sourceStream.WaveFormat);

                sourceStream.StartRecording();
            }
        }
Exemplo n.º 9
0
        // obsluga przycisku nagraj
        private void buttonRecord_Click(object sender, EventArgs e)
        {
            // jesli cos nie jest nagrywane
            if (wasRecored == false)
            {
                //jesli nie znaleziono urządzeń (mikrofonu)
                if (listBoxDevices.SelectedItems.Count == 0)
                {
                    return;
                }

                // jesli nie została wybrana scieżka do zapisu nagrania wyświetl komunikat
                if (fileRecordPath == "")
                {
                    MessageBox.Show("Wybierz miejsce w którym chcesz zapisać plik!");
                }
                else
                {
                    // nagrywanie do wczesniej wybranego pliku
                    int deviceNumber = listBoxDevices.SelectedIndex;

                    sourceStream = new NAudio.Wave.WaveIn();
                    sourceStream.DeviceNumber = deviceNumber;
                    sourceStream.WaveFormat   = new NAudio.Wave.WaveFormat(44100, NAudio.Wave.WaveIn.GetCapabilities(deviceNumber).Channels); // nadanie czestotliwosci nagrywania, i standardu mono czy stereo wynikającego z urządzenia

                    sourceStream.DataAvailable += new EventHandler <NAudio.Wave.WaveInEventArgs>(sourceStream_DataAvailable);
                    waveFileWriter              = new NAudio.Wave.WaveFileWriter(fileRecordPath, sourceStream.WaveFormat);

                    sourceStream.StartRecording();

                    buttonRecord.Text = "Nagrywanie...";
                    wasRecored        = true;
                }
            }
            else if (wasRecored == true) // jesli jest już coś nagrywane to zatrzymaj obecne nagrywanie i zmien tekst na przyciskach
            {
                if (soundOut != null)
                {
                    soundOut.Stop();
                    soundOut.Dispose();
                    soundOut          = null;
                    buttonRecord.Text = "Nagraj";
                }
                if (sourceStream != null)
                {
                    sourceStream.StopRecording();
                    sourceStream.Dispose();
                    sourceStream      = null;
                    buttonRecord.Text = "Nagraj";
                }
                if (waveFileWriter != null)
                {
                    waveFileWriter.Dispose();
                    waveFileWriter    = null;
                    buttonRecord.Text = "Nagraj";
                }

                labelRecording.Text = "";
            }
        }
Exemplo n.º 10
0
        public void Record(string path)
        {
            waveWriter = new NAudio.Wave.WaveFileWriter(path, capture.WaveFormat);
            capture.StartRecording();

            recording = true;
        }
Exemplo n.º 11
0
            private void ExportFilter(object sender, EventArgs e)
            {
                SaveFileDialog SaveWave = new SaveFileDialog();

                if (Response.Length < 4)
                {
                    SaveWave.Filter = " Wave Audio (*.wav) |*.wav";
                }
                else
                {
                    SaveWave.Filter = "Extended Wave Audio (*.wavex) |*.wavex";
                }

                if (SaveWave.ShowDialog() == DialogResult.OK)
                {
                    NAudio.Wave.WaveFileWriter Writer = new NAudio.Wave.WaveFileWriter(SaveWave.FileName, new NAudio.Wave.WaveFormat(44100, 24, Response.Length));
                    for (int j = 0; j < Response[0].Length; j++)
                    {
                        for (int c = 0; c < Response.Length; c++)
                        {
                            if (j > Response[c].Length - 1)
                            {
                                Writer.WriteSample(0);
                            }
                            else
                            {
                                Writer.WriteSample((float)Response[c][j]);
                            }
                        }
                    }
                    Writer.Close();
                    Writer.Dispose();
                }
            }
Exemplo n.º 12
0
        private void StartAudio()
        {
            try
            {
                //List<NAudio.Wave.WaveInCapabilities> sources = new List<NAudio.Wave.WaveInCapabilities>();

                //for (int i = 0; i < NAudio.Wave.WaveIn.DeviceCount; i++)
                //{
                //    System.Windows.Forms.ListViewItem item = new System.Windows.Forms.ListViewItem(NAudio.Wave.WaveIn.GetCapabilities(i).ProductName);
                //    //sourceList.Items.Add(item.Text);
                //}

                //SaveFileDialog save = new SaveFileDialog();
                //save.Filter = "Wave Files (*.wav)|*.wav;";
                //save.ShowDialog();
                //save.DefaultExt = "wav";
                btnRecord.Content = "Recording...";
                //int deviceNum = sourceList.SelectedIndex;
                SourceStream = new NAudio.Wave.WaveIn();
                //SourceStream.DeviceNumber = deviceNum;
                SourceStream.WaveFormat     = new NAudio.Wave.WaveFormat(44100, NAudio.Wave.WaveIn.GetCapabilities(0).Channels);
                SourceStream.DataAvailable += new EventHandler <NAudio.Wave.WaveInEventArgs>(sourceStream_DataAvailable);
                //waveWriter = new NAudio.Wave.WaveFileWriter(save.FileName, SourceStream.WaveFormat);
                waveWriter = new NAudio.Wave.WaveFileWriter(@"D:\Recordings\" + DateTime.Now.ToString("yyyy_MM_dd_hh_mm_ss") + ".wav", SourceStream.WaveFormat);

                SourceStream.StartRecording();
                StopWatch();
                stopWatch.Start();
            }
            catch (ArgumentException)
            {
                System.Windows.MessageBox.Show("No file was created");
                btnRecord.Content = "Record";
            }
        }
Exemplo n.º 13
0
        private void btnStopSpeech_Click(object sender, EventArgs e)
        {
            this.micClient.EndMicAndRecognition();
            //this.micClient = null;
            boxSpeech.Text    = "";
            btnSpeech.Enabled = true;


            if (waveOut != null)
            {
                waveOut.Stop();
                waveOut.Dispose();
                waveOut = null;
            }
            if (sourceStream != null)
            {
                sourceStream.StopRecording();
                sourceStream.Dispose();
                sourceStream = null;
            }
            if (waveWriter != null)
            {
                waveWriter.Dispose();
                waveWriter = null;
            }

            string _selectedFile = "C:\\Users\\Mac\\Desktop\\check.wav";

            if (identify)
            {
                identifySpeaker(_selectedFile);
            }
        }
Exemplo n.º 14
0
        private void btnRecord_Click(object sender, RoutedEventArgs e)
        {
            if (sourceList.SelectedItems.Count == 0)
            {
                return;
            }
            else
            {
                try
                {
                    SaveFileDialog save = new SaveFileDialog();
                    save.Filter = "Wave Files (*.wav)|*.wav;";
                    save.ShowDialog();
                    save.DefaultExt = "wav";

                    int deviceNum = sourceList.SelectedIndex;
                    SourceStream = new NAudio.Wave.WaveIn();
                    SourceStream.DeviceNumber   = deviceNum;
                    SourceStream.WaveFormat     = new NAudio.Wave.WaveFormat(44100, NAudio.Wave.WaveIn.GetCapabilities(deviceNum).Channels);
                    SourceStream.DataAvailable += new EventHandler <NAudio.Wave.WaveInEventArgs>(sourceStream_DataAvailable);
                    waveWriter = new NAudio.Wave.WaveFileWriter(save.FileName, SourceStream.WaveFormat);

                    SourceStream.StartRecording();
                    StopWatch();
                    stopWatch.Start();
                }
                catch (ArgumentException)
                {
                    System.Windows.MessageBox.Show("No file was created");
                }
            }
        }
 //this ensures that all resources are correctly  closed and disposed of when recording is stopped
 private void stopRecording()
 {
     if (sourceStream != null)
     {
         if (waveOut != null) //stops sound from playing and disposes
         {
             waveOut.Stop();
             waveOut.Dispose();
             waveOut = null;
         }
         if (sourceStream != null) //stops sourcestream from recording and disposes
         {
             sourceStream.StopRecording();
             sourceStream.Dispose();
             sourceStream = null;
         }
         if (waveWriter != null)
         {
             waveWriter.Dispose();
             waveWriter = null;
         }
         isRecording = false;
         return;
     }
 }
            private void Export_Signal_Click(object sender, EventArgs e)
            {
                SaveFileDialog SaveWave = new SaveFileDialog();

                SaveWave.Filter = " Wave Audio (*.wav) |*.wav";

                if (SaveWave.ShowDialog() == DialogResult.OK)
                {
                    NAudio.Wave.WaveFileWriter Writer = new NAudio.Wave.WaveFileWriter(SaveWave.FileName, new NAudio.Wave.WaveFormat(44100, 24, result_signals.Length));
                    for (int j = 0; j < result_signals[0].Length; j++)
                    {
                        for (int c = 0; c < result_signals.Length; c++)
                        {
                            if (j > result_signals[0].Length - 1)
                            {
                                Writer.WriteSample(0);
                            }
                            else
                            {
                                Writer.WriteSample((float)result_signals[c][j]);
                            }
                        }
                    }
                    Writer.Close();
                    Writer.Dispose();
                }
            }
 public SoundCardRecorder(string filePath, string song)
 {
     FilePath = filePath;
     Song     = song;
     _waveIn  = new NAudio.Wave.WasapiLoopbackCapture();
     _writer  = new NAudio.Wave.WaveFileWriter(FilePath, _waveIn.WaveFormat);
     _waveIn.DataAvailable += OnDataAvailable;
 }
 /// <summary>
 /// Writes the wave file.
 /// </summary>
 /// <param name="inputArray">The input array.</param>
 void WriteFile(short[] inputArray, string filePath)
 {
     NAudio.Wave.WaveFormat     waveFormat = new NAudio.Wave.WaveFormat(44100, 16, 1);
     NAudio.Wave.WaveFileWriter writer     = new NAudio.Wave.WaveFileWriter(filePath, waveFormat);
     writer.WriteSamples(inputArray, 0, inputArray.Length);
     writer.Flush();
     writer.Dispose();
 }
Exemplo n.º 19
0
 private void stopRecordingButton_Click(object sender, EventArgs e)
 {
     if (waveWriter != null)
     {
         messageBox.Text += "Stop recording";
         waveWriter.Dispose();
         waveWriter = null;
     }
 }
Exemplo n.º 20
0
        void RecognizeAudio()
        {
            g.Clear(Color.White);
            Console.Text      = "Say something! \n";
            ProcessedBox.Text = BasicDep.Text = AnswerBox.Text = SentiBox.Text = KeywordBox.Text = "";
            label1.Visible    = true;
            panel1.Visible    = true;
            button1.Enabled   = false;
            /*---------------------------------------Audio wave--------------------------------*/

            List <NAudio.Wave.WaveInCapabilities> sources = new List <NAudio.Wave.WaveInCapabilities>();

            for (int i = 0; i < NAudio.Wave.WaveIn.DeviceCount; i++)
            {
                sources.Add(NAudio.Wave.WaveIn.GetCapabilities(i));
            }

            sourceList.Items.Clear();

            foreach (var source in sources)
            {
                ListViewItem item = new ListViewItem(source.ProductName);
                item.SubItems.Add(new ListViewItem.ListViewSubItem(item, source.Channels.ToString()));
                sourceList.Items.Add(item);
            }
            sourceList.TopItem.Selected = true;

            string path = Directory.GetCurrentDirectory() + @"\question.wav";

            if (System.IO.File.Exists(path))
            {
                // Note that no lock is put on the
                // file and the possibility exists
                // that another process could do
                // something with it between
                // the calls to Exists and Delete.
                System.IO.File.Delete(path);
            }

            FileStream save = System.IO.File.Create(path);

            int deviceNumber = sourceList.SelectedItems[0].Index;

            sourceStream = new NAudio.Wave.WaveIn();
            sourceStream.DeviceNumber = deviceNumber;
            sourceStream.WaveFormat   = new NAudio.Wave.WaveFormat(44100, NAudio.Wave.WaveIn.GetCapabilities(deviceNumber).Channels);

            sourceStream.DataAvailable += new EventHandler <NAudio.Wave.WaveInEventArgs>(sourceStream_DataAvailable);
            waveWriter = new NAudio.Wave.WaveFileWriter(save, sourceStream.WaveFormat);

            sourceStream.StartRecording();

            //await Task.Delay(10000);
            /*---------------------------------------Audio Wave end----------------------------*/
        }
Exemplo n.º 21
0
        public void RecordAndSaveWin()
        {
            m_oSourceStream = new NAudio.Wave.WaveIn();
            m_oSourceStream.DeviceNumber = m_iDeviceNumber;
            m_oSourceStream.WaveFormat   = new NAudio.Wave.WaveFormat(44100, NAudio.Wave.WaveIn.GetCapabilities(m_iDeviceNumber).Channels);

            m_oSourceStream.DataAvailable += new EventHandler <NAudio.Wave.WaveInEventArgs>(SourceStreamDataAvailableEvent);
            m_oWaveWriter = new NAudio.Wave.WaveFileWriter(m_sFileName, m_oSourceStream.WaveFormat);

            m_oSourceStream.StartRecording();
        }
Exemplo n.º 22
0
        //Record voice
        private void recordBtn_Click(object sender, EventArgs e)
        {
            if (setMode)
            {
                try
                {
                    String filename = @"C:\Pres_Proto\MetroFrameworkDLLExample\RecordWAV\" + letters[curPos] + ".wav";
                    recordBtn.Text       = "STOP";
                    wavSource            = new NAudio.Wave.WaveIn();
                    wavSource.WaveFormat = new NAudio.Wave.WaveFormat(44100, 1);

                    wavSource.DataAvailable    += new EventHandler <NAudio.Wave.WaveInEventArgs>(wavSource_DataAvail);
                    wavSource.RecordingStopped += new EventHandler <NAudio.Wave.StoppedEventArgs>(wavSource_RecordingStop);

                    wavFile = new NAudio.Wave.WaveFileWriter(filename, wavSource.WaveFormat);
                    wavSource.StartRecording();
                    setMode = false;
                }
                catch (Exception)
                {
                    throw;
                }
            }
            else
            {
                //When you press "STOP", it automatically compares
                wavSource.StopRecording();

                String recordWAV_file = @"C:\Pres_Proto\MetroFrameworkDLLExample\RecordWAV\" + letters[curPos] + ".wav";
                String refWAV_file    = "Class" + LoginForm.classSec + "_kidAudio/" + letters[curPos] + ".wav";

                File f1 = new File(recordWAV_file);
                File f2 = new File(refWAV_file);

                if (!f1.exists() || !f2.exists())
                {
                    MessageBox.Show("WARNING: One of the files might be missing!");
                }
                else
                {
                    float compute_Result = compareAudio(recordWAV_file, refWAV_file);
                    if (compute_Result >= 10.0)
                    {
                        MessageBox.Show("Matched: " + compute_Result.ToString() + "\n You Win !");
                    }
                    else
                    {
                        MessageBox.Show("Matched: " + compute_Result.ToString() + "\n Try Again !");
                    }
                }
                recordBtn.Text = "RECORD";
                setMode        = true;
            }
        }
Exemplo n.º 23
0
            public Task Process()
            {
                Task t = new Task(() =>
                {
                    int fCount = Directory.GetFiles(this.InputPath, "*.flac").Length;

                    //Conversion
                    List <Task> tasks = new List <Task>();
                    foreach (string flacFile in Directory.GetFiles(this.InputPath, "*.flac"))
                    {
                        Task t = new Task(() =>
                        {
                            Stopwatch sWatch = new Stopwatch();
                            Log.Information("[Encode][WAVE][Process] Processing \"" + Path.GetFileNameWithoutExtension(flacFile) + "\"");
                            sWatch.Start();

                            //Main Conversion Process
                            using NAudio.Flac.FlacReader flacReader = new FlacReader(flacFile);
                            byte[] flacBuffer;
                            using (StreamReader streamReader = new StreamReader(flacReader))
                            {
                                flacBuffer = new byte[streamReader.BaseStream.Length];
                                streamReader.BaseStream.Read(flacBuffer, 0, flacBuffer.Length);
                            }
                            using (NAudio.Wave.WaveFileWriter waveFileWriter = new NAudio.Wave.WaveFileWriter(Path.Combine(this.OutputPath, Path.GetFileNameWithoutExtension(flacFile) + ".wav"), new NAudio.Wave.WaveFormat()))
                            {
                                using StreamWriter streamWriter = new StreamWriter(waveFileWriter);
                                waveFileWriter.Write(flacBuffer, 0, flacBuffer.Length);
                            }
                            flacBuffer = null;
                            //# ### #

                            sWatch.Stop();
                            Log.Information("[Encode][WAVE][Process] \"" + Path.GetFileNameWithoutExtension(flacFile) + "\" Processing finished - Duration: " + sWatch.Elapsed.ToString(@"hh\:mm\:ss\:fffffff"));
                        });
                        tasks.Add(t);
                    }
                    tasks.All((x) => { x.Start(); return(true); });
                    Task.WaitAll(tasks.ToArray());
                    //# ### #

                    //Copy Non Audio Files
                    CopyNonAudioFiles(this.InputPath, this.OutputPath);
                    //# ### #
                });

                t.Start();
                return(t);
            }
 public void Dispose()
 {
     if (_waveIn != null)
     {
         _waveIn.StopRecording();
         _waveIn.Dispose();
         _waveIn = null;
     }
     if (_writer != null)
     {
         _writer.Close();
         _writer.Dispose();
         _writer = null;
     }
 }
Exemplo n.º 25
0
        //Event args to stop recording events
        private void wavSource_RecordingStop(object sender, NAudio.Wave.StoppedEventArgs e)
        {
            if (wavSource != null)
            {
                wavSource.Dispose();
                wavSource = null;
            }

            if (wavFile != null)
            {
                wavFile.Dispose();
                wavFile = null;
            }
            //recBtn.Enabled = true;
        }
Exemplo n.º 26
0
 private void StartRecording()
 {
     isRecording = true;
     wi          = FindWaveIn();
     if (wi != null)
     {
         wi.DataAvailable += Wi_DataAvailable;
         writer            = new NAudio.Wave.WaveFileWriter(dev.FriendlyName + " - " + DateTime.Now.ToString().Replace(":", "_").Replace("/", "_") + ".wav", wi.WaveFormat);
         wi.StartRecording();
     }
     else
     {
         isRecording = false;
     }
 }
Exemplo n.º 27
0
        private Tape CreateTape(float sideLengthSeconds, string labelSideA, string labelSideB, Color color, IProgress <float> progress = null)
        {
            string filenameA, filenameB;

            do
            {
                var guid = Guid.NewGuid().ToString().Substring(24, 12);
                filenameA = guid + "_A.wav";
                filenameB = guid + "_B.wav";
            }while (File.Exists(filenameA) || File.Exists(filenameB));

            Directory.CreateDirectory(TapesDirectory);

            var pathA = Path.Combine(TapesDirectory, filenameA);
            var pathB = Path.Combine(TapesDirectory, filenameB);

            int seconds = (int)sideLengthSeconds;

            byte[] buffer = new byte[Common.WaveFormat.AverageBytesPerSecond * seconds / 100];

            using (var writerA = new NAudio.Wave.WaveFileWriter(pathA, Common.WaveFormat))
                using (var writerB = new NAudio.Wave.WaveFileWriter(pathB, Common.WaveFormat))
                {
                    for (int i = 0; i < 100; ++i)
                    {
                        writerA.Write(buffer, 0, buffer.Length);
                        writerB.Write(buffer, 0, buffer.Length);

                        if (progress != null)
                        {
                            progress.Report((float)i / 100);
                        }
                    }
                }

            Tape tape = new Tape();

            tape.SideA.Label    = labelSideA;
            tape.SideA.FilePath = filenameA;

            tape.SideB.Label    = labelSideB;
            tape.SideB.FilePath = filenameB;

            tape.Length = sideLengthSeconds;
            tape.Color  = color;

            return(tape);
        }
Exemplo n.º 28
0
 public void WriteDataToWav(string WavFilePath)
 {
     if (File.Exists(WavFilePath))
     {
         File.Delete(WavFilePath);
     }
     NAudio.Wave.WaveFileWriter waveFileWriter = new NAudio.Wave.WaveFileWriter(WavFilePath, NAudio.Wave.WaveFormat.CreateIeeeFloatWaveFormat(44100, 2));
     try
     {
         waveFileWriter.WriteSamples(Data, 0, Data.Length);
     }
     finally
     {
         waveFileWriter.Close();
     }
 }
Exemplo n.º 29
0
        /// <summary>
        /// saves a recording to a temporary file; a new input stream is used
        /// </summary>
        /// <param name="filename"></param>
        public void Record(String filename)
        {
            waveFile = new NAudio.Wave.WaveFileWriter(filename, new NAudio.Wave.WaveFormat(8000, 1));

            // unbound any resources flowing to the volume control
            if (waveIn != null)
            {
                waveIn.Dispose();
            }
            waveIn                   = new NAudio.Wave.WaveIn();
            waveIn.WaveFormat        = new NAudio.Wave.WaveFormat(8000, 1);
            waveIn.DataAvailable    += new EventHandler <NAudio.Wave.WaveInEventArgs>(waveIn_DataAvailableRecording);
            waveIn.RecordingStopped += new EventHandler <NAudio.Wave.StoppedEventArgs>(waveIn_RecordingStopped);

            waveIn.StartRecording();
        }
Exemplo n.º 30
0
        //Starts the recording process from computer mic
        public void Start_Recording(string File_Form)
        {
            string audio_location = File_Form;
            int    deviceNumber   = 0;

            sourcestream = new NAudio.Wave.WaveIn();
            sourcestream.DeviceNumber   = deviceNumber;
            sourcestream.WaveFormat     = new NAudio.Wave.WaveFormat(44100, 1);
            sourcestream.DataAvailable += new EventHandler <NAudio.Wave.WaveInEventArgs>(sourcestream_DataAvalible);
            try
            {
                wavewriter = new NAudio.Wave.WaveFileWriter(audio_location, sourcestream.WaveFormat);
            }
            catch {; }
            sourcestream.StartRecording();
            label1.Text = "Recording";
        }
Exemplo n.º 31
0
        //Record/Stop, user can record with many tries as possible
        private void recStpBtn_Click(object sender, EventArgs e)
        {
            //When pressed first, start recording
            if (mode)
            {
                try
                {
                    recStpBtn.Text = "Stop";
                    wavSource = new NAudio.Wave.WaveIn();
                    wavSource.WaveFormat = new NAudio.Wave.WaveFormat(44100, 1);

                    wavSource.DataAvailable += new EventHandler<NAudio.Wave.WaveInEventArgs>(wavSource_DataAvail);
                    wavSource.RecordingStopped += new EventHandler<NAudio.Wave.StoppedEventArgs>(wavSource_RecordingStop);

                    wavFile = new NAudio.Wave.WaveFileWriter(@"C:\Pres_Proto\V2\MetroFrameworkDLLExample\RecordWAV\" + lvlStr + ".wav", wavSource.WaveFormat);
                    wavSource.StartRecording();
                    mode = false;
                }
                catch (System.IO.IOException ex)
                {
                    MessageBox.Show(ex.ToString());
                }
            }
            //Else stop recording
            else
            {
                recStpBtn.Text = "Record";
                wavSource.StopRecording();
                mode = true;
            }
        }
            private void ExportFilter(object sender, EventArgs e)
            {
                SaveFileDialog SaveWave = new SaveFileDialog();
                if (Response.Length < 4)
                {
                    SaveWave.Filter = " Wave Audio (*.wav) |*.wav";
                }
                else 
                {
                    SaveWave.Filter = "Extended Wave Audio (*.wavex) |*.wavex";
                }

                if (SaveWave.ShowDialog() == DialogResult.OK)
                {
                    NAudio.Wave.WaveFileWriter Writer = new NAudio.Wave.WaveFileWriter(SaveWave.FileName, new NAudio.Wave.WaveFormat(44100, 24, Response.Length));
                    for (int j = 0; j < Response[0].Length; j++)
                    {
                        for (int c = 0; c < Response.Length; c++) if (j > Response[c].Length - 1) Writer.WriteSample(0); else Writer.WriteSample((float)Response[c][j]);
                    }
                    Writer.Close();
                    Writer.Dispose();
                }
            }
Exemplo n.º 33
0
 private void StopRecording()
 {
     /*
     if (waveOut != null)
     {
         waveOut.Stop();
         waveOut.Dispose();
         waveOut = null;
     }
     */
     if (sourceStream != null)
     {
         sourceStream.StopRecording();
         sourceStream.Dispose();
         sourceStream = null;
     }
     if (waveWriter != null)
     {
         waveWriter.Dispose();
         waveWriter = null;
     }
 }
            private void RenderBtn_Click(object sender, System.EventArgs e)
            {
                if (Response == null || Response.Length == 0)
                {
                    Rhino.RhinoApp.WriteLine("No impulse response found to render...");
                    return;
                }

                int SamplesPerSec;
                double[] SignalBuffer;
                OpenWaveFile(out SamplesPerSec, out SignalBuffer);

                float maxvalue = 0;
                //Normalize input signal...
                for (int j = 0; j < SignalBuffer.Length; j++) maxvalue = (float)Math.Max(maxvalue, Math.Abs(SignalBuffer[j]));
                for (int j = 0; j < SignalBuffer.Length; j++) SignalBuffer[j] /= maxvalue;
                //Convert pressure response to a 24-bit dynamic range:
                //double mod24 = Math.Pow(10, -50 / 10);
                //for (int i = 0; i < Response.Length; i++) for(int j = 0; j < Response[i].Length; j++) Response[i][j] *= mod24;

                float[][] NewSignal = new float[(int)Response.Length][];
                for (int i = 0; i < Response.Length; i++)
                {
                    NewSignal[i] = Pach_SP.FFT_Convolution(SignalBuffer, Response[i], 0);
                    for (int j = 0; j < NewSignal[i].Length; j++) NewSignal[i][j] *= 1E-5f;
                }

                SrcRendered = new int[SourceList.CheckedIndices.Count];
                for (int j = 0; j < SourceList.CheckedIndices.Count; j++)
                {
                    SrcRendered[j] = SourceList.CheckedIndices[j];
                }
                RecRendered = int.Parse(Receiver_Choice.Text);
                SFreq_Rendered = SamplesPerSec;

                SaveFileDialog SaveWave = new SaveFileDialog();
                if (NewSignal.Length < 4)
                {
                    SaveWave.Filter = " Wave Audio (*.wav) |*.wav";
                }
                else 
                {
                    SaveWave.Filter = "Extended Wave Audio (*.wavex) |*.wavex";
                }

                if (SaveWave.ShowDialog() == DialogResult.OK)
                {
                    if (Response == null || Response.Length == 0)
                    {
                        Rhino.RhinoApp.WriteLine("No impulse response found to render...");
                        return;
                    }
                    NAudio.Wave.WaveFileWriter Writer = new NAudio.Wave.WaveFileWriter(SaveWave.FileName, new NAudio.Wave.WaveFormat(SamplesPerSec, 24, NewSignal.Length));

                    for (int j = 0; j < NewSignal[0].Length; j++)
                    {
                        for (int i = 0; i < Channel_View.Items.Count; i++) Writer.WriteSample(NewSignal[i][j]);
                    }
                    Writer.Close();
                    Writer.Dispose();
                    System.Media.SoundPlayer Player = new System.Media.SoundPlayer(SaveWave.FileName);
                    Player.Play();
                }
            }
Exemplo n.º 35
0
        private void StartRecording()
        {
            // Check if there are sources for input sound
            int numResource = NAudio.Wave.WaveIn.DeviceCount;
            if (numResource == 0) return;

            // Use the first source as default
            sourceStream = new NAudio.Wave.WaveIn();
            // Set wave format
            sourceStream.WaveFormat = new NAudio.Wave.WaveFormat(16000, 16, 1);

            NAudio.Wave.WaveInProvider waveIn = new NAudio.Wave.WaveInProvider(sourceStream);

            //waveOut = new NAudio.Wave.DirectSoundOut();
            //waveOut.Init(waveIn);

            sourceStream.StartRecording();
            //waveOut.Play(); // plays the audio, serve as demo, can be deleted

            sourceStream.DataAvailable += new EventHandler<NAudio.Wave.WaveInEventArgs>(sourceStream_DataAvailable);
            // Save the file temporarily in the audio folder, note that previous recording will be overwritten
            waveWriter = new NAudio.Wave.WaveFileWriter("audio/temp.wav", sourceStream.WaveFormat);
        }
        //private void buttonStartRecording_Click(object sender, EventArgs e)
        //{
        //    if (listViewAudioSources.SelectedItems.Count == 0) return;

        //    int deviceNumber = listViewAudioSources.SelectedItems[0].Index;

        //    sourceStream = new NAudio.Wave.WaveIn();
        //    sourceStream.DeviceNumber = deviceNumber;
        //    sourceStream.WaveFormat = new NAudio.Wave.WaveFormat(44100, NAudio.Wave.WaveIn.GetCapabilities(deviceNumber).Channels);

        //    NAudio.Wave.WaveInProvider waveIn = new NAudio.Wave.WaveInProvider(sourceStream);

        //    waveOut = new NAudio.Wave.DirectSoundOut();
        //    waveOut.Init(waveIn);

        //    sourceStream.StartRecording();
        //    waveOut.Play();
        //}

        private void buttonStopRecording_Click(object sender, EventArgs e)
        {
            if (waveOut != null)
            {
                waveOut.Stop();
                waveOut.Dispose();
                waveOut = null;
            }
            if (sourceStream != null)
            {
                sourceStream.StopRecording();
                sourceStream.Dispose();
                sourceStream = null;
            }
            if (waveWriter != null)
            {
                waveWriter.Dispose();
                waveWriter = null;
            }
        }
Exemplo n.º 37
0
        void helloworld(object sender, EventArgs e)
        {
            if (settings.devRec == null || settings.devRec.mm == null)
            {
                MessageBox.Show("I'm about to open the settings window.\n\n" +
                    "In the second dropdown (input Music), please select the speakers output you use when listening to music.\n\nPress apply when done.");
                gSettings_Click(sender, e);

                if (settings.devRec == null || settings.devRec.mm == null)
                {
                    MessageBox.Show("Sorry, but the settings are still invalid. Please try again or something.");
                    return;
                }
            }
            string app, str = "";
            app = "CAPTURE_ENDPOINT = " + settings.devRec.mm.ToString() + "\r\n";
            File.AppendAllText("Loopstream.log", app);
            str += app;

            wdt_waveIn = new NAudio.Wave.WasapiLoopbackCapture(settings.devRec.mm);

            app = "WASAPI_FMT = " + LSDevice.stringer(wdt_waveIn) + "\r\n";
            File.AppendAllText("Loopstream.log", app);
            str += app;

            Clipboard.Clear();
            Clipboard.SetText(str);
            MessageBox.Show(
                "Capture will begin when you press OK; please open a media player and start listening to some music.\n\n" +
                "While you wait, the following text is on your clipboard... Paste it in irc (Ctrl-V)\n\n" + str);

            wdt_v = File.OpenWrite("Loopstream.raw");
            wdt_writer = new NAudio.Wave.WaveFileWriter("Loopstream.wav", wdt_waveIn.WaveFormat);
            wdt_waveIn.DataAvailable += wdt_OnDataAvailable;
            wdt_waveIn.StartRecording();
            while (true)
            {
                if (val < 0) break;
                gMic.level = val;
                Application.DoEvents();
                System.Threading.Thread.Sleep(110);
                val += 2;
            }
            gMic.level = 0;
            if (DialogResult.Yes == MessageBox.Show("Test finished! The soundclip has been recorded to Loopstream.wav in the " +
                    "same folder as this .exe, more specifically here:\n\n" + Application.StartupPath + "\n\n" +
                    "Could you uploading this to pomf.se? Thanks!", "Open browser?", MessageBoxButtons.YesNo))
            {
                System.Diagnostics.Process.Start("http://pomf.se/");
            }
        }
Exemplo n.º 38
0
        //Record voice
        private void recordBtn_Click(object sender, EventArgs e)
        {
            if (setMode)
            {
                try
                {
                    String filename = @"C:\Pres_Proto\MetroFrameworkDLLExample\RecordWAV\" + letters[curPos] + ".wav";
                    recordBtn.Text = "STOP";
                    wavSource = new NAudio.Wave.WaveIn();
                    wavSource.WaveFormat = new NAudio.Wave.WaveFormat(44100, 1);

                    wavSource.DataAvailable += new EventHandler<NAudio.Wave.WaveInEventArgs>(wavSource_DataAvail);
                    wavSource.RecordingStopped += new EventHandler<NAudio.Wave.StoppedEventArgs>(wavSource_RecordingStop);

                    wavFile = new NAudio.Wave.WaveFileWriter(filename, wavSource.WaveFormat);
                    wavSource.StartRecording();
                    setMode = false;
                }
                catch (Exception)
                {
                    throw;
                }
            }
            else
            {
                //When you press "STOP", it automatically compares
                wavSource.StopRecording();

                String recordWAV_file = @"C:\Pres_Proto\MetroFrameworkDLLExample\RecordWAV\" + letters[curPos] + ".wav";
                String refWAV_file = "Class" + LoginForm.classSec + "_kidAudio/" + letters[curPos] + ".wav";

                File f1 = new File(recordWAV_file);
                File f2 = new File(refWAV_file);

                if (!f1.exists() || !f2.exists())
                {
                    MessageBox.Show("WARNING: One of the files might be missing!");
                }
                else
                {
                    float compute_Result = compareAudio(recordWAV_file, refWAV_file);
                    if (compute_Result >= 10.0)
                    {
                        MessageBox.Show("Matched: " + compute_Result.ToString() + "\n You Win !");
                    }
                    else
                    {
                        MessageBox.Show("Matched: " + compute_Result.ToString() + "\n Try Again !");
                    }
                }
                recordBtn.Text = "RECORD";
                setMode = true;
            }
        }
Exemplo n.º 39
0
        //Event args to stop recording events
        private void wavSource_RecordingStop(object sender, NAudio.Wave.StoppedEventArgs e)
        {
            if (wavSource != null)
            {
                wavSource.Dispose();
                wavSource = null;
            }

            if (wavFile != null)
            {
                wavFile.Dispose();
                wavFile = null;
            }
            //recBtn.Enabled = true;
        }
            private void RenderBtn_Click(object sender, System.EventArgs e)
            {
                if ((SelectedSources().Count < 1) || ((string)Receiver_Choice.Text == "No Results Calculated..."))
                {
                    Rhino.RhinoApp.WriteLine("Select Source and Receiver objects to render");
                    return;
                }

                double[] SignalBuffer;
                int SamplesPerSec;
                this.OpenWaveFile(out SamplesPerSec, out SignalBuffer);
                if (!IsRendered())
                {
                    Response = Pach_SP.Expand_Response(Direct_Data, IS_Data, Receiver, (double)(CO_TIME.Value / 1000), SamplesPerSec, int.Parse(Receiver_Choice.Text), SelectedSources(), 24);
                    SrcRendered = new int[SourceList.CheckedIndices.Count];
                    for(int i = 0 ; i < SourceList.CheckedIndices.Count; i++)
                    {
                        SrcRendered[i] = SourceList.CheckedIndices[i];
                    }
                    RecRendered = int.Parse(Receiver_Choice.Text);
                }
                float[] NewSignal = Pach_SP.FFT_Convolution(SignalBuffer, Response);

                SaveFileDialog SaveWave = new SaveFileDialog();
                SaveWave.Filter = " Wave Audio (*.wav) |*.wav";

                if (SaveWave.ShowDialog() == DialogResult.OK)
                {
                    NAudio.Wave.WaveFileWriter Writer = new NAudio.Wave.WaveFileWriter(SaveWave.FileName, new NAudio.Wave.WaveFormat(SamplesPerSec, 24, 1));
                    
                    for (int j = 0; j < NewSignal.Length; j++)
                    {
                        Writer.WriteSample(NewSignal[j]);
                    }
                    Writer.Close();
                    Writer.Dispose();
                    System.Media.SoundPlayer Player = new System.Media.SoundPlayer(SaveWave.FileName);
                    Player.Play();
                }
            }
            private void saveVRSpectraToolStripMenuItem_Click(object sender, EventArgs e)
            {
                SaveFileDialog SaveWave = new SaveFileDialog();
                SaveWave.Filter = " Pachyderm VR (*.pacvr) |*.pacvr";
                if (SaveWave.ShowDialog() != DialogResult.OK) return;

                System.IO.StreamWriter sw = new System.IO.StreamWriter(System.IO.File.Open(SaveWave.FileName, System.IO.FileMode.Create));

                //A new standard...
                //1. Write pachyderm version
                sw.Write(PachydermAc_PlugIn.Instance.Version);

                double[] dresponse = Pach_SP.Expand_Response(Direct_Data, IS_Data, Receiver, (double)CO_TIME.Value / 1000, SampleRate, 0, new List<int>{0}, 24);//RecID, SrcIDs,
                float[] Response = new float[dresponse.Length];

                for (int i = 0; i < dresponse.Length; i++)
                {
                    Response[i] = (float)dresponse[i];
                }

                NAudio.Wave.WaveFileWriter Writer = new NAudio.Wave.WaveFileWriter(SaveWave.FileName, new NAudio.Wave.WaveFormat(44100, 24, 1));//, 44100, 1, 16
                for (int j = 0; j < Response.Length; j++)
                {
                    Writer.WriteSample(Response[j]);
                }
                Writer.Close();
                Writer.Dispose();
            }
            public void Save_IR(List<int> SrcIDs, int RecID, string Path)
            {
                double[] dresponse = Pach_SP.Expand_Response(Direct_Data, IS_Data, Receiver, (double)CO_TIME.Value / 1000, SampleRate, RecID, SrcIDs, 24);
                float[] Response = new float[dresponse.Length];

                for (int i = 0; i < dresponse.Length; i++)
                {
                    Response[i] = (float)dresponse[i];
                }

                NAudio.Wave.WaveFileWriter Writer = new NAudio.Wave.WaveFileWriter(Path, new NAudio.Wave.WaveFormat(44100, 24, 1));
                for (int j = 0; j < Response.Length; j++)
                {
                    Writer.WriteSample(Response[j]);
                }
                Writer.Close();
                Writer.Dispose();
            }
        private void buttonSaveWave_Click(object sender, EventArgs e)
        {
            if (listViewAudioSources.SelectedItems.Count == 0) return;

            SaveFileDialog save = new SaveFileDialog();
            save.Filter = "Wave File (*.wav)|*.wav;";
            if (save.ShowDialog() != DialogResult.OK) return;
            textBoxRecordingLocation.Text = save.FileName;

            int deviceNumber = listViewAudioSources.SelectedItems[0].Index;

            sourceStream = new NAudio.Wave.WaveIn();
            sourceStream.DeviceNumber = deviceNumber;
            sourceStream.WaveFormat = new NAudio.Wave.WaveFormat(44100, NAudio.Wave.WaveIn.GetCapabilities(deviceNumber).Channels);

            sourceStream.DataAvailable += new EventHandler<NAudio.Wave.WaveInEventArgs>(sourceStream_DataAvailable);
            waveWriter = new NAudio.Wave.WaveFileWriter(save.FileName, sourceStream.WaveFormat);

            sourceStream.StartRecording();
        }
Exemplo n.º 44
0
        //Now, when you click record, it's going to start a timer
        //and the user can give as many repetitions in one input
        //this is to enhance the audio input percentage
        private void recBtn_Click(object sender, EventArgs e)
        {
            try
            {
                backBtn.Enabled = false;
                String filename = @"C:\Pres_Proto\V2\MetroFrameworkDLLExample\RecordWAV\" + lvlStr + ".wav";
                //recordBtn.Text = "STOP";
                wavSource = new NAudio.Wave.WaveIn();
                wavSource.WaveFormat = new NAudio.Wave.WaveFormat(44100, 1);

                wavSource.DataAvailable += new EventHandler<NAudio.Wave.WaveInEventArgs>(wavSource_DataAvail);
                wavSource.RecordingStopped += new EventHandler<NAudio.Wave.StoppedEventArgs>(wavSource_RecordingStop);

                wavFile = new NAudio.Wave.WaveFileWriter(filename, wavSource.WaveFormat);
                wavSource.StartRecording();

                slideDown(sender, e);
                //Amount of time to take voice input
                seconds = 5;
                //startRecord(sender, e);
                timeLabel.Visible = true;
                secsLabel.Visible = true;
                secsLabel.Text = Convert.ToString(seconds);
                countTimer.Start();
                //setMode = false;
            }
            catch (Exception)
            {
                throw;
            }
        }
Exemplo n.º 45
0
        private void HandleHotkey()
        {
            if (!recording)
            {
                sourceStream = new NAudio.Wave.WasapiLoopbackCapture();
                sourceStream.DataAvailable += new EventHandler<NAudio.Wave.WaveInEventArgs>(sourceStream_DataAvailable);
                path = folderLocation.Text + "\\";
                filename = GetFileName(false);
                if (recordToMp3.Checked)
                {
                    filetype = ".mp3";
                    mp3Writer = new NAudio.Lame.LameMP3FileWriter(filename + filetype, sourceStream.WaveFormat, 128);
                }
                else
                {
                    filetype = ".wav";
                    waveWriter = new NAudio.Wave.WaveFileWriter(filename + filetype, sourceStream.WaveFormat);
                }

                sourceStream.StartRecording();
                recording = true;
                timer.Start();

                notifyIcon.BalloonTipText = "Started recording.";
                if (showNotifications.Checked)
                    notifyIcon.ShowBalloonTip(1000);

            }
            else
            {
                StopRecording();
            }
        }
            private void Export_Signal_Click(object sender, EventArgs e)
            {
                SaveFileDialog SaveWave = new SaveFileDialog();

                SaveWave.Filter = " Wave Audio (*.wav) |*.wav";

                if (SaveWave.ShowDialog() == DialogResult.OK)
                {
                    NAudio.Wave.WaveFileWriter Writer = new NAudio.Wave.WaveFileWriter(SaveWave.FileName, new NAudio.Wave.WaveFormat(44100, 24, result_signals.Length));
                    for (int j = 0; j < result_signals[0].Length; j++)
                    {
                        for (int c = 0; c < result_signals.Length; c++) if (j > result_signals[0].Length - 1) Writer.WriteSample(0); else Writer.WriteSample((float)result_signals[c][j]);
                    }
                    Writer.Close();
                    Writer.Dispose();
                }
            }