Oh my mistake, didn't notice these:
AudioBuffer_16bit_Signed := @Samples[i].SampleData;
AudioBuffer_16bit_Unsigned := @Samples[i].SampleData;
So ignore my comment about overlapping, but instead noticed a new thing.
So Samples[i].SampleData is pointer already. In that case @Samples[i].SampleData means pointer to pointer... Try instead
[pascal]AudioBuffer_16bit_Signed := Samples[i].SampleData;
AudioBuffer_16bit_Unsigned := Samples[i].SampleData;
or
AudioBuffer_16bit_Signed := @Samples[i].SampleData^;
AudioBuffer_16bit_Unsigned := @Samples[i].SampleData^;[/pascal]
Bookmarks