void SampleMatchedRate(ref AudioClipBlob clip, int clipStart, bool isRightChannel, float weight, NativeArray <float> output) { int outputStartIndex = math.min(clipStart, 0); int remainingClipSamples = clip.samplesLeftOrMono.Length - clipStart; int remainingSamples = math.min(output.Length, math.select(0, remainingClipSamples, remainingClipSamples > 0)); if (isRightChannel && clip.isStereo) { for (int i = outputStartIndex; i < remainingSamples; i++) { output[i] += clip.samplesRight[clipStart + i] * weight; } } else { for (int i = outputStartIndex; i < remainingSamples; i++) { output[i] += clip.samplesLeftOrMono[clipStart + i] * weight; } } }
void SampleMismatchedRate(ref AudioClipBlob clip, double clipStart, double clipSampleStride, bool isRightChannel, float weight, NativeArray <float> output) { ref var clipSamples = ref (isRightChannel && clip.isStereo ? ref clip.samplesRight : ref clip.samplesLeftOrMono);