public Form1(String Path = "", double Speed = 1.00, String image = "", Color?c1 = null, Color?c2 = null, Color?c3 = null, Color?c4 = null, bool RainbowMode = false) { if (Path != "") { track = (Path.Substring(Path.LastIndexOf("\\") + 1, Path.LastIndexOf(".") - Path.LastIndexOf("\\") - 1)); My = new MIDINotesData(MIDIFuncs.UnpackDataToNote(Path)); pathcheck = true; ft = (int)My.flowkeys[0].time; st = (int)My.flowkeys[My.flowkeys.Count - 1].time + (int)My.flowkeys[My.flowkeys.Count - 1].length; } if (RainbowMode) { rainbow = new Rainbow(); } red = new System.Drawing.SolidBrush(c1 ?? Color.Red); green = new System.Drawing.SolidBrush(c2 ?? Color.Green); pink = new System.Drawing.SolidBrush(c3 ?? Color.Pink); lightgreen = new System.Drawing.SolidBrush(c4 ?? Color.LightGreen); cl1 = c1 ?? Color.Red; cl2 = c2 ?? Color.Green; cl3 = c3 ?? Color.Pink; cl4 = c4 ?? Color.LightGreen; Myspeed = Speed; if (image != null) { //this.BackgroundImage = Image.FromFile(image); try { im = Image.FromFile(image); } catch (Exception ex) { } } InitializeComponent(); }
//Принимает директории на генератор нот, на хранилище нот, и на хранилище запакованных партитур, после чего генерирует необходимые файлы и добавляет их по указанным директориям // возвращает тройку пустых значений, если файл не был выбран public static Tuple <String, String, String> GetAndAddData(string engien_path, string sheet_path, string data_storage_path) { string midi_data_path = null; using (var dialog = new OpenFileDialog()) { if (dialog.ShowDialog() == DialogResult.OK) { midi_data_path = dialog.FileName; if (!Is_mid(midi_data_path)) { //throw new FormatException("Выбранный файл не является midi!"); MessageBox.Show("Выбранный файл не является midi!"); return(Tuple.Create("", "", "")); } CreateSheet(engien_path, midi_data_path, sheet_path); midi_data_path = Regex.Replace(midi_data_path, "_", " "); try { MIDIFuncs.SaveToData(new MIDINotesData(midi_data_path), $@"{data_storage_path}\{InterfaceFuncs.GetFileName(midi_data_path)}"); return(Tuple.Create(GetDate(), GetFileName(midi_data_path), MIDIFuncs.GetDuration(midi_data_path))); } catch (NotEnoughBytesException e) { MessageBox.Show("Входной файл имеет недопустимую для обработки внутреннюю конфигурацию", e.Message, MessageBoxButtons.OK, MessageBoxIcon.Stop); } } } return(Tuple.Create("", "", "")); }
public Play(String Path = "") { if (Path != "") { My = new MIDINotesData(MIDIFuncs.UnpackDataToNote(Path)); pathcheck = true; if ((int)My.flowkeys[0].time > 1000) { time = (int)My.flowkeys[0].time - 1000; } } InitializeComponent(); }
private void PlayLabel_Click(object sender, EventArgs e) { if (selectedFileName == "") { return; } else { //Player My = new MIDINotesData((MIDIFuncs.UnpackDataToNote(libPath + @"\" + selectedFileName + ".dat"))); if (playing) { timer1.Stop(); playLabel.BackgroundImage = Properties.Resources.icons8_play_96_1; playing = !playing; } else { timer1.Start(); playLabel.BackgroundImage = Properties.Resources.icons8_pause_96_1; playing = !playing; } } }
public FlowKeyData(Melanchall.DryWetMidi.Interaction.Note note, TempoMap tempomap) { pos = MIDIFuncs.NoteGetPosOnKeyboard(note); time = MIDIFuncs.GetNoteTime(note, tempomap); length = MIDIFuncs.GetNoteLength(note, tempomap); }