Пример #1
0
        public PlayerMidi(string aFilePath)
        {
            MusicMidi lMusic = ( MusicMidi )LoaderMusic.Load(aFilePath);

            sequencer = new MidiSequencer(lMusic, new MidiSynthesizer());

            updatePlayCurrent = sequencer.UpdatePlay;

            float lVolume = ( float )(40.0d * Math.Log10(0.5f));

            volume = ( float )Math.Pow(10.0d, lVolume / 20.0d) * 2.0f;
        }
Пример #2
0
        public MidiSequencer(MusicMidi aMusicMidi, MidiSynthesizer aMidiSynthesizer)
        {
            music       = aMusicMidi;
            synthesizer = aMidiSynthesizer;

            metaStatus         = new MetaStatus();
            sequenceTrackArray = new MidiSequenceTrack[music.tracks];

            for (int i = 0; i < music.tracks; i++)
            {
                sequenceTrackArray[i] = new MidiSequenceTrack(music.mtrkChunkArray[i]);
            }

            deltaPosition  = 0;
            samplePosition = 0;

            bufferArray = new float[2];

            Caching();
        }