Esempio n. 1
0
        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}");
                }
            }
        }
Esempio n. 2
0
 private void exportMidiButton_Click(object sender, EventArgs e)
 {
     SaveFile <MidiFileResource>((mfr, s) =>
     {
         var midiFile = new MidiCS.MidiFile(MidiCS.MidiFormat.MultiTrack, mfr.MidiFile.MidiTracks.ToList(), 480);
         MidiCS.MidiFileWriter.WriteSMF(midiFile, s);
     });
 }
Esempio n. 3
0
        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);
        }
Esempio n. 4
0
 public List <MidiTrackProcessed> ProcessTracks(MidiCS.MidiFile file)
 {
     this.file = file;
     return(file.Tracks.Select(processTrack).ToList());
 }