Delphi-PRAXiS
Seite 3 von 4     123 4      

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)

Blamaster 27. Jan 2009 16:46

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

nein das hat schon seinen Grund ;)

Die BassPlayer.pas ist für die Bass.dll V2.3 ausgelegt, diese ist auch im Verzeichnis und richtig eingebunden.

BASS_POS_BYTE gibt es bei meiner Version noch nicht, deswegen arbeite ich ja auch nur mit der alten variante, die trotzdem die Position als Byte ausgibt :).

Das ist ja auch imo garnicht das Problem, das Problem ist das Flackern der TimeLine, welches bei dem Bass.dll Custom Loop Beispiel trotz gleichem Timerintervall nicht auftritt.

Ich bin nur noch nicht dahinter gekommen wieso die TimeLine bei mir (BassTest2 aus dem Anhang) flackert.

mfg Blamaster

omata 27. Jan 2009 19:38

Re: Bass.dll Wave Data / FFT Data ?
 
Liste der Anhänge anzeigen (Anzahl: 1)
Ich hatte das so schön realisiert, jetzt schau ich in den Quellcode und was is? Alles wieder kaputt. Da frage ich mich wirklich, warum ich mir eigentlich die Mühe mache?

Blamaster 27. Jan 2009 21:03

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

tut mir leid, dass es für dich so rüberkam, als ob ich deine Arbeit nicht zu schätzen wüsste :(

Es ist nur nunmal so, dass ich in Delphi noch nicht so ganz der Profi bin.

Auch wenn es sich jetzt dumm anhört aber meistens ist es ja so, dass solche Anfragen gestellt werden und danach erwartet wird, dass eine komplett fertige procedure erwartet wird. Ich hingegen möchte ebend auch noch etwas selber dran machen um weiter draus zu lernen.

Nun war es ebend so das mir die Sache mit dem OnWavePaint im Hauptprogramm etwas unkonfortabel vorkam. Und ich die Ereignisse wie z.B. DrawSpectrum oder DrawTimeline ebend gerne Manuell aufrufen wollte. (Somit wird das Handling der Funktion im Hauptprogramm in das, dass ganze intigriert werden soll auch um einiges komfortabeler).

Und da hatte ich dann bei den ganzen Procedure Verknüpfungen untereinander erstmal meine Probleme gehabt mich zurecht zu finden, was nun genau wann für was zuständig ist.

Mittlerweile glaube ich allerdings etwas dahinter gekommen zu sein.

Eine Frage hingegen bleibt mir dabei allerdings trotzdem noch offen.

Durch was wird denn das WaveBufferUpdateEvent eigentliche ausgeführt ?

mfg Blamaster

omata 27. Jan 2009 21:15

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

Zitat von Blamaster
Durch was wird denn das WaveBufferUpdateEvent eigentliche ausgeführt ?

Das Event wird durch den TScanThread aufgerufen.

Blamaster 28. Jan 2009 08:10

Re: Bass.dll Wave Data / FFT Data ?
 
Ah Danke, jetzt verstehe ich den Zusammenhang.

mfg Blamaster

Blamaster 28. Jan 2009 15:46

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

mir kam gerade eine Berechnungsfrage auf. Unzwar gibt z.B. BASS_ChannelGetPosition oder BASS_ChannelGetLength einen Byte Wert aus. Wie kann man eigentlich manuell eine Zeit wie z.B. 1:30 in das Byte Format umrechnen ?

mfg Blamaster

omata 28. Jan 2009 16:02

Re: Bass.dll Wave Data / FFT Data ?
 
Einfacher Dreisatz...

1:30 -> 1 * 60 Sekunden + 30 Sekunden = 90 Sekunden.

BytePosition := trunc((BASS_ChannelGetLength / GesamtSekunden) * AktuelleSekunden);

Edit: Oder du schaust dir mal BASS_ChannelSeconds2Bytes an.

Blamaster 29. Jan 2009 15:17

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

Danke damit funktioniert es.

Nun kamen mir nochmal Frage aus. Irgendwie werden Elemente auf meinem Form (Buttons, Checkbox) schwarz umrandet ? Wieso wird darauf gezeichnet ?

Und dann würde mich noch interessieren ob eins von beidem möglich ist. Einmal ob man auf dem Spectrum Linien auch im Millisekundenbereich zeichnen lassen kann. (ich vermute mal eher nicht da die Breitenberechungen ja auf Sekunden laufen). Und dann ob es möglich ist durch die Mausposition auf dem Spectrum die Zeit in Minuten Sekunden und Millisekunden genau auszugeben.

mfg Blamaster

omata 29. Jan 2009 16:03

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

Zitat von Blamaster
Einmal ob man auf dem Spectrum Linien auch im Millisekundenbereich zeichnen lassen kann. ... Und dann ob es möglich ist durch die Mausposition auf dem Spectrum die Zeit in Minuten Sekunden und Millisekunden genau auszugeben.

Nicht Spektrum, Zeitsignal!

Berechnung in Millisekunden habe ich im BassPlayerEx realisiert.

Die Mausposition kann wieder über einen einfachen Dreisatz umgerechnet werden...

Millisekunden := round((GesamtMillisekunden / GesamtPixelBreiteDerAnzeige) * X-Mausposition);

Blamaster 29. Jan 2009 17:53

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

in welcher Unit des BassPlayerEx wird man denn da fündig ? Sind ja einige :D

mfg Blamster

Aber z.B. beim zeichnen der TimeLine kann ich doch keine millisekunden übergeben, dafür müsste man dann erstmal die Auflösung also bpp an Millisekunden anpassen richtig ?

mfg Blamaster


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:28 Uhr.
Seite 3 von 4     123 4      

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