![]() |
Re: Bass Player Komponente: TBassDLLPlayer (+ Demos)
Zitat:
Zitat:
Zitat:
Zitat:
Zitat:
Vielleicht kann mal wer anderer probieren, ob bei ihm dieser Fehler auch auftritt. |
Re: Bass Player Komponente: TBassDLLPlayer (+ Demos)
habe jetzt ein wenig das Internet nach diesem Fehler durchforstet, und dabei folgendes gefunden:
Zitat:
![]() Als Lösung schreibt die selbe Person hier, dass man auf eine höhere Version der Bass_FX.dll umstellen soll, dann funzt alles ohne Probleme. Die neueste Version ist derzeit 2.2.0.1, die DLL die in omatas Package drinnen ist, hat Versionsnummer 2.1.0.2. Vielleicht liegt hier der Fehler. Ich habe gerade probiert einfach die dll die automatisch erstellt wird, durch die neue Auszutauschen, was jedoch zu reihenweise Fehlern geführt hat *gg* Im Quelltext wird wohl auch irgendwo stehen, nach welcher Version der Bass_fx.dll gesucht wird.. //Edit: Was ich noch hinzufügen muss: Bass_fx.dll v 2.2.0.1 benötigt auch die neue Bass_dll (2.2) |
Re: Bass Player Komponente: TBassDLLPlayer (+ Demos)
Moin,
so das mit den neuen Versionen habe ich jetzt eingebaut. Ausserdem habe ich die Möglichkeit mit mehr als einer Soundkarte (zur selben Zeit) zu arbeiten entfernt. Da dies mit der bass_fx-Geschichte ja sowieso nicht mehr funktionierte. Wer mehr als eine Soundkarte ansteuern möchte/muss sollte die alte Vorfängerversion benutzen. (ohne bass_fx!) Hoffe, dass der Fehler jetzt nicht mehr auftritt. Edit: Anhang gelöscht. MfG Thorsten |
Re: Bass Player Komponente: TBassDLLPlayer (+ Demos)
@omata: danke wiedermal für deine Arbeit, hast du wieder spitzenmäßig gemacht!!
Habe dein neues PlayerDemo auch gleich getestet, und soweit ich bis jetzt gesehen habe, kommen wirklich keine Fehler mehr!! Nur bei meinem eigenen Programm, bekomme ich den Fehler noch immer :wall: woran ich langsam wirklich verzweifle... |
Re: Bass Player Komponente: TBassDLLPlayer (+ Demos)
Liste der Anhänge anzeigen (Anzahl: 1)
Möchte wer noch eine VIS ?
|
Re: Bass Player Komponente: TBassDLLPlayer (+ Demos)
Hallo turboPASCAL,
habe deine neue Visualisierung mit eingebaut (siehe mein letztes Posting). Habe eben auch noch einen Speicherfehler in einer anderen Visualisierung (Alessandro Cappellozza) gefunden und jetzt behoben. MfG Thorsten |
Re: Bass Player Komponente: TBassDLLPlayer (+ Demos)
Hi omata,
Der BassplayerEx will keine Mod oder *.XM Dateien mehr laden, dann gibt es eine AV. Wenn ein neuer Sound geladen wird sollten die Einstellungen der Eff. zuruchgesetzt werden ? |
Re: Bass Player Komponente: TBassDLLPlayer (+ Demos)
Hallo turboPascal,
danke für den Hinweis. Habe den Fehler behoben (siehe meinen vorvorherigen Post). MfG Thorsten |
Re: Bass Player Komponente: TBassDLLPlayer (+ Demos)
hmm leider habe ich (wie schon zuvor berichtet) in meinem Programm den Fehler beim Laden von Dateien noch immer (mit omatas Komponenten)?!?
Verstehen tu ich das ganze überhaupt nicht weil: 1. Rufe ich genau dieselbe Funktion öfters (zu früherer Zeit) im Programm auf, und da funzt es 2. Bekomme ich die Fehler nicht, wenn ich den Quelltext über Delphi öffne, und dann kompiliere! 3. Ich alles von 100mal durchgegangen bin, und wirklich keinen Fehler finden konnte Trotzdem bin ich mir im klaren, dass der Fehler irgendwo in meinem Code liegen muss.. Ich bin mir aber auch im Klaren darüber, dass alles aus Delphi heraus funzt, direkt übern Explorer aber nicht, was mir sowieso noch nie passiert ist.. bin ratlos :wall: :pale: :gruebel: |
Re: Bass Player Komponente: TBassDLLPlayer (+ Demos)
Hallo kurtm1,
schick mir doch mal dein Projekt. Ich schau es mir gern mal an. MfG Thorsten |
Re: Bass Player Komponente: TBassDLLPlayer (+ Demos)
Ich konnte diesen Gleitkommafehler jetzt reproduzieren und ihn endlich beheben.
Habe eine neue Version hochgeladen ( ![]() MfG Thorsten |
Re: Bass Player Komponente: TBassDLLPlayer (+ Demos)
So, es gibt mal wieder etwas Neues.
Ich habe die Visualisierungen komplett überarbeitet und jetzt ist auch eine Vollbildanzeige möglich. Es gibt eine neue Visualisierung von ![]() ![]() Um dieses Projekt kompilieren zu können benötigt ihr jetzt allerdings Graphics32, das findet ihr ![]() Edit: Anhang gelöscht. Viel Spass damit... Thorsten |
Re: Bass Player Komponente: TBassDLLPlayer (+ Demos)
Ha, nett. Da muss ich doch mal schauen ob ich noch 'ne VIS hinbekome... ;)
(währä es nicht praktisch wenn beim Programmstart gleich eine/ein Frame verfügbar währä) |
Re: Bass Player Komponente: TBassDLLPlayer (+ Demos)
Gute Idee, habe ich korrigiert.
|
Re: Bass Player Komponente: TBassDLLPlayer (+ Demos)
Nun, ich habe mir mal den Code angeschaut. Was mir aufgefallen ist, ist das die Vis eine menge Platz verbrauchen. Wie währe es mit einer Möglichkeit diese auszulagern, zB. als Dll ? So könnte das Programm schlanker und die VIS variabler werden.
![]() |
Re: Bass Player Komponente: TBassDLLPlayer (+ Demos)
hallo zusammen,
ich habe mir mal die bassplayer.exe vom letzten anhang runtergeladen. sie gefiel mir sehr, darum habe ich den source runtergeladen. (BassDllPlayerEx v2[1].3) ich öffnete die Bassplayer.dpr und wollte den source anschauen, doch alles was da drin steht ist folgendes:
Delphi-Quellcode:
wo steckt denn der richtige code von der Bassplayer.exe?
{************************************************************************}
{ } { Version 2.00 by omata (Thorsten) - [url]http://www.delphipraxis.net[/url] } { Edit to Version 2.10 by omata (Thorsten) - [url]http://www.delphipraxis.net[/url] } { Edit to Version 2.20 by omata (Thorsten) - [url]http://www.delphipraxis.net[/url] } { Edit to Version 2.30 by omata (Thorsten) - [url]http://www.delphipraxis.net[/url] } { } {************************************************************************} unit Main; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ComCtrls, ExtCtrls, BassPlayerU, BassTypenU, FrameSoundkarteU, Menus; type TFMain = class(TForm) FrameSoundkarte: TFrameSoundkarte; private { Private-Deklarationen } public { Public-Deklarationen } end; var FMain: TFMain; implementation {$R *.dfm} end. |
Re: Bass Player Komponente: TBassDLLPlayer (+ Demos)
Du musst die anderen Forms aufmachen, und dann den Code ansehen, der diese Formulare betrifft.
Da ist dann alles drinnen |
Re: Bass Player Komponente: TBassDLLPlayer (+ Demos)
ach so ist das programm aufgebaut...
geht denn das nicht alles auf eine form? ich blicke nämlich gar nicht richtig durch, da alles so aufgeteilt ist. ich wollte ein neues projekt beginnen mit der BassDLLPlayer-Komponente, jedoch habe ich keine ahnung wie ich anfangen soll. ich weiss nicht mal, wie ich diese komponente bei Delphi 2005 installiere :gruebel: ich könnte mir vorstellen, dass es grauenhaft kompliziert ist, auf eine leere form einen TBassDLLPlayer zu setzen, und diesen dann auch überall richtig zu verknüpfen, z.B. dass auch eine Visualisierung angezeigt wird usw. oder geht das irgendwie so:
Delphi-Quellcode:
:?:
BassDLLPlayer.VisualisierungImage := Image1
|
Re: Bass Player Komponente: TBassDLLPlayer (+ Demos)
Ich hab dir hier mal schnell die wichtigsten Sachen rausgschrieben:
Delphi-Quellcode:
Das ist mal das Wichtigste zum Anlegen eines Players, sowie einem Channel.
var
Player: TBassPlayer; ChannelA:TBassChannel; [..] Player:=TBassPlayer.Create(1,Self); ChannelA:=Player.addChannel(Startlautstärke in %); Den Rest findest du eh in der Demo von omata |
Re: Bass Player Komponente: TBassDLLPlayer (+ Demos)
aaaah, ja, jetzt kann ich schonmal songs abspielen :dancer:
wie kann ich jetzt eine visualisierung anzeigen lassen? einen equalizer wäre auch nicht schlecht... bei der demo blicke ich wie gesagt nicht so richtig durch, ich habe die stelle nirgens gefunden, wo die Vis mit dem player "verbunden" wird |
Re: Bass Player Komponente: TBassDLLPlayer (+ Demos)
Zitat:
Delphi-Quellcode:
Wobei die erste Zahl für die hz steht, und die zweite für die "Breite" des Bandes.
ChannelA.Equiliser.addBand(80,10,0);
... So erstellst du mal beliebig viele Bänder. Dann gehts weiter:
Delphi-Quellcode:
-> damit erhöhst du das Band 0 um 3db
ChannelA.Equiliser.SetIndexGain(0,3);
Damit das dann alles noch wirkt musst du ChannelA.Equiliser.Start wählen Und bei der Visualisierung musst du dir die einzelnen Units ansehen, und dann noch herausfinden, wo das ganze gezeichnet wird hth |
Re: Bass Player Komponente: TBassDLLPlayer (+ Demos)
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:
ich habe es versucht, doch ich komme kein bisschen weiter :wall: kann vielleicht jemand zu meinem kleinen projekt (1 form und 3 buttons) eine visualisierung "hineinbasteln"? danach werde ich den code natürlich auch gründlich studieren. wäre wirklich nett wenn das jemand machen würde :angel: gruss urbanbruhin |
Re: Bass Player Komponente: TBassDLLPlayer (+ Demos)
So ich habe die bestehende
![]() Die Länge von VBR MP3s wird jetzt richtig berechnet und der Phaser macht jetzt auch wieder was er soll. Vielen Dank an kurtm1, für die Hinweise. MfG Thorsten |
Re: Bass Player Komponente: TBassDLLPlayer (+ Demos)
Zitat:
Man müsste sich nur auf eine gemeinsame Schnittstelle oder gemeinsame Entwicklung einigen. |
Re: Bass Player Komponente: TBassDLLPlayer (+ Demos)
Das soll ja nicht das Problem sein. ;)
Ich dachte mir dass das VIS-Fenster im Programm selbst einfach nur ein Panel oder irgend ein Control ist. In der DLL wird dann selbst ein Fenster erzeugt und dieses als Parent an das Fenster im Programm gehangen. Das macht dann die Sache unabhängig, zB. ob in der DLL OpenGL, GDI oder DirectX zum Zeichnen der VIS verwendet wird. Möglich sollte ja auch noch das / ein Einstelungs Formular sein, da habe ich aber noch keine richtige Idee. //Edit: Ich habe dazu mal einen Thread eröffnet: ![]() |
Re: Bass Player Komponente: TBassDLLPlayer (+ Demos)
Ich nutze die Komponente TBassDllPlayerEx, Version 2.0 von Omata.
Nun wollte ich auch einen Equalizer einbauen, bekomme dabei jedoch immer Fehlermeldungen. Ich hoffe, dass ihr mir ein wenig weiterhelfen könnt. Hier mal ein paar markante Stellen des Quellcodes:
Delphi-Quellcode:
procedure TChannelForm.EqualizerClick(Sender: TObject); // Equalizer ist eine Checkbox
begin if Equalizer.Checked then Channel.UpdateEQ(20-EQ1.Value, 20-EQ2.Value, 20-EQ3.Value, 20-EQ4.Value, 20-EQ5.Value, 20-EQ6.Value, 20-EQ7.Value, 20-EQ8.Value, 20-EQ9.Value, 20-EQ10.Value) // Bei diesem Aufruf meldet er immer einen Fehler: // Es ist ein Fehler aufgetreten. EQ kann nicht eingestellt werden else Channel.RemoveEQ; end;
Delphi-Quellcode:
EQ1 - EQ10 sind TJvxSlider.
procedure TChannelForm.EQ1Change(Sender: TObject);
begin if Equalizer.Checked then Channel.UpdateEQ(20-EQ1.Value, 20-EQ2.Value, 20-EQ3.Value, 20-EQ4.Value, 20-EQ5.Value, 20-EQ6.Value, 20-EQ7.Value, 20-EQ8.Value, 20-EQ9.Value, 20-EQ10.Value); end; |
Re: Bass Player Komponente: TBassDLLPlayer (+ Demos)
Ich habe mir deine Dateien nicht angesehen, aber jedes EQ Band kann "nur" um 15db geändert werden -> Wahrscheinlich wird der Fehler hier sein, dass du in deinen Zeilen "20-EQ1.Value" schreibst
|
Re: Bass Player Komponente: TBassDLLPlayer (+ Demos)
Hallo Hador,
wenn ich das UpdateEQ da so sehe, dann hast du noch die nichtüberarbeitet 2.0 Version schau mal ![]() Die Versionen sind ja identisch, bis auf den Equalizer und die Spezialfunktionen. MfG Thorsten |
Re: Bass Player Komponente: TBassDLLPlayer (+ Demos)
@ kurtm1:
Nein das kann nicht der Grund sein, da das ganze ja erstmal in 0-Stellung geschiet. @ omata: Danke - ich werde mir die Kompo mal angucken. ------------- Also da war schon sop einiges andes als bei der die ich vorher genutzt habe. Aber jetzt funktioniert es endlich :thumb: Ich hoffe nur, dass das ganze nachher auch noch auf meinem alten PC läuft :???: |
Re: Bass Player Komponente: TBassDLLPlayer (+ Demos)
hi,
ich wollte mal fragen wie man die länge des tracks ermittelt. am besten in sekunden oder als zeitformat. ich habe mir das etwa so vorgestellt:
Delphi-Quellcode:
Gruss
var zeit: integer;
begin ChannelA.loadfromfile('blabla.mp3'); ChannelA.Play; zeit := ChannelA.TimeInSec; // TimeInSec gibts ja nicht, wie muss ich das machen?? ChannelA.Stop; end; urbanbruhin |
Re: Bass Player Komponente: TBassDLLPlayer (+ Demos)
Hallo urbanbruhin,
versuch es mal so...
Delphi-Quellcode:
oder auch
LaUp.Caption := BassChannel.SongTimeInfo[SongTimeUp].asMilliSecString;
LaDown.Caption := BassChannel.SongTimeInfo[SongTimeDown].asMilliSecString; LaLength.Caption := BassChannel.SongTimeInfo[SongTimeLength].asMilliSecString;
Delphi-Quellcode:
MfG
LaUp.Caption := BassChannel.SongTimeInfo[SongTimeUp].asSecString;
LaDown.Caption := BassChannel.SongTimeInfo[SongTimeDown].asSecString; LaLength.Caption := BassChannel.SongTimeInfo[SongTimeLength].asSecString; Thorsten |
Re: Bass Player Komponente: TBassDLLPlayer (+ Demos)
hi,
also ich habe es mal versucht, jedoch spuckt er immer diese fehlermeldung aus: Zitat:
urbanbruhin |
Re: Bass Player Komponente: TBassDLLPlayer (+ Demos)
Nimm die Unit BassTypenU mit in die Uses-Klausel auf.
oder:
Delphi-Quellcode:
type TBassSongStatusInfo = (SongTimeUp, SongTimeDown, SongTimeLength);
|
Re: Bass Player Komponente: TBassDLLPlayer (+ Demos)
ah, ja jetzt gehts!
thx :mrgreen: gruss urbanbruhin |
Re: Bass Player Komponente: TBassDLLPlayer (+ Demos)
hallo, ich bins wieder mal...
ich wollte fragen wie ich auf die einstellungen der visualisationen zugreifen kann. das habe ich schon mal:
Delphi-Quellcode:
wie kann ich jetzt auf die einstellungen direkt zugreifen, ohne Vis.GetVisSteuerung (TFrame) anzeigen zu lassen?
var
vis: TFrameVisTurboPascal; // onFormCreate: Vis := TFrameVisTurboPascal.create(self); // onFormCLose: vis.free; also ich möchte das, was man "von hand" im einstellungs-frame ändern kann, mit eigenem code ändern? ich hoffe ihr versteht mein problem... gruss urbanbruhin |
Re: Bass Player Komponente: TBassDLLPlayer (+ Demos)
In den einzelnen Visualisierungsklassen gibt es immer die Paint-Methode, in dieser wird über die Properties auf den jeweiligen Einstellungensframe (wenn vorhanden) zugegriffen.
Die Frage ist also wie möchtest du die Einstellungen verändern? automatisch? oder auch mit Komponenten (genau wie auf dem Einstellungsframe) - das verstehe ich jetzt nicht so ganz. MfG Thorsten |
Re: Bass Player Komponente: TBassDLLPlayer (+ Demos)
also ich probiers nochmal zu erklären...
Ich möchte das, was im einstellungsframe eingestellt werden kann, in einer Ini-datei speichern. beim nächsten start des programmes sollen die einstellungen wieder geladen werden, dass wieder die gleiche visualisation angezeigt wird. dazu muss ich ja auf die verschiedenen einstellungen zugreifen können. Vielleicht mache ich dann später auch ein eigenes einstellungsfenster, mit anderem design usw. ich hoffe du verstehst jetzt was ich meine. gruss urbanbruhin |
Re: Bass Player Komponente: TBassDLLPlayer (+ Demos)
@omata:
Habe jetzt endlich mal Zeit gefunden, die letzte Version deiner BassSource in mein Programm einzubinden. Jetzt funktioniert alles perfekt (VBR Tracklength, FX-Effekte), nur bei ein paar wenigen Songs bekomme ich komischerweise wieder eine "Ungültige Gleitkommaoperation", was aber in den vorherigen Versionen auch schon aufgetreten ist. Weiß nicht, ob das Problem an meinem Code, oder einem Fehler in den Bass-Klassen liegt, vielleicht kannst du dir das Problem mal ansehen, wenn du Zeit hast. //edit: Dafür habe ich gerade bemerkt, dass mit den neuen Klassen der EQ nicht mehr funzt, auch im DemoPlayer |
Re: Bass Player Komponente: TBassDLLPlayer (+ Demos)
@kurtm1: Oh, da ist was schiefgelaufen. Habe
![]() Das mit der Fehlermeldung kann ich nicht nachvollziehen. eventuell müsstest du mir mal eine Datei schicken, wo dieser Fehler auftritt. @urbanbruhin: ja, jetzt verstehe ich was du meinst. Habe mich auch gerade mal dran gemacht. Musste dann allerdings feststellen, das diese Einstellungen dann natürlich für jeden Channel einzeln abgespeichert werden müssen. Da mein Beispiel keine Einschränkungen haben soll, sehe ich jetzt noch nicht ob das so sinnvoll ist das in mein Demo mit einzubauen. Im Prinzip ist es ganz einfach. In den Einstellungsframe der jeweiligen Visualisierung wird einfach der Kontruktor und Destruktor überschrieben und dann wird einfach die Lade- bzw. Speichermöglichkeit hinzugefügt (z.B. Ini-File oder sonst was...) und das war es dann auch schon. MfG Thorsten |
Re: Bass Player Komponente: TBassDLLPlayer (+ Demos)
Zitat:
ad2: Werde nochmal selbst suchen, ob ich irgendwas finde, ansonsten werde ich auf dein Angebot zurückkommen, thx |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:14 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