AlphaSynth.Synthesis.Synthesizer.Synthesizer C# (CSharp) Метод

Synthesizer() публичный Метод

public Synthesizer ( int sampleRate, int audioChannels, int bufferSize, int bufferCount, int polyphony ) : System
sampleRate int
audioChannels int
bufferSize int
bufferCount int
polyphony int
Результат System
        public Synthesizer(int sampleRate, int audioChannels, int bufferSize, int bufferCount, int polyphony)
        {
            var MinSampleRate = 8000;
            var MaxSampleRate = 96000;

            if (sampleRate < MinSampleRate || sampleRate > MaxSampleRate)
                throw new Exception("Invalid paramater: (sampleRate) Valid ranges are " + MinSampleRate + " to " +
                                    MaxSampleRate);
            if (audioChannels < 1 || audioChannels > 2)
                throw new Exception("Invalid paramater: (audioChannels) Valid ranges are " + 1 + " to " + 2);

            _midiMessageProcessed = new FastList<Action<MidiEvent>>();
            //
            // Setup synth parameters
            _synthGain = 0.35f;
            _masterVolume = 1;

            SampleRate = sampleRate;
            AudioChannels = audioChannels;
            MicroBufferSize = SynthHelper.ClampI(bufferSize, (int)(SynthConstants.MinBufferSize * sampleRate),
                (int)(SynthConstants.MaxBufferSize * sampleRate));
            MicroBufferSize =
                (int)
                    (Math.Ceiling(MicroBufferSize / (double)SynthConstants.DefaultBlockSize) *
                     SynthConstants.DefaultBlockSize); //ensure multiple of block size
            MicroBufferCount = (Math.Max(1, bufferCount));
            SampleBuffer = new SampleArray((MicroBufferSize * MicroBufferCount * audioChannels));
            LittleEndian = true;

            //Setup Controllers
            _synthChannels = new SynthParameters[SynthConstants.DefaultChannelCount];
            for (int x = 0; x < _synthChannels.Length; x++)
                _synthChannels[x] = new SynthParameters(this);
            //Create synth voices
            _voiceManager = new VoiceManager(SynthHelper.ClampI(polyphony, SynthConstants.MinPolyphony, SynthConstants.MaxPolyphony));
            //Create midi containers
            MidiEventQueue = new LinkedList<SynthEvent>();
            MidiEventCounts = new int[MicroBufferCount];
            _layerList = new Patch[15];

            _midiMessageProcessed = new FastList<Action<MidiEvent>>();
            ResetSynthControls();
        }