![]() |
Probleme mit Bass_Vis
Ich habe gelesen das sich hier einige Leute mit der Bass.dll beschäftigen.
Auch ich bin ein Fan dieser Library habe allerdings einige Probleme was den Source von Bass_Vis angeht. Bin VB-Programmierer (jaja) Sorry Die Bass_Vis lib kann über alle Tonquellen direct den Sound Visualisieren dazu werden Sonique und Winamp Plugins verwendet! Es gibt zwei Versionen eine für 2.9 und 5.0 Plugins. Leider gibt es aber einige Probleme mit der DLL. Da ich in Delphi nicht so gewand bin möchte ich fragen ob sich jemand dafür interessieren würde und gegebenfalls den Quelltext vervollständigt. Der Author hat keine Lust oder Zeit diesen fertig zu stellen. Bei der 5.0 soll ein Bufferunderound auftreten. Die 2.9 macht probleme mit der Konfiguration bzw.. den richtigen Pfad der Plugins damit diese ihre Daten lesen können. Hab es mal mit SetEnvironment versucht bin aber kläglich gescheitert! Würd mich über Antworten freuen! Vielleicht bekommen wir das hier hin? :wink: Hier die Links zu den SourceCode.. ![]() ![]() Grüße Nachtrag: Die Bass DLL kann über %PATH% in jedes x-beliebiges verzeichnis kopiert werden Läuft so zumindest super bei mir in VB ! |
Re: Probleme mit Bass_Vis
Hallo BassFan,
wenn es dir darum geht eigene Winamp-Vis-Dlls zuschreiben, kannst du auch mal ![]() Gruss Thorsten |
Re: Probleme mit Bass_Vis
Liste der Anhänge anzeigen (Anzahl: 2)
Zitat:
Nein damit ist mir leider nicht geholfen. Die DLL funktioniert ja soweit bis auf die Maken das die konfiguration nicht richtig läuft. Diese läd alle verfügbaren Winamp-Plugins in ne Listbox von wo man sie dann auswählen kann. Und laufen tut sie mit der Bass.dll |
Re: Probleme mit Bass_Vis
Liste der Anhänge anzeigen (Anzahl: 2)
Falls es jemand Interessiert hier ist mein Player (kleine Reklame)
Benutze Bass.dll 2.2 , Bass_FX 2.2 , und Bass_Vis nur für die Winamp und Sonique Visualisierung Gruß |
Re: Probleme mit Bass_Vis
Ich werds mal selbst versuchen ..
Zuerst eine Frage. Wie übersetze ich das C ++ schnipsel nach Delphi ?
Delphi-Quellcode:
Procedure ?, Function ?
HWND WINEXPORT BASS_WA_GetVisHwnd(void)
{ HWND visHwnd; visHwnd = vis_Window_Emu; return visHwnd; } Sorry hab nicht die ahnung will aber lernen. :wink: Habe es mal so gemacht!
Delphi-Quellcode:
ist das OK?
function BASS_WINAMPVIS_GetVisHwnd(): Integer; stdcall;
var visHwnd: Integer; VisInfo: PWinampVisInfo; begin visHwnd := VisInfo^.WinHandle; Result := visHwnd; end; |
Re: Probleme mit Bass_Vis
JA.
|
Re: Probleme mit Bass_Vis
Zitat:
Habe es noch leicht abgeändert da VisInfo vorher nicht richtig initialisiert worden ist. Fehlte auch noch die übergabe von chan=handle des Plugin.
Delphi-Quellcode:
gruß
function BASS_WINAMPVIS_GetVisHwnd(handle: HVIS): DWORD; stdcall;
var visHwnd: DWORD; VisInfo: PWinampVisInfo; begin VisInfo:= PWinampVisInfo(handle); visHwnd:= VisInfo^.WinHandle; BassFuncs^.SetError(BASS_OK); Result := visHwnd; end; |
Re: Probleme mit Bass_Vis
Ich habe mich auch eine Weile mit der BassVis.Dll beschäftigt, aber die Sourcecodes der DLL sind noch ein wenig Buggy. Bei mir kam es des öfteren zu einer AV.
Was spricht dagegen sich einen Loader für das laden/abspielen der Vis-DLL's von Winamp selbst zu bauen ? |
Re: Probleme mit Bass_Vis
Zitat:
Insoweit funktioniert es auch nicht so schlecht bei den Sonique Plugins habe ich noch keinen absturz gehabt. Bei Winamp laufen über vis_Mux auch alle Plugins ohne Probleme. Nur das will ich nicht .. ist ein problem für mich den richtigen Ansatz zu finden wo das mit der konfig zu finden ist. Kann meines erachtens nur am erstellen des Winamp-Emu Fenster liegen. Plugins welche über eine eigene Titelbar verfügen laufen ja einwandfrei. Aber alles was keine hat macht probleme. Die function mit dem HWND hat noch gefehlt man konnte aus seiner Anwendung nicht feststellen was passiert wenn das Plugin selbst geschlossen wird. Jetzt kann man darauf reagieren in dem man einfach das Handle überprüft. gruß |
Re: Probleme mit Bass_Vis
Habe mal dein Plugin VisTurboPascal compiliert und mit Bass_Vis getestet
Kann keine nennenswerte Probleme feststellen. Alle Visualisierungen funktionieren incl. der Konfig(About Dialog) So schlecht ist das Teil also nicht! Visualisierung kommt natürlich nur wenn du eine externe Soundquelle am laufen hast. Na irgendwie werde ich das schon ans laufen kriegen! vis_Dizzy.dll,vis_Cappellozza.dll laufen auch :wink: gruß |
Re: Probleme mit Bass_Vis
Zitat:
|
Re: Probleme mit Bass_Vis
Zitat:
Dann möchte ich auch erst noch das problem mit den ADDOn geklärt wissen. Dann mach ich nee Install und werde ihn igendwo hochladen. gruß |
Re: Probleme mit Bass_Vis
Zitat:
![]() |
Re: Probleme mit Bass_Vis
Zitat:
Hab das Teil mal compiliert und gestartet feine Sache :wink: wäre es möglich nur aus diesen Loader eine Dll zu erstellen? Und ist er in etwa so wie Bass_Vis? Das Problem in VB ist. Kann ohne Wrapper keine Verbindung mit Winamp-Plugins aufnehmen gruß |
Re: Probleme mit Bass_Vis
Hallo BassFan,
das sind mehrere Units, die da miteinander kommunizieren. Ob das in eine Dll auszulagern geht weiss ich nicht, damit habe ich mich noch nicht wirklich beschäftigt. Wieso muss das unbedingt in VB gehen. Nimm doch Delphi... Gruss Thorsten |
Re: Probleme mit Bass_Vis
Zitat:
Will ich ja. Beschäftige mich deshalb mit der Bass_vis :wink: Weiß nicht ob sich das mal jemand angesehen hat. Mein Problem ist ganz einfach (nicht für mich) Wenn ich den Pfad zu den Plugins angebe werden dieses in die Liste geladen so wie in deinen Player. Wenn ich aber vis_AVS starte erkennt das Plugin den Pfad nicht oder was auch immer. Was nicht dargestellt wird ist das Menü, und der Config-Dialog. Dafür muss es doch eine lösung geben das zu beheben :( gruß EDIT: Könntest du dir das nicht einmal ansehen ? :-D |
Re: Probleme mit Bass_Vis
Wirklich niemand da der sich dafür interessiert
und sich an der suche für die lösung des problems beteiligen will? Das wäre aber schade! Zitat:
Wenn die DLL läuft kann sie in den Sprachen C++,Delphi,Paskal,VB genutzt werden Daher verstehe ich de Frage nicht so ganz. hat mit VB doch nichts zu tun! Ich möchte den Quelltext in Delphi hier korrigieren nicht irgendetwas in VB. Deshalb auch der Thread hier. Es nutzt mir nichts wenn ich eine solche Frage bei ActiveVB oder einem anderen Forum für VB stelle. Grüße |
Re: Probleme mit Bass_Vis
Hallo BassFan,
ich würde dir ja gern helfen. Ich habe mich da gestern auch schon dran versucht. Das Problem scheint aber etwas komplizierter zu sein. Da ich aber ab morgen im Urlaub bin werde ich da wohl erst in 6-7 Wochen wieder etwas zu sagen können. Die Idee es in Delphi zu machen war einfach nur die, dass in meinem BassPlayerEx ein wesentlich besserer Pluginloader enthalten ist. Dieser ist allerdings auch wesentlich komplexer und nicht mal eben in eine Dll auslagerbar. Wenn du den einfach benutzen würdest hättest du keine Probleme (Sorry, dass ich den einfachen Weg gehen wollte) Gruss Thorsten |
Re: Probleme mit Bass_Vis
Zitat:
Mein Problem ist halt das meine Player in VB geschrieben ist. Den Programmiere ich jetzt schon seit 1999 ... naja nicht durchgehen. Der einfachste weg für mich ist daher wie schon gesagt das problem mit der konfiguration der plugins zu beheben. nur alleine ohne richtige Delphi kenntnisse dürfte mir das echt schwer fallen. Trotzdem Danke! Vielleicht erbarmt sich ja noch jemand 'meiner' :-D :wink: grüße Edit: Zitat:
|
Re: Probleme mit Bass_Vis
Zitat:
|
Re: Probleme mit Bass_Vis
Zitat:
Habe das Design davon abgeschaut! Allerdings ohne Player im tray. Ansonsten fast die gleichen Funktionen wie beim Max TrayPlayer :wink: Aber in VB geschrieben wird dir also nichts nutzen :( auf den Bildern sind 3 gen_Plugins am laufen .. Mixer,tray,AlbumBrowser Gruß |
Re: Probleme mit Bass_Vis
Habe das Projekt nochmal analysiert!
Was definitiv fehlt. WinampIPC die const: #define IPC_GETINIFILE 334 // returns a pointer to winamp.ini #define IPC_GETINIDIRECTORY 335 // returns a pointer to the directory to put config files in (if you dont want to use winamp.ini) Übersetzt:
Delphi-Quellcode:
Mein Problem nun das übersetzen des C++ Schnipsel.
IPC_GETINIFILE = 334;
IPC_GETINIDIRECTORY = 335;
Code:
Würde mich freuen wenn es jemand übersetzen könnte.
case IPC_GETINIFILE:
{ static char szWinampInipath[ MAX_PATH ] = ""; if( *szWinampInipath == '\0' ) { GetModuleFileNameA( NULL, szWinampInipath, MAX_PATH - 1 ); char * szWalk = szWinampInipath + strlen( szWinampInipath ) - 1; while( ( szWalk > szWinampInipath ) && ( *szWalk != '.' ) ) szWalk--; szWalk++; strcpy( szWalk, "ini" ); } return ( LRESULT )szWinampInipath; } case IPC_GETINIDIRECTORY: { // TODO: trailing slash or not??? static char szPluginInipath[ MAX_PATH ] = ""; if( *szPluginInipath == '\0' ) { GetModuleFileNameA( NULL, szPluginInipath, MAX_PATH - 1 ); char * szWalk = szPluginInipath + strlen( szPluginInipath ) - 1; while( ( szWalk > szPluginInipath ) && ( *szWalk != '\\' ) ) szWalk--; szWalk++; strcpy( szWalk, TEXT( "Plugins" ) ); } return ( LRESULT )szPluginInipath; } Dann komme ich hoffentlich etwas weiter Grüße |
Re: Probleme mit Bass_Vis
Seltsames Forum ?
|
Re: Probleme mit Bass_Vis
Zitat:
|
Re: Probleme mit Bass_Vis
Zitat:
Jetzt sind aber 24 Stunden um :lol: grüße EDIT: Aber macht nichts weiter :wink: |
Re: Probleme mit Bass_Vis
Liste der Anhänge anzeigen (Anzahl: 1)
Ok ich habs gebacken !!
Auch fast ohne fremde Hilfe... Obwohl ich mit Delphi noch nicht viel am Hut hatte! Hatte meinen Account zwar schon gelöscht aber das wollte ich doch nochmal zeigen wie es jetzt läuft. Grüße |
Re: Probleme mit Bass_Vis
Zitat:
|
Re: Probleme mit Bass_Vis
Breakpoints setzen beobachten und guter Auffassungsgabe :wink:
Wie es läuft kannst hier testen! ![]() werde mich nun um die 5.0 kompatibilität kümmern. Eine frage noch. Ich habe ja das Dummy Winamp Window als Parent Window auf meinen Player gesetzt Ist es möglich hier die IPC IsPlaying function einzubinden und abzufragen wie der Status ist? Das prob dabei ist auch die Plugins müssen den Status lesen (erkennen) können. Wie kann man das am besten realisieren. Vorallem es so einzubinden das auch andere Anwendungen ohne viel auufhebens ähnlich wie bei Winamp es benutzen können.? grüße |
Re: Probleme mit Bass_Vis
kannst du das vllt hier posten, nicht jeder ist in dem FOrum dort angemeldet ;)
Btw, warum hast du deinen Account gelöscht und dann wieder regiestriert? |
Re: Probleme mit Bass_Vis
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:
Und mir hilft es zu realisieren deshalb habe ich mich hier angemeldet in der Hoffnung das ein Forum (User) bereit sind zu helfen. Aber leider wie bestimmt schon selbst erkannt kam da nichts. :( Ist ja niemand zu verpflichtet aber das gar nichts kommt? Hmmmm Das ist doch ein Forum für Delphi Programmierer ... Grüße |
Re: Probleme mit Bass_Vis
Zitat:
Mit der BAss_Vis hab ich mich schon beschäftigt aber irgend wie ist das noch nicht ausgereift. Ich würde sie gern in meinen eigenen Projekten verwenden um Winampplugins oder eigene Plugins nach Art von Winamp (die DLL's) zu verwenden. |
Re: Probleme mit Bass_Vis
Zitat:
Habe den Quelltext doch hochgeladen hättest also diesen für deine zwecke ändern können :wink: Die Bass_Vis habe ich auch hochgeladen diese von mir modifiziert DLL ist um einiges stabieler als das Original! Wenn ein Fehler auftritt liegt es meisten an den Plugins selbst.. Entweder zu alt oder 5.0. Die muss ich erst noch einbauen. Bekomme mit der FindPlugin Routine immer eine Fehlermeldung beim einlesen der Winamp5.0 Plugins. Muss noch feststellen woran das liegt. SCHWIERIG !!! Weiß nicht wie ich eventuelle Fehler abfangen kann ErrorHandler Funktionen in Delphi sind etwas unübersichtlich. Bei VB kann ich eingeben On Error Resume Next (Fehler wird übergangen) = On Error goto 0 (Letzte Fehlermeldung wird gelöscht) Gibt es sowas in Delphi ? grüße |
Re: Probleme mit Bass_Vis
Zitat:
Zitat:
Zitat:
Zitat:
Weiß nicht wie ich eventuelle Fehler abfangen kann ErrorHandler Funktionen in Delphi sind etwas unübersichtlich. Zitat:
Delphi-Quellcode:
try
// Der Code macht was.. except // Fehlerbehandlung etc. end; |
Re: Probleme mit Bass_Vis
Zitat:
Ja .. Das hab ich schon gesehen muss nur schaun wo ich das im Quelltext ansetze.. Nachdem oder bevor das Winamp Plugin ausgeführt wird. Ist unschön wenn die Schnittstelle abstürzt oder dein Programm in der du sie benutzt wenn das Plugin Fehlerhaft ist. Es müßte eigentlich in einen exeptionHandler sitzen in dem alle fehler abgefangen werden. Egal woher sie kommen! Dafür wäre aber dein schnipsel nicht zu gebrauche .. Oder? Ähnlich sizeOf(ExeptProc) dort alle Fehler abfangen.. Keine ahnung ob sowas in Delphi geht. Solltest du am Wochenende was machen wollen könnte ich dir unter umständen den neuen geänderten Quelltext von mir zuschicken. Vielleicht bekommen wir das zusammen gebacken .. auch mit Winamp5.0 Grüße EDIT: Gibt es eine möglichkeit in Delphi den Quelltext vernünftig zu formatieren ? Hab da in den option nix gefunden. |
Re: Probleme mit Bass_Vis
Habe noch was hinzugefügt!
Vielleicht hast du oder ein anderer noch ne bessere Idee.
Delphi-Quellcode:
Die schnittstelle (alte) ist immer aktiv!
WM_COMMAND: case (wparam) of
WINAMP_BUTTON2: begin IsPlaying := 1; end; WINAMP_BUTTON3: begin IsPlaying := 3; end; WINAMP_BUTTON4: begin IsPlaying := 0; end; end; Was bedeutet 3D Gogo .. das Püpchen ist immer am tanzen egal ob Daten am Ausgang liegen oder nicht. Im moment übergebe ich WM_COMMAND über Sendmessage aus der Anwendung. Die Frage ist die ob man nicht besser die Sendmessage innerhalb der DLL ausführen soll was dem user beim benutzen von BassVis die sache vielleicht vereinfacht. Mein Vorschlag..
Delphi-Quellcode:
Die WinProc muss ich so belassen damit die Winamp Plugins den Status ebenfalls erkennen.
function BASS_WINAMPVIS_PlayState(State: Integer):Integer; stdcall;
//State 0 = Stop //State 1 = Play //State 3 = Pause Ist noch einiges zu tun :wink: Next, Prev und übergabe des Spielenden Titels. Grüße |
Re: Probleme mit Bass_Vis
Schick mir doch mal den Delphiquellcode zu, dann kann ich mal schauen.
Übrigens reicht hier:
Delphi-Quellcode:
auch aus. Nur mal so...
WM_COMMAND:
case (wparam) of WINAMP_BUTTON2: IsPlaying := 1; WINAMP_BUTTON3: IsPlaying := 3; WINAMP_BUTTON4: IsPlaying := 0; else ; // ... ? end; |
Re: Probleme mit Bass_Vis
@BassFan
dein komisches Projekt verursacht immer einen Fehler |
Re: Probleme mit Bass_Vis
Zitat:
Welchen Fehler ? Bitte genauer.. Kann sein das dir die VB Runtimes fehlen. Grüße |
Re: Probleme mit Bass_Vis
Zitat:
obwohl meins auch funktioniert! :-D Wir wollen aber bei der richtigen schreibweise bleiben deshalb Danke ! Mit dem schicken geht jetzt nicht :( bin voll am wirken. |
Re: Probleme mit Bass_Vis
Zitat:
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:11 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