public void Add(EngineAudioClip.EngineCycle cycle)
 {
     if (!this.cycles.Contains(cycle))
     {
         this.cycles.Add(cycle);
     }
 }
 public void Add(EngineAudioClip.EngineCycle cycle)
 {
     if (this.cycles.Contains(cycle))
     {
         return;
     }
     this.cycles.Add(cycle);
 }
 public void Init(float[] source, EngineAudioClip.EngineCycle cycle, int cyclePadding)
 {
     this.sourceData           = source;
     this.startSample          = cycle.startSample - cyclePadding;
     this.currentSample        = this.startSample;
     this.attackTimeSamples    = cyclePadding;
     this.sustainTimeSamples   = cycle.endSample - cycle.startSample;
     this.releaseTimeSamples   = cyclePadding;
     this.gainPerSampleAttack  = 1f / (float)this.attackTimeSamples;
     this.gainPerSampleRelease = -1f / (float)this.releaseTimeSamples;
     this.attackEndSample      = this.startSample + this.attackTimeSamples;
     this.releaseStartSample   = this.attackEndSample + this.sustainTimeSamples;
     this.endSample            = this.releaseStartSample + this.releaseTimeSamples;
     this.gain = 0.0f;
 }