Ran into a problem it seems...

I for some strange and unknown reason keep getting SEGSEGV error on the following indicated line below. Now my first assumption is that I'm trying to access a piece of memory that is not allocated. But my code should restrict this. I know it's this block of code because when I remove it, not a complaint whatsoever.

So... where am I making my mistake?

[pascal] {Decode Sample Data}
// Decode Audio data!
for i := 0 to NumberOfSamples - 1 do
begin
if (Samples[i].is16Bit) then
begin
AudioBuffer_16bit_Signed := @Samples[i].SampleData;
AudioBuffer_16bit_Unsigned := @Samples[i].SampleData;

for j := 0 to Samples[i].SampleLength div 2 - 1 do
begin
SignedWordBuffer := AudioBuffer_16bit_Signed^; // << This is where I get my error!
WordBuffer := SignedWordBuffer + 32768;
AudioBuffer_16bit_Unsigned^ := WordBuffer;

if (j < Samples[i].SampleLength div 2 - 1) then
begin
inc(AudioBuffer_16bit_Signed, 2);
inc(AudioBuffer_16bit_Unsigned, 2);
end;
end;
end
else // not Samples[j].is16Bit // is 8-bit!
begin
AudioBuffer_8bit_Signed := @Samples[i].SampleData;
AudioBuffer_8bit_Unsigned := @Samples[i].SampleData;

for j := 0 to Samples[i].SampleLength - 1 do
begin
SignedByteBuffer := AudioBuffer_8bit_Signed^;
ByteBuffer := SignedByteBuffer + 128;
AudioBuffer_8bit_Unsigned^ := ByteBuffer;

if (j = 113570) then
WordBuffer := ByteBuffer;
if (j < Samples[i].SampleLength - 1) then
begin
inc(AudioBuffer_8bit_Signed, 1);
inc(AudioBuffer_8bit_Unsigned, 1);
end;
end;
end;
end;[/pascal]