private void sheet_KeyUp(object sender, KeyEventArgs e) { if (e.Control) { if (e.KeyCode == Keys.O) { BtnOpen.PerformClick(); } else if (e.KeyCode == Keys.E) { BtnSave.PerformClick(); } else if (e.KeyCode == Keys.T) { BtnConvert.PerformClick(); } else if (e.KeyCode == Keys.S) { BtnSynth.PerformClick(); } else if (e.KeyCode == Keys.Add || e.KeyCode == Keys.Oemplus) { sheet.NoteWidth *= 1.1F; sheet.Redraw(); } else if (e.KeyCode == Keys.Subtract || e.KeyCode == Keys.OemMinus) { sheet.NoteWidth *= 1 / 1.1F; sheet.Redraw(); } } else if (e.KeyCode == Keys.Space) { if (_file == null) { return; } BtnPlay.PerformClick(); } else if (e.KeyCode == Keys.Left) { if (_file == null) { return; } _file.CurrentTime = _file.CurrentTime.Subtract(TimeSpan.FromSeconds(0.25)); sheet.Time = _file.CurrentTime; sheet.Redraw(); } else if (e.KeyCode == Keys.Right) { if (_file == null) { return; } _file.CurrentTime = _file.CurrentTime.Add(TimeSpan.FromSeconds(0.25)); sheet.Time = _file.CurrentTime; sheet.Redraw(); } }
public void LoadFile(string path) { try { TmrUpdate.Stop(); if (_file != null) { _file.FourierProgress -= FourierProgress; _file.FourierComplete -= FourierComplete; _file.Dispose(); } BtnPlay.Show(); BtnSave.Show(); BtnSynth.Show(); BtnConvert.Show(); LbTip.Text = "Loading audio file, please wait..."; LbTip.Show(); _curTime = TimeSpan.Zero; sheet.ClearNotes(); sheet.StopSynthesize(); sheet.Redraw(); sheet.ScrollTop(); _file = new AudioFile(path); _file.LoadComplete += (object sender, EventArgs e) => { LbTip.Invoke(new Action(delegate { LbTip.Text = "Right click near the left end of a note to edit it.\nCtrl + N to add a note."; })); _file.Stopped += PlaybackStopped; _file.FourierProgress += FourierProgress; _file.FourierComplete += FourierComplete; _prevTime = TimeSpan.FromTicks(-1); _curTime = TimeSpan.Zero; sheet.Invoke(new Action(() => { sheet.Length = _file.TotalTime; sheet.Time = TimeSpan.Zero; sheet.Redraw(); sheet.ScrollTop(); TmrRedraw.Start(); })); _file.Analyze(); }; _maxLen = 0; this.Text = Path.GetFileName(path) + " - " + Application.ProductName; } catch (Exception ex) { MessageBox.Show(ex.ToString()); MessageBox.Show("Failed to load audio file! File may be corrupted or unsupported.", "Load failed", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); } }