|
11 | 11 | using System.Text.RegularExpressions;
|
12 | 12 | using System.Timers;
|
13 | 13 | using BardMusicPlayer.DryWetMidi.Core;
|
| 14 | +using BardMusicPlayer.DryWetMidi.Core.Utilities; |
14 | 15 | using BardMusicPlayer.DryWetMidi.Core.WritingSettings;
|
15 | 16 | using BardMusicPlayer.Maestro.Sequencer.Backend.Sanford.Multimedia.Midi.DeviceClasses.InputDeviceClass;
|
16 | 17 | using BardMusicPlayer.Maestro.Sequencer.Backend.Sanford.Multimedia.Midi.Messages;
|
@@ -417,25 +418,27 @@ public int GetTrackPreferredOctaveShift(Track track)
|
417 | 418 | return 0;
|
418 | 419 | }
|
419 | 420 |
|
420 |
| - public void Load(BmpSong bmpSong, int trackNum = 1) |
| 421 | + public void Load(BmpSong bmpSong) |
421 | 422 | {
|
422 | 423 | if (bmpSong == null)
|
423 | 424 | return;
|
424 | 425 |
|
425 | 426 | LoadedFileType = FILETYPES.BmpSong;
|
426 | 427 | LoadedBmpSong = bmpSong;
|
427 | 428 |
|
| 429 | + var dryWetSong = bmpSong.GetProcessedMidiFile().Result; |
| 430 | + dryWetSong.Chunks.Insert(0, TrackChunkUtilities.Merge(dryWetSong.GetTrackChunks())); |
| 431 | + |
428 | 432 | using var midiStream = new MemoryStream();
|
429 |
| - bmpSong.GetProcessedMidiFile().Result.Write(midiStream, MidiFileFormat.MultiTrack, |
430 |
| - new WritingSettings { TextEncoding = Encoding.ASCII }); |
| 433 | + dryWetSong.Write(midiStream, MidiFileFormat.MultiTrack, new WritingSettings { TextEncoding = Encoding.ASCII }); |
431 | 434 | midiStream.Flush();
|
432 | 435 | midiStream.Position = 0;
|
433 | 436 |
|
434 | 437 | Sequence = new Sequence(midiStream);
|
435 |
| - load(Sequence, trackNum); |
| 438 | + load(Sequence, Sequence.Count - 1); |
436 | 439 | }
|
437 | 440 |
|
438 |
| - public void load(Sequence sequence, int trackNum = 1) |
| 441 | + public void load(Sequence sequence, int trackNum) |
439 | 442 | {
|
440 | 443 | OnTrackNameChange?.Invoke(this, string.Empty);
|
441 | 444 | OnTempoChange?.Invoke(this, 0);
|
|
0 commit comments