public RBMidiInspector(RBMid file) { InitializeComponent(); gemDisplay.Image = new Bitmap(gemDisplay.Width, gemDisplay.Height); var Midi = new MidiCS.MidiFile(MidiCS.MidiFormat.MultiTrack, file.MidiTracks.ToList(), 480); previewState = new GemTrackPreviewState { Midi = file, diff = difficultySelector.SelectedIndex, scroll = 0, length = (float)(Midi.Duration * 1000.0), zoom = 1, enabled = false, }; difficultySelector.Items.Clear(); for (var track = 0; track < file.GemTracks.Length; track++) { for (var i = 0; i < file.GemTracks[track].Gems.Length; i++) { difficultySelector.Items.Add($"Track {track} difficulty {i}"); } } }
public void TestRBMidiFileRoundTrip() { RBMid rbmid = GetMid("hopos.mid"); try { using (var ms = new MemoryStream()) { RBMidWriter.WriteStream(rbmid, ms); ms.Position = 0; var rbmid2 = new RBMidReader(ms).Read(); var diff = rbmid.Compare(rbmid2); Assert.AreEqual(null, diff, "RBMid differed after round-trip at element " + diff); } } catch (Exception e) { Assert.Fail("Exception occurred writing or reading an RBMid: " + e.Message); } }
public RBMidiInspector(RBMid file) { InitializeComponent(); gemDisplay.Image = new Bitmap(gemDisplay.Width, gemDisplay.Height); var Midi = new MidiCS.MidiFile(MidiCS.MidiFormat.MultiTrack, file.MidiTracks.ToList(), 480); previewState = new GemTrackPreviewState { rbmid = file, tempos = Midi.TempoTimeSigMap, diff = difficultySelector.SelectedIndex, scroll = 0, length = (float)(Midi.Duration * 1000.0), zoom = 1, enabled = false, }; difficultySelector.Items.Clear(); for (var track = 0; track < file.GemTracks.Length; track++) { for (var i = 0; i < file.GemTracks[track].Gems.Length; i++) { if (file.GemTracks[track].Gems[i].Length == 0) { continue; } difficultySelector.Items.Add($"Gem track {track} difficulty {i}"); SelectorActions.Add(MakeGemtrackAction(track, i)); } } for (var track = 0; track < file.VocalTracks.Length; track++) { difficultySelector.Items.Add($"Vocal track {track}"); SelectorActions.Add(MakeVocalTrackAction(track)); } button3_Click(this, null); }