示例#1
0
        public Voice(double samplerate, int bufferSize)
        {
            this.samplerate = samplerate;
            bufsize         = bufferSize;

            ampEnvBuffer     = new double[bufsize];
            filter1EnvBuffer = new double[bufsize];
            filter2EnvBuffer = new double[bufsize];

            path1Buffer     = new double[bufsize];
            path2Buffer     = new double[bufsize];
            processBuffer   = new double[bufsize];
            OutputBuffer    = new double[2][];
            OutputBuffer[0] = new double[48000];
            OutputBuffer[1] = new double[48000];

            Modules = new Dictionary <ModuleId, object>();

            Osc1 = new MultiOsc(samplerate, bufsize);
            Osc2 = new BlOsc(samplerate, bufsize);
            Osc3 = new BlOsc(samplerate, bufsize);
            Osc4 = new BlOsc(samplerate, bufsize);

            //Ins1 = new InsRedux(samplerate, Bufsize);
            //Ins2 = new InsRedux(samplerate, Bufsize);
            Ins1 = new InsDistortion(samplerate, bufsize);
            Ins2 = new InsDistortion(samplerate, bufsize);

            Filter1 = new DualFilter(samplerate, bufsize);
            Filter2 = new DualFilter(samplerate, bufsize);

            AmpEnv     = new Ahdsr(samplerate);
            Filter1Env = new Ahdsr(samplerate);
            Filter2Env = new Ahdsr(samplerate);

            Mod1 = new Modulator(samplerate);
            Mod2 = new Modulator(samplerate);
            Mod3 = new Modulator(samplerate);
            Mod4 = new Modulator(samplerate);
            Mod5 = new Modulator(samplerate);
            Mod6 = new Modulator(samplerate);

            MidiInput = new MidiInput();
            ModMatrix = new ModMatrix(this);
            Mixer     = new Mixer();

            RefreshModuleObjects();

            Mod1.UpdateStepsize();
            Mod2.UpdateStepsize();
            Mod3.UpdateStepsize();
            Mod4.UpdateStepsize();
            Mod5.UpdateStepsize();
            Mod6.UpdateStepsize();
            Mixer.Update();
        }