public static void SA2MIDI(string file, string output) { var sa = SonicArrangerFile.Open(file); var song = sa.ToMidi(ReadConfig()); using (var stream = new FileStream(output, FileMode.Create)) { song.Save(stream); } }
public Song(Enumerations.Song song, int songIndex, SongPlayer songPlayer, DataReader reader, Stream.ChannelMode channelMode, bool hardwareLPF, bool pal, bool waitForLoading = false, Action loadFinishedHandler = null) { this.song = song; this.songPlayer = songPlayer; reader.Position = 0; sonicArrangerFile = new SonicArrangerFile(reader); sonicArrangerSong = sonicArrangerFile.Songs[songIndex]; void Load() { buffer = new Stream(sonicArrangerFile, songIndex, 44100, channelMode, hardwareLPF, pal).ToUnsignedArray(); loadFinishedHandler?.Invoke(); } if (waitForLoading) { Load(); } else { loadTask = Task.Run(Load); } }