public OpenMptMusic(string path) { // Load file and get handle to music. m_moduleExt = OpenMptUtility.LoadModuleExt(path); if (m_moduleExt == null) { throw new System.ArgumentException("Error when loading MOD music at path: " + path); } // parse the info (number of channels etc.) from the message. m_info = MusicInfoParser.ParseMusicInfo(m_moduleExt); // Init sections. m_sectionVolumes = new double[m_info.GetNumberSections()]; m_sectionVolumes.Fill(1.0); m_sectionMuted = new bool[m_info.GetNumberSections()]; m_sectionMuted.Fill(false); }
public OpenMptInstrument(string path, int numberVoices) { m_moduleExt = OpenMptUtility.LoadModuleExt(path); if (m_moduleExt == null) { throw new System.ArgumentException("Error when loading MOD music at path: " + path); } // Looping over the whole thing. // There should be no New Note commands in the Module anyway. m_moduleExt.GetModule().SetRepeatCount(-1); // parse info m_info = MusicInfoParser.ParseInstrumentInfo(m_moduleExt); m_areChannelsSet = false; SetNumberVoices(numberVoices); ResetVolume(); }
public static InstrumentInfo ParseInstrumentInfo(OpenMpt.ModuleExt moduleExt) { string name = OpenMptUtility.GetModuleExtTitle(moduleExt); string message = OpenMptUtility.GetModuleExtMessage(moduleExt); fsData data = fsJsonParser.Parse(message); object deserialised = null; fsResult result = s_serialiser.TryDeserialize(data, typeof(SerialisedInstrumentInfo), ref deserialised); if (!result.Failed) { var serialisedInstrumentInfo = (SerialisedInstrumentInfo)deserialised; return(new InstrumentInfo( name, ParseAllInstruments(serialisedInstrumentInfo), serialisedInstrumentInfo.Comment )); } return(null); }
public static MusicInfo ParseMusicInfo(OpenMpt.ModuleExt moduleExt) { string message = OpenMptUtility.GetModuleExtMessage(moduleExt); string author = OpenMptUtility.GetModuleExtAuthor(moduleExt); string title = OpenMptUtility.GetModuleExtTitle(moduleExt); fsData data = fsJsonParser.Parse(message); object deserialised = null; fsResult result = s_serialiser.TryDeserialize(data, typeof(SerialisedMusicInfo), ref deserialised); if (!result.Failed) { var serialisedMusicInfo = (SerialisedMusicInfo)deserialised; return(new MusicInfo( ParseAllMusicSections(serialisedMusicInfo), title, author, serialisedMusicInfo.Comment )); } return(null); }