/// <summary> /// パラメータの設定。 /// </summary> /// <param name="size">ブロックサイズ</param> /// <param name="overlap">オーバーラップさせる部分の長さ</param> /// <param name="rate">変換レート。再生時間が 1/rate 倍に。</param> public void SetParameter(int size, int overlap, double rate, int maxSkip) { this.size = size; this.overlapSize = overlap; this.frameSize = (int)(size * rate); this.maxSkip = maxSkip; this.last = this.size < this.frameSize ? this.frameSize + this.maxSkip : this.size + this.overlapSize + this.maxSkip; this.buffer = new OverlapBuffer(overlap, overlap); this.current = 0; this.skip = 0; }
/// <summary> /// パラメータの設定。 /// </summary> /// <param name="size">ブロックサイズ</param> /// <param name="overlap">オーバーラップさせる部分の長さ</param> /// <param name="rate">変換レート。再生時間が 1/rate 倍に。</param> public void SetParameter(int size, int overlap, double rate, int maxSkip) { // ステレオなので、2音ずつ処理 → size 類を全部偶数に。 this.size = size & (~1); this.overlapSize = overlap & (~1); this.maxSkip = maxSkip & (~1); this.frameSize = (int)(size * rate) & (~1); this.last = this.size < this.frameSize ? this.frameSize + this.maxSkip : this.size + this.overlapSize + this.maxSkip; this.buffer = new OverlapBuffer(overlap, overlap); this.current = 0; this.skip = 0; }