diff options
-rw-r--r-- | src/emu8910.ts | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/src/emu8910.ts b/src/emu8910.ts index fc39745..aabfcbe 100644 --- a/src/emu8910.ts +++ b/src/emu8910.ts @@ -209,17 +209,20 @@ class FirFilter { this.offset = length - (index * m); let sub = buffer.slice(this.offset); - this.index = (index + 1) % (length / m - 1); - for( i = m -1; i >=0; i--){ - buffer[this.offset + i] = samples[i]; + + for( i = 0; i < m; i++){ + buffer[this.offset + i - 1] = samples[i]; } + for( i = 0; i < h.length; i++){ y += h[i] * (sub[i] + sub[h.length - i - 1]); } + for( i = 0; i < m; i++){ buffer[this.offset + length - m + i] = buffer[this.offset + i]; } - + + this.index = (index + 1) % (length / m - 1); return y; |