private void ReduceBitsPerSample24Ns2(ConvertParams args, DataSubChunk toDsc) { var ns = new NoiseShaper2[mFsc.numChannels]; for (int ch = 0; ch < mFsc.numChannels; ++ch) { ns[ch] = new NoiseShaper2(args.order, args.filter, args.newQuantizationBitrate); } int bytesPerFrame = mFsc.numChannels * mFsc.bitsPerSample / 8; int numFrames = toDsc.data.Length / bytesPerFrame; int readPos = 0; int writePos = 0; for (int i = 0; i < numFrames; ++i) { for (int ch = 0; ch < mFsc.numChannels; ++ch) { int sample = 0; sample = ns[ch].Filter24(ReadSampleValue24(toDsc, readPos)); readPos += mFsc.bitsPerSample / 8; WriteSampleValue24(toDsc, writePos, sample); writePos += mFsc.bitsPerSample / 8; } } }
private void ReduceBitsPerSample24Ns2(ConvertParams args, DataSubChunk toDsc) { var ns = new NoiseShaper2[mFsc.numChannels]; for (int ch=0; ch < mFsc.numChannels; ++ch) { ns[ch] = new NoiseShaper2(args.order, args.filter, args.newQuantizationBitrate); } int bytesPerFrame = mFsc.numChannels * mFsc.bitsPerSample / 8; int numFrames = toDsc.data.Length / bytesPerFrame; int readPos = 0; int writePos = 0; for (int i=0; i < numFrames; ++i) { for (int ch=0; ch < mFsc.numChannels; ++ch) { int sample = 0; sample = ns[ch].Filter24(ReadSampleValue24(toDsc, readPos)); readPos += mFsc.bitsPerSample / 8; WriteSampleValue24(toDsc, writePos, sample); writePos += mFsc.bitsPerSample / 8; } } }