Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Visualisierung malwieder (https://www.delphipraxis.net/90330-visualisierung-malwieder.html)

ghost007 15. Apr 2007 15:13


Visualisierung malwieder
 
Hallo,
ich hab schon im forum gesucht, aber irgendwie findet man da nur visualisierungen mit der bass.dll.
Geht das auch anders? vll indem man die kanäle abhört oder sowas?

MfG - Ghost

mkinzler 15. Apr 2007 15:14

Re: Visualisierung malwieder
 
Für welches Programm willst du du Visualisierungen erstellen?

EWeiss 15. Apr 2007 15:24

Re: Visualisierung malwieder
 
Zitat:

aber irgendwie findet man da nur visualisierungen mit der bass.dll.
Was ist daran auszusetzen ?
Sei doch froh das Leute sich die Arbeit machen und anderen so etwas zur verfügung stellen.

Zu deiner Frage Ja.
Direkt über das Device (Soundkarte) unter verwendung eines FFT-Algo.

gruss Emil

ghost007 15. Apr 2007 18:39

Re: Visualisierung malwieder
 
also, ich hab mir ein proggi gebaut das per winamp api auf ein laufendes winamp zugreift, nun will ich eine visualisierung in mein proggi einbauen ensprechend zu dem lied, welches gerade bei winamp läuft. Da dies aber auch ein internet stream sein kann, dachte ich das es besser is den soundoutput mitzulauschen.

EWeiss 15. Apr 2007 18:48

Re: Visualisierung malwieder
 
Zitat:

Zitat von ghost007
also, ich hab mir ein proggi gebaut das per winamp api auf ein laufendes winamp zugreift, nun will ich eine visualisierung in mein proggi einbauen ensprechend zu dem lied, welches gerade bei winamp läuft. Da dies aber auch ein internet stream sein kann, dachte ich das es besser is den soundoutput mitzulauschen.

Jo! über das Device (Soundkarte)
Dabei spielt es keine Rolle woher der sound, Ton kommt.

gruss Emil

ghost007 15. Apr 2007 18:55

Re: Visualisierung malwieder
 
puh,
hab mich mal nach dem FFT umgeguggt, scheint mir ja richtig aufwendig zu sein ...
gibt es was einfacheres?

MfG - Ghost

Torpedo 15. Apr 2007 18:58

Re: Visualisierung malwieder
 
Zitat:

Zitat von ghost007
puh,
hab mich mal nach dem FFT umgeguggt, scheint mir ja richtig aufwendig zu sein ...
gibt es was einfacheres?

MfG - Ghost

Solche Visualisierungen sind eben nicht einfach, besonders wenn man alles selbst machen will.

Gandalfus 15. Apr 2007 19:17

Re: Visualisierung malwieder
 
Zitat:

gibt es was einfacheres?
bass.dll :mrgreen:

EWeiss 15. Apr 2007 19:17

Re: Visualisierung malwieder
 
Zitat:

Zitat von ghost007
puh,
hab mich mal nach dem FFT umgeguggt, scheint mir ja richtig aufwendig zu sein ...
gibt es was einfacheres?

MfG - Ghost

Ja ... Bass.dll :)
EDIT:
@Gandalfus paar sekunden früher .. hehehehee
gruss Emil

ghost007 15. Apr 2007 19:18

Re: Visualisierung malwieder
 
grml ich hasse euch :lol:
dann gugg ich mir wohl oder übel doch die bass.dll an :P

ghost007 12. Sep 2007 13:31

Re: Visualisierung malwieder
 
Hallo,
nach ner längeren pause möchte ich nun doch nochmal dieses thema aufwärmen, da es mir keine ruhe lässt.
Hab nun noch n nach der visualisierung per bass.dll gesucht ... aber irgendwie, kann es sein das man nur die visualisierung zu einer datei, die per bass.dll abgespielt wird machen kann? Oder geht das auch, das ich irgendwie die visualisierung zu dem aktuell in winamp spielenden titel hinbekomme?

MfG - Ghost007

Ghostwalker 12. Sep 2007 14:11

Re: Visualisierung malwieder
 
Öhm....mal ne dumme Frage:

Wenn du eh über Winamp abspielst....warum startest du nicht gleich die Visualisierung von Winamp ?

ghost007 12. Sep 2007 15:26

Re: Visualisierung malwieder
 
weil das ganze auf dem LCD der Logitech G15 tstatur dargestellt werden soll ;)

MfG - Ghost

Ghostwalker 12. Sep 2007 15:57

Re: Visualisierung malwieder
 
Nun...wie wärs, wenn du dann einfach ein Winamp-Plugin dafür erstellst ? Da bekommst du die Daten direkt von Winamp und brauchst kein Extra Programm dafür und somit auch keine weitere Soundengine :)

ghost007 12. Sep 2007 16:51

Re: Visualisierung malwieder
 
Hi,
das problem ist, das die visualisierung in die bestehende "oberfleche" des programms integriert sein soll.
d.h. oben läuft der track titel/artist durch (das geht schon) und drunter soll die visualisierung laufen.
Um auf das LCD zu zeichnen muss ich die visualisierung auf ein TImage zeichnen.
Außer ich lass mir irgendwie von nem winamp plugin die daten die für die visualisierung nötig sind an das programm schicken.
Geht sowas? Wenn ja: Wie hol ich mir mit dem plugin die daten? Wie schick ich die daten an mein Programm?

MfG - Ghost

dizzy 12. Sep 2007 18:30

Re: Visualisierung malwieder
 
Winamp Plugins sind einfache DLLs. Es gibt ein sehr gutes SDK auf der Winamp-Seite, anhand dessen man recht einfach das nötige Rahmenwerk zusammenfummeln kann. Ein solches Plugin könnte dann z.B. per WM_COPYDATA die periodisch abrufbaren FFT-Daten von Winamp an deine Applikation senden.
Einziger Nachteil: Man muss dieses Plugin von Hand in Winamp setzen, und kann daneben kein zweites betreiben.

ghost007 12. Sep 2007 19:03

Re: Visualisierung malwieder
 
Hi,
ich kenne das SDK, das problem is nur, das es in C geschrieben is =/ und ich kein C kann ...

MfG - Ghost

EWeiss 12. Sep 2007 19:37

Re: Visualisierung malwieder
 
Zitat:

Zitat von ghost007
weil das ganze auf dem LCD der Logitech G15 tstatur dargestellt werden soll ;)

MfG - Ghost

Denke das kannst so mit Winamp getrost vergessen.
Selbst bei einen über usb angesteuerten LCD ist die übertragung einfach zu langsam bzw.. die auslastung der CPU zu hoch.
Du mußt die vis auf ein bitmap zeichnen und dieses 8byte weise auf das LCD bringen.

Die frage ist wie du das verwirklichen willst ;) über PortIo oder die com Schnittstelle ist das einfach zu langsam
und wird dein System zu 100% auslasten davon kannst ausgehen.

Habe das mal mit ner Fernsehkarte auflösung 320x240 gemacht CPU 60%
Winamp Plugins wie AVS benötigen aber schon fast 80% je nachdem welches Script gerade am laufen ist.

Dazu kommt noch das du die Farben in SW Pixels konvertieren mußt.
Kenne zwar das LCD nicht glaube aber trotzdem das es nicht machbar ist was du da vor hast.

gruss Emil

dizzy 12. Sep 2007 20:01

Re: Visualisierung malwieder
 
Die G15 bietet eine Schnittstelle, der man ein Bitmap zuwerfen kann, welches sie darstellt. Das Display an und für sich kommt ca. an 17-20fps heran, und hat aufgrund seiner niedrigen Auflösung so gut wie keine Belastung der CPU zur Folge. Das ist hier denke ich das kleinste Problem.

Was das SDK in C angeht: Ich kann auch kein C, habs aber schon mal übersetzt :). Leider sind die Quellen während mehrerer Neuinstallationen irgendwie verloren gegangen :?. Da passiert nix spannendes, und man kann es fast 1:1 durch naives Übersetzen übertragen. Bei konkreten Fragen steht die DP ja immer zur Seite :)

ghost007 12. Sep 2007 20:06

Re: Visualisierung malwieder
 
hm,
ok ich werds ma versuchen ... es muss gehen, da ich einige programme gefunden hab, die das schon machen/können.
Also eine visualisierung auf dem LCD der G15.

MfG - Ghost

EWeiss 13. Sep 2007 11:54

Re: Visualisierung malwieder
 
Zitat:

Zitat von dizzy
Die G15 bietet eine Schnittstelle, der man ein Bitmap zuwerfen kann, welches sie darstellt. Das Display an und für sich kommt ca. an 17-20fps heran, und hat aufgrund seiner niedrigen Auflösung so gut wie keine Belastung der CPU zur Folge. Das ist hier denke ich das kleinste Problem.

Was das SDK in C angeht: Ich kann auch kein C, habs aber schon mal übersetzt :). Leider sind die Quellen während mehrerer Neuinstallationen irgendwie verloren gegangen :?. Da passiert nix spannendes, und man kann es fast 1:1 durch naives Übersetzen übertragen. Bei konkreten Fragen steht die DP ja immer zur Seite :)

Quatsch!
Jede Schnittstelle egal ob über ioport oder Com angesteuert verwendet CPU Resourcen auch über USB (wenn auch nicht so viel)
Das Problem hier ist auch nicht die Schnittstelle sondern das vorbereiten der Daten oder unterstützt das LCD Farbe ?
Wenn nicht mußt du jedes Bild der Vis bevor es auf das Bitmap gezeichnet wird durch einen Filter jagen 'Floyd Steinberg' oder
was auch immer damit das ganze einen Grauschimmer bekommt.

Erzähl mir jetzt nicht das würde die CPU nicht belasten.
Jegliche belastung der CPU vermindert die Framerate mit 100%iger sicherheit liegt sie dann nicht mehr bei 17 Frames schon gar nicht wenn AVS oder ein sonstiges Plugin von Winamp schon 30-80% CPU verwenden.

gruss Emil

ghost007 6. Okt 2007 16:47

Re: Visualisierung malwieder
 
Hallo,
ich bin nu einen schritt weiter und versuche nun die daten auf ein TImage zu zeichnen.

Delphi-Quellcode:
procedure TForm1.Timer1Timer(Sender: TObject);
 var FFTFata : TFFTData; WaveData : TWaveData;
begin
    BASS_ChannelGetData(RecChannel, @FFTFata, BASS_DATA_FFT1024);
    Spectrum.Draw (PaintFrame.Canvas.Handle, FFTFata, TrackX.Position - 40, TrackY.Position - 60);
end;
Jedoch bekomm ich den error

-"Undeclared identifier TrackX"
-"Undeclared identifier TrackY"

Was mach ich falsch?

MfG - Ghost007

turboPASCAL 6. Okt 2007 18:15

Re: Visualisierung malwieder
 
"TrackX" und "TrackY" ist eine TrackBar aus der Demo.
Einfach mal "Track... .Position" löschen und mit den werten spielen.

ghost007 6. Okt 2007 19:38

Re: Visualisierung malwieder
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hi,
ok das problem hab ich somit gelöst :D ... wie dumm von mir das ich das mit dem regler nich gleich gesehen hab :oops:

Nun hab ich ein anderes problem.
Ich bekomm zwar was auf mein Canvas gezeichnet, jedoch nur einmal, und nicht immer wieder.
Was mach ich falsch, alles wichtige is im anhang.

MfG - Ghost007

P.S.: Danke schonmal für eure Hilfe

Rastaman 6. Okt 2007 19:41

Re: Visualisierung malwieder
 
Edit: Oh gott. Vergesst es. Mausrad war wohl im Eimer und dachte die Seite ist zu Ende. Wurde schon längst vorgeschlagen :stupid:

ghost007 6. Okt 2007 20:04

Re: Visualisierung malwieder
 
^^ is ja kein ding, du könntest dir das oben geportete projekt trotzdem anguggen und mir sagen warum die visu nich "läuft".

MfG - Ghost007

Rastaman 6. Okt 2007 20:16

Re: Visualisierung malwieder
 
Ja gut ne. Ich hab von Bass und Sound überhaupt keine Ahnung.
Aber mal n Tipp:

Versuch dir das SDK Beispiel zu übersetzen. Es dürfte nicht so schwer sein und wenn du nicht weiter kommst dann frag hier nach.
Und damit auch zu deinem Wunsch, dass die Visualisierung in deinem Programm laufen soll:
Da du ja als Plugin die Visualisierung zeichnest ist dir auch das Fensterhandle der Visualisierung bekannt.
Schicke einfach per SendMessage das Handle der Visualisierung an dein Programm, welches sie dann per SetParent auf die eigene
Oberfläche transportiert. Hier kannst du das Fenster dann mit SetWindowPos beliebig verschieben und in der Größe verändern.
Klingt komisch, is aber so :zwinker:

ghost007 6. Okt 2007 20:30

Re: Visualisierung malwieder
 
öhm .... ok, ^^ ich dachte eigentlich an das was ich hochgeladen hab. Ich will da wissen warum es nicht geht. um die G15 konkret geht is mir nicht, sondern um das visualisieen generell. und ich bekomms ja fast hin mit dem projekt von oben. aber eben nicht das es eine "flüssige" visualisierung is.

MfG - AuspeX

ghost007 6. Okt 2007 22:06

Re: Visualisierung malwieder
 
gut,
hat sich nu erledigt ... ich hab nur irgendwie das canvas clearen müssen ;)

MfG - Ghost007

turboPASCAL 7. Okt 2007 08:47

Re: Visualisierung malwieder
 
Was soll denn das überhaubt für ein Teil werden ein Plugin (*.dll) für WinAmp oder eine
Standalone Anwendung die auf WinAmp zugreift.

Im ersten Fall gibt es für Delphi schon Templates, meist weil sinnvoll als nonVcl. Also nix Mit Forms etc. man graucht ja nur einen Canvas um sein Zeugs darauf zu Pinseln.

Zusatzanmerkung: Ein Image an sich ist die denkbar schlechteste Möglichkeit Animierte Sachen darzustellen. So eine Imagekomponente ist nur zum darstellen eines Bildes gedacht.
Such mal nach Hier im Forum suchenbitblt und Hier im Forum suchenOffscreenbitmap ...

Im zweitewn Fall hab isch kehne Ahnung von.


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:09 Uhr.

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