Пример #1
0
        public void ProcessTest()
        {
            AV.Midi.Fluid fluidMidi = loadMidiData();
            Core.AV.Music.Midi.MidiProcessor midiProcessor = new Core.AV.Music.Midi.MidiProcessor(AV.Midi.Fluid.lbinbins, AV.Midi.Fluid.tetr, AV.Midi.Fluid.seqt, AV.Midi.Fluid.tims);

            // It seems that none of the exported MIDIs have an end track?
            // Which makes sense because the music is supposed to loop.
            // But why wasn't the assertion triggered before?
            var mid = midiProcessor.Process();
        }
Пример #2
0
        public void LoadingTest()
        {
            AV.Midi.Fluid fluidMidi = loadMidiData();

            fluidMidi.FluidWorker_ProduceMid();

            SHA256 mySHA256 = SHA256.Create();
            string actual   = byteArrayToString(mySHA256.ComputeHash(fluidMidi.midBuffer));

            Assert.AreEqual("9e3ab13fc48c813864fbe8904594c2abfb576364453456d792d788ee3f5e8f99", actual);
        }
Пример #3
0
        private AV.Midi.Fluid loadMidiData()
        {
            Memory.Init(null, null, null, null);
            AV.Music.Init();

            // Load the overture MIDI.
            var filename = Memory.DicMusic[(MusicId)79][0];

            AV.Midi.Fluid fluidMidi = new AV.Midi.Fluid();
            fluidMidi.ReadSegmentFileManually(filename);

            return(fluidMidi);
        }
Пример #4
0
        private static AV.Audio ffccMusic = null; // testing using class to play music instead of Naudio / Nvorbis

        public static void Play(ushort?index = null, float volume = 0.5f, float pitch = 0.0f, float pan = 0.0f, bool loop = true)
        {
            Memory.MusicIndex = index ?? Memory.MusicIndex;

            if (musicplaying && lastplayed == Memory.MusicIndex)
            {
                return;
            }
            string ext = "";

            if (Memory.dicMusic.Count > 0 && Memory.dicMusic[(MusicId)Memory.MusicIndex].Count > 0)
            {
                ext = Path.GetExtension(Memory.dicMusic[(MusicId)Memory.MusicIndex][0]).ToLower();
            }
            else
            {
                return;
            }

            string filename = Memory.dicMusic[(MusicId)Memory.MusicIndex][0];

            Stop();

            switch (ext)
            {
            case ".ogg":
            case ".wav":
            case ".mp3":
            default:
                //ffccMusic = new Ffcc(@"c:\eyes_on_me.wav", AVMediaType.AVMEDIA_TYPE_AUDIO, Ffcc.FfccMode.STATE_MACH);
                if (ffccMusic != null)
                {
                    ffccMusic?.Dispose();
                    ffccMusic = null;
                }
                if (!ZZZ)
                {
                    ffccMusic = AV.Audio.Load(filename, loop ? 0 : -1);
                    if (!loop)
                    {
                        ffccMusic.LOOPSTART = -1;
                    }
                    if (Memory.Threaded)
                    {
                        ffccMusic.PlayInTask(volume, pitch, pan);
                    }
                    else
                    {
                        ffccMusic.Play(volume, pitch, pan);
                    }
                }
                else
                {
                    return;
                    //cancelTokenSource = new CancellationTokenSource();
                    //cancelToken = cancelTokenSource.Token;
                    //MusicTask = Task.Run(()=>PlayInTask(ref ffccMusic,volume, pitch, pan, loop, filename,cancelToken), cancelToken);
                }
                break;

            case ".sgt":
#if _X64 || !_WINDOWS
                if (fluid_Midi == null)
                {
                    fluid_Midi = new AV.Midi.Fluid();
                }
                fluid_Midi.ReadSegmentFileManually(filename);
                fluid_Midi.Play();
#else
                if (dm_Midi == null)
                {
                    dm_Midi = new AV.Midi.DirectMedia();
                }
                dm_Midi.Play(filename, loop);
#endif

                break;
            }

            musicplaying = true;
            lastplayed   = Memory.MusicIndex;
        }