Beispiel #1
0
        /// <summary>
        /// Enqueue one synthesizer.WorkingBufferSize worth of midi commands.
        /// </summary>
        internal void FillMidiEventQueue()
        {
            if (midiFile is null)
            {
                return;
            }

            int samplesPerChannel = Synthesizer.WorkingBufferSize / Synthesizer.AudioChannels;

            var filteredEventStream = HeadEventStream.MoveNext(samplesPerChannel, Synthesizer.SampleRate).FilterEvents(PartFilter);

            foreach (var eso in filteredEventStream)
            {
                DispatchEvent(eso.midiEvent, eso.sampleOffset / Synthesizer.MicroBufferSize);
            }
        }
Beispiel #2
0
 public override string ToString()
 {
     return(string.Format("Sequencer: Tracks:{0}, HeadEventStream:{1}", midiFile?.Tracks?.Length, HeadEventStream?.ToString()));
 }