コード例 #1
0
 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();
 }
コード例 #2
0
        //Принимает директории на генератор нот, на хранилище нот, и на хранилище запакованных партитур, после чего генерирует необходимые файлы и добавляет их по указанным директориям
        // возвращает тройку пустых значений, если файл не был выбран
        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("", "", ""));
        }
コード例 #3
0
 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();
 }
コード例 #4
0
ファイル: LibForm.cs プロジェクト: Amalgam-Cloud/Octavium
 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;
         }
     }
 }
コード例 #5
0
ファイル: FlowKey.cs プロジェクト: Amalgam-Cloud/Octavium
 public FlowKeyData(Melanchall.DryWetMidi.Interaction.Note note, TempoMap tempomap)
 {
     pos    = MIDIFuncs.NoteGetPosOnKeyboard(note);
     time   = MIDIFuncs.GetNoteTime(note, tempomap);
     length = MIDIFuncs.GetNoteLength(note, tempomap);
 }