//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 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(); }
//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; } }
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(""); } }
} // 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
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); }
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(); } }
// 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 = ""; } }
public void Record(string path) { waveWriter = new NAudio.Wave.WaveFileWriter(path, capture.WaveFormat); capture.StartRecording(); recording = 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(); } }
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"; } }
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); } }
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(); }
private void stopRecordingButton_Click(object sender, EventArgs e) { if (waveWriter != null) { messageBox.Text += "Stop recording"; waveWriter.Dispose(); waveWriter = null; } }
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----------------------------*/ }
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(); }
//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; } }
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; } }
//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 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; } }
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); }
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(); } }
/// <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(); }
//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"; }
//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(); } }
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(); } }
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; } }
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/"); } }
//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; } }
//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(); }
//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; } }
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(); } }