Einzelnen Beitrag anzeigen

Benutzerbild von dizzy
dizzy

Registriert seit: 26. Nov 2003
Ort: Lünen
1.932 Beiträge
 
Delphi 7 Enterprise
 
#11

Re: equalizer mit der bass.dll

  Alt 20. Sep 2005, 01:40
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
  Mit Zitat antworten Zitat