Exemple #1
0
        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();
        }
Exemple #3
0
        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);
        }
Exemple #4
0
        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);
        }