Ну если указанный пример работает, то там используется:
	Код:
	type
  TSingleArray	= array of Single;
var
  Buf		: TSingleArray;
begin
...
    SetLength(Buf, ci.chans * SPECWIDTH);
    BASS_ChannelGetData(chan, buf, (ci.chans * SPECWIDTH * SizeOf(Single)) or BASS_DATA_FLOAT); // get the sample data (floating-point to avoid 8 & 16 bit processing) 
и всё работает. С двумерным масивом не пробовал.