Delphi-PRAXiS
Seite 4 von 4   « Erste     234   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Bass.dll Wave Data / FFT Data ? (https://www.delphipraxis.net/128014-bass-dll-wave-data-fft-data.html)

omata 29. Jan 2009 18:13

Re: Bass.dll Wave Data / FFT Data ?
 
Such doch einfach mal im Projekt (alle Dateien, Strg+F + zweiter Reiter) nach Millisekunden...

-> Unit: BassChannelU.pas

Blamaster 30. Jan 2009 17:04

Re: Bass.dll Wave Data / FFT Data ?
 
Hi,

super dann funktioniert auch das :-D

Jetzt steht nur noch die Frage offen, wieso manche Elemente des Forms auch schwarz "gepaintet" werden.

Habe mal ein biold davon wie z.B.die checkBoxen aussehen angehängt.

mfg und nochmal ein riesen Danke Blamaster

omata 30. Jan 2009 19:20

Re: Bass.dll Wave Data / FFT Data ?
 
Zitat:

Zitat von Blamaster
Habe mal ein biold davon wie z.B.die checkBoxen aussehen angehängt.

wo?

Blamaster 31. Jan 2009 11:13

Re: Bass.dll Wave Data / FFT Data ?
 
Liste der Anhänge anzeigen (Anzahl: 1)
Stimmt, da fehlt etwas.

Sollte jetzt im anhang sein.

Blamaster 7. Feb 2009 15:48

Re: Bass.dll Wave Data / FFT Data ?
 
Hi,

ich grabe das Thema nochmal aus.

Ich habe gerade eine Procedure erstellt umd die Position auch auf Millisekunden einzustellen.

Delphi-Quellcode:
procedure TBassPlayer.SetMilliSecPosition(Position: Longword);
var pos: Longword;
begin
  if Channel = 0 then Exit;

    // Sound set Position
  if Modus = moSamples then
    BASS_ChannelSetPosition(Channel, round((BASS_ChannelGetLength(Channel) / GetSongLengthMS) * Position));
   
    // Mod-Music set Position
  if Modus = moMusik then
  begin
    startmodplaytime := timegettime - (Position * 1000);
    pos := round(position * (SpeedinProzent / 100)) or $FFFF0000;
    BASS_ChannelSetPosition(Channel, pos);
  end;
end;
Nun habe ich aber das Problem das der Song ca. 2 Sekunden Zeitfersetzt läuft.

Wenn ich z.B. die Position auf 8000 ms setze, wird die Time Line auch korrekt auf der Position von 8 Sekunden gesetzt, der Song geht aber um ca. 2 Sekunden nach.

Danach habe ich gesehen das du in deinem code auch eine solche procedure hast um habe folgende Zeile versucht:

Delphi-Quellcode:
BASS_ChannelSetPosition(Channel, round((BASS_ChannelGetLength(Channel) / round(BASS_ChannelBytes2Seconds(Channel, BASS_ChannelGetLength(Channel)) * 1000)) * position));
führte aber leider zum selben Ergebnis.

Eine Idee woran das liegen kann ?

mfg blamaster

omata 7. Feb 2009 19:21

Re: Bass.dll Wave Data / FFT Data ?
 
Das BASS-System hat eben nur eine Genauigkeit in Sekunden. Deine Millisekundenangabe wird intern gerundet und dann kommt es zu solchen Ungenauigkeiten.

Blamaster 7. Feb 2009 20:01

Re: Bass.dll Wave Data / FFT Data ?
 
Hi,

danke für die Info, wozu dient denn aber die SetMilliSec Position in deiner pas, denn den Millisekunden wert könnte man ja auch extern runden und dann SetPosition übergeben ?

mfg Blamaster

omata 7. Feb 2009 20:04

Re: Bass.dll Wave Data / FFT Data ?
 
Damals kam hier im Forum die Frage auf, da habe ich diese Methoden eingebaut. Ich selbst brauchte sie noch nie, habe damals beim realisieren auch keine Probleme feststellen können. Wenn du da jetzt Probleme findest, dann denke ich, hängen diese mit der Genauigkeit zusammen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:33 Uhr.
Seite 4 von 4   « Erste     234   

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz