Example #1
0
        private void Start()
        {
            model = GetComponent <ModalModel>();

            forceVector = Vector <double> .Build
                          .Dense(gainMatrixT.ColumnCount);

            modeGainsP = Vector <zdouble> .Build
                         .Dense(model.ModesUsed, new zdouble(0, 0));

            modeGainsM = Vector <zdouble> .Build
                         .Dense(model.ModesUsed, new zdouble(0, 0));

            //modeGains  = Vector<double>.Build
            //    .Dense(model.ModesUsed);

            modeGains = new zdouble[model.ModesUsed];

            maab = new MeshAABBSearch(modalMesh);

            contacts     = new ContactPoint[MAXCP];
            lastVertices = new int[] { 0 };

            AudioSettings.GetDSPBufferSize(out audioBufferSize, out int dummy);
            sampleRate = AudioSettings.outputSampleRate;

            auxAudioBuffer = new zdouble[audioBufferSize];

            dspStartTime = AudioSettings.dspTime;
            startTime    = Time.time;

            imp = new ImpactResonatorGenerator(model);

            // Flag to signal the audiothread that it can
            // attempt to process samples (derived field)
            AudioObjReady = true;
        }
Example #2
0
 public ImpactResonatorGenerator(ModalModel model)
 {
     this.model = model;
     dt         = 1.0 / SampleRate;
     prevBuffer = new zdouble[model.ModesUsed, 2];
 }