Die Deklaration von TWaveData wäre an dieser Stelle interessant, wobei es ja aber denk ich ein array of Integer (oder anderem vorzeichenbehafteten Ganzzahltyp) sein müsste. An sich sehe ich in dem QT oben soweit keine groben Schnitzer. Eventuell einfach mal testweise statt der Paintbox.Height und Trackbar.Position fixe Werte einsetzen und schauen ob's ähnlich wird. Aber sonst gäbe es nach dem zu urteilen was du schreibst nur noch 2 Möglichkeiten:
1) Die verwendete
Unit macht beim Abholen der Wavedaten Murks (ein Link zur entsprechenden wäre echt hilfreich, oder im Zweifel nochmal hier anhängen)
2) Du hast ein komisches Soundfile
Ah, ich schau grad in eine Bass-
Unit die ich hier von
Gandalfus habe. Die Bezeichner sehen doch recht ähnlich aus - evtl. ist sie das ja. Dort ist TWaveData als "array[0..2048] of smallint" deklariert, also wie vermutet.
Die Funktion zum Befüllen sieht dort so aus:
Delphi-Quellcode:
function TBassPlayer.getwavedata: TWaveData;
begin
Bass_ChannelGetData(Channel, @result, 2048);
end;
...und das nutze ich 1:1 so in meinem Player der damit manche seiner Visuals realisiert. Schau mal nach wie "GetWavedata" bei deiner
Unit implementiert ist, und ob TWaveData ähnlich ausschaut. Probier auch mal verschiedene Musikfiles aus, um das als Fehlerquelle auszuschließen.
Btw noch ein heisser Tipp! Bei Stereo-Daten werden diese in dem Array "interleaved", d.h. in den geraden Indezes des Arrays sind die Daten für den linken Kanal, und in den ungeraden für den rechten
Gruss,
Fabian
Fabian K.
INSERT INTO HandVonFreundin SELECT * FROM Himmel