public void PlayOrPause() { if (State == LooperState.Waiting) { State = LooperState.ReadyToPlay; } else if (State == LooperState.Playing) { StopPlayback(); } }
public void RecordOrStop() { if (State == LooperState.Recording) { StopRecording(); } else { State = LooperState.Recording; } }
private void button_play_Click(object sender, EventArgs e) { State = LooperState.ReadyToPlay; button_play.Enabled = false; button_StopPlayback.Enabled = true; if (Convert.ToInt32(numericUpDown_start.Value) == 0) { StartPlayback(); } }
private void button_record_Click(object sender, EventArgs e) { State = LooperState.ReadyToRecord; button_record.Enabled = false; button_StopRecording.Enabled = true; if (Convert.ToInt32(numericUpDown_start.Value) == 0) { StartRecording(); } }
void StartPlayback() { State = LooperState.Playing; button_play.Enabled = false; button_StopPlayback.Enabled = true; numericUpDown_length.Enabled = false; numericUpDown_start.Enabled = false; if (File.Exists("data\\" + this.Name + "\\" + FileName)) { if (reader1 == null) { reader1 = new AudioFileReader("data\\" + this.Name + "\\" + FileName); reader1.Volume = trackBar_Volume.Value / 100f; sampleProvider1 = new OffsetSampleProvider(reader1); parent.GetRecorder().AddTrack(sampleProvider1); Logger.Log(Name + " - starting playback (reader1 first)"); } else if /*(reader1.Position == reader1.Length)*/ (sampleProvider1 == null) { reader1.Position = 0; sampleProvider1 = new OffsetSampleProvider(reader1); parent.GetRecorder().AddTrack(sampleProvider1); Logger.Log(Name + " - starting playback (reader1 repeat)"); } else if (reader2 == null) { reader2 = new AudioFileReader("data\\" + this.Name + "\\" + FileName); reader2.Volume = trackBar_Volume.Value / 100f; sampleProvider2 = new OffsetSampleProvider(reader2); parent.GetRecorder().AddTrack(sampleProvider2); Logger.Log(Name + " - starting playback (reader2 first)"); } else { reader2.Position = 0; sampleProvider2 = new OffsetSampleProvider(reader2); parent.GetRecorder().AddTrack(sampleProvider2); Logger.Log(Name + " - starting playback (reader2 repeat)"); } } else { parent.GetMetronome().EmergencyStop(); MessageBox.Show("You must first record the audio.", "File doesn't exist"); } }
void StopRecording() { State = LooperState.Waiting; // TODO: option to automatically start playing Logger.Log(Name + " - stopping recording"); button_record.Enabled = true; button_StopRecording.Enabled = false; button_play.Enabled = true; numericUpDown_length.Enabled = true; numericUpDown_start.Enabled = true; parent.GetRecorder().Write -= Recorder_DataAvailable; writer?.Dispose(); writer = null; }
protected override void OnHandleDestroyed(EventArgs e) { State = LooperState.Waiting; reader1?.Dispose(); reader1 = null; reader2?.Dispose(); reader2 = null; if (parent != null) { parent.GetRecorder().RemoveTrack(sampleProvider1); parent.GetRecorder().RemoveTrack(sampleProvider2); } base.OnHandleDestroyed(e); }
void StopPlayback() { State = LooperState.Waiting; Logger.Log(Name + " - stopping playback"); button_play.Enabled = true; button_StopPlayback.Enabled = false; numericUpDown_length.Enabled = true; numericUpDown_start.Enabled = true; parent.GetRecorder().RemoveTrack(sampleProvider1); parent.GetRecorder().RemoveTrack(sampleProvider2); if (reader1 != null) { reader1.Position = reader1.Length; } if (reader2 != null) { reader2.Position = reader2.Length; } }
void StartRecording() { State = LooperState.Recording; Logger.Log(Name + " - starting recording"); button_record.Enabled = false; button_StopRecording.Enabled = true; button_play.Enabled = false; button_StopPlayback.Enabled = false; numericUpDown_length.Enabled = false; numericUpDown_start.Enabled = false; Directory.CreateDirectory("data\\" + this.Name); reader1?.Dispose(); reader1 = null; reader2?.Dispose(); reader2 = null; sampleProvider1 = null; sampleProvider2 = null; writer = new WaveFileWriter("data\\" + this.Name + "\\" + FileName, parent.waveFormat); parent.GetRecorder().Write += Recorder_DataAvailable; }