![]() |
Re: Bass Player Komponente: TBassDLLPlayer (+ Demos)
Zitat:
Also eigentlich nicht wie man ihn abfragt, sondern wie man ihr verarbeitet, denn unter TPlayerStatus kann ich mir nichts vorstellen... |
Re: Bass Player Komponente: TBassDLLPlayer (+ Demos)
Delphi-Quellcode:
TPlayerStatus = (sndStopped, sndPlaying, sndStalled, sndPaused, sndNotLoaded);
Delphi-Quellcode:
if BassdllPlayer1.Status in [sndStopped, sndStalled, sndPaused, sndNotLoaded] then;
if BassdllPlayer1.Status in [sndStopped, sndStalled] then; if BassdllPlayer1.Status in [sndNotLoaded] then; if BassdllPlayer1.Status in [sndPaused] then; if BassdllPlayer1.Status in [sndPlaying] then; // oder auch: if BassdllPlayer1.Status = sndPlaying then; |
Re: Bass Player Komponente: TBassDLLPlayer (+ Demos)
Ich habe die Recording-Seite des BassPlayerEx erweitert. Dies hatte ich
![]() Nun hänge ich aber diesen Code auch hier mal ran, damit alles zusammenhängender ist. Edit: Anhang gelöscht. MfG Thorsten |
Re: Bass Player Komponente: TBassDLLPlayer (+ Demos)
So, nachdem
![]() Über diesen kann man jetzt die Aufnahme beeinflussen. Hören kann man das allerdings nur, wenn man das Aufgenommene abspielt. Wie auch immer, es ist die konsequente Weiterentwicklung des Bestehenden... Edit: Anhang gelöscht. MfG Thorsten |
Re: Bass Player Komponente: TBassDLLPlayer (+ Demos)
Vielleicht auch noch Interessent:
Wer auf die schnelle eine Oszilloskop Darstellung für den TBassDllPlayer oder BassDllPlayerEx braucht kann u. A. ![]() |
Re: Bass Player Komponente: TBassDLLPlayer (+ Demos)
Hallo, das habe ich gleich mal mit aufgenommen.
Die Möglichkeit für mehr Visualisierung habe ich jetzt integriert. Das ganze ist Modular aufgebaut. Edit: Anhang gelöscht. MfG Thorsten |
Re: Bass Player Komponente: TBassDLLPlayer (+ Demos)
Liste der Anhänge anzeigen (Anzahl: 3)
Ich habe noch ein bissel aufgeräumt und hier und da noch ein wenig geändert.
Ich möchte mich hiermit bei Euch beiden und auch den anderen, bedanken für eure Arbeit |
Re: Bass Player Komponente: TBassDLLPlayer (+ Demos)
So ich möchte mich nach längerer Abwesenheit wiedereinmal bei diesem Thread/Thema zurückmelden.
Also inzwischen hat sich ja auf dem Bass Sektor wieder viel getan, und daher möchte ich die Entwickler dieser Komponente fragen, ob ihr nicht vielleicht wieder Lust hättet ein paar neue Funktionenzu integrieren *gg* Konkret würde es darum gehen, die Bass_FX.dll in die Komponente einziehen zu lassen. Hier gibts die Komp.: ![]() Hier der direkte Download: ![]() Kleiner Auszug was die DLL kann: # DSP effects: EQ, Flanger, Echo, Rotate, Phaser, Reverb, ... # Tempo / Pitch Scaling / Sample Rate changers # Reverse playback # BPM detector Wäre super wenn ihr diese Effekte wieder für jeden Kanal in die Komponente integrieren könntet! mfg. kurtm1 |
Re: Bass Player Komponente: TBassDLLPlayer (+ Demos)
Hallo kurtm1,
das ist eine tolle Idee und ich würde das auch sehr gern machen. ABER, dann müssen wir leider von der Dll als Recource weg. Ich habe mich nämlich schon damit beschäftigt. Die zusätzlichen Dlls benötigen die Bass.dll. Da wir über die DllLoader-Unit die Bass.dll in den Speicher laden, werden die Dll-Mechanismen von Windows ausgehebelt. Das heisst, Windows weiss nicht, dass die Bass.dll schon geladen ist und somit weiss es auch nicht die FX-Dll und dann gibt es eine Zugriffsverletzung. Das ist sehr schade und ich habe auch schon versucht, dass Problem zulösen. Leider ohne Erfolg, bis jetzt. Bin für Vorschläge öffen. MfG Thorsten |
Re: Bass Player Komponente: TBassDLLPlayer (+ Demos)
stimmt, daran habe ich gar nicht gedacht...
|
Re: Bass Player Komponente: TBassDLLPlayer (+ Demos)
dann müsste man irgendwie rausbekommen was die bass_fx.dll genau macht, und dies dann in die Komponente integrieren..
Bzw. wieder von der Möglichkeit der Komponente weggehen, und die Bass.dll direkt einbinden und nutzen... hmm |
Re: Bass Player Komponente: TBassDLLPlayer (+ Demos)
Wollte mal wieder nachfragen, ob es in der Sache bass_fx.dll vielleicht schon eine Lösung gibt?
Ansonsten kann man halt auch nichts machen, wobei ich wiedermal sagen muss, dass die Komponente so wie sie jetzt ist, eh schon der Hammer ist. Das einzige was mir wirklich fehlt (deswegen bass_fx.dll) ist die Möglichkeit Pitch + Tempo zu ändern. Derzeit gibt es ja "nur" die Funktion Pitch, die ja Geschwindigkeit und daraus resultierend auch die Tonhöhe ändert. Ich bräuchte noch eine Funktion "Tempo" mit der bei der wirklich nur die Geschwindigkeit geändert wird, und die Tonhöhe automatisch ausgeglichen wird... vielleicht weiß dafür ja wer von euch eine bass_fx.dll unabhängige Lösung //edit: gibts vielleicht auch irgendwie eine Möglichkeit die SRS-WOW Effekte (wie beim WMP) einzubinden? |
Re: Bass Player Komponente: TBassDLLPlayer (+ Demos)
So, habe mich mal wieder damit beschäftigt.
Es gibt nun die Version 2.1 vom BassDllPlayerEx und dieser kann jetzt unbegrenzt mit anderen Dlls aufgebohrt werden. Allerdings musste ich mich nun von der DllLoader-Unit verabschieden. Die Dlls sind in der EXE integriert, werden dann aber extrahiert (wenn nicht vorhanden) und geladen. Wundert euch also nicht, wenn plötzlich wieder die bass.dll und bass_fx.dll im Verzeichnis auftauchen. Vorteil ist aber, dass nur die EXE weitergegeben werden muss. Ich konnte leider noch nicht testen, ob das so auch komplett mit mehr als einer Soundkarte funktioniert. Wäre schön, wenn das vielleicht mal einer prüfen kann. Die Funktionen der bass_fx.dll stehen also jetzt im Prinzip zur Verfügung. Ich habe noch nicht alle Möglichkeiten durch das BassChannel-Object zugänglich gemacht. Vielleicht habt ihr da ja noch Ideen. Edit: Anhang gelöscht. MfG Thorsten |
Re: Bass Player Komponente: TBassDLLPlayer (+ Demos)
Geil geil geil
Die neue Version ist einfach nur der Wahnsinn. 1000mal thx und großen Respekt vor deiner Arbeit!!! *thumbs up* Die Tempo Funktion und auch das andere neue Zeugs sind einfach super!! :D |
Re: Bass Player Komponente: TBassDLLPlayer (+ Demos)
So, es gibt jetzt wieder was neues. (siehe vorherigen Post)
Habe eine neue Visualisierung eingebaut (ähnlich SRS) MfG Thorsten |
Re: Bass Player Komponente: TBassDLLPlayer (+ Demos)
Hallo,
das was du geleistest hast ist excellent, bis auf: dein Code ist fast unlesbar. Geize doch bitte nicht mit Leerzeichen. Einrückungen machen den Code übersichtlicher. ( Aber bitte nicht nur ein blank ) Das ist aber alles Ansichtssache, also mach weiter! Gruss Rainer |
Re: Bass Player Komponente: TBassDLLPlayer (+ Demos)
Wie jetzt?
Ich denke der vorherige Post kann nicht zu diesem Thema gehören. Wieso ist mein Code unlesbar. Alles ist modular aufgebaut. Es sind absichtlich viele kleine Unit, die für sich genommen abgeschlossen sind. Funktioneller Zusammenhang ist in den Unit gegeben und auch zwischen den Unit. Die Namensgebung ist mit bedacht gewählt. Ich rücke immer mit zwei Leerzeichen ein. Den eingefügten Code von anderen (der auch speziell gekennzeichnet ist) habe ich auch übersichtlich umformatiert. Falls dieser Kommentar auf die Bass-Deklarationen zielte, die habe ich ausnahmsweise mal so übernommen. Also ich kann hier nicht begreifen was dieses Kommentar sollte, besonders das Einrücken und das modulare Konzept des Gesamtsystems lag mir sehr am Herzen. Also wenn das hier einer als unübersichtlich betietelt, dann weiss ich auch nicht mehr weiter. Sorry, aber das macht mich jetzt echt traurig. Bis dann Thorsten |
Re: Bass Player Komponente: TBassDLLPlayer (+ Demos)
@omata: nimms nicht ernst :D
Also so wie du den Code geschrieben hast, find ich das 1A (vorallem, dass du den Code gschrieben hast) Jetzt muss ich mir nur noch ansehen, wie man jetzt den BassPlayer und die Channels einbindet, dann gehts bald wieder ans coden.. |
Re: Bass Player Komponente: TBassDLLPlayer (+ Demos)
Wenigstens einer der zu mir hält.
@kurtm1: danke. @runger: Bitte zeig mir doch mal eine Stelle im Code, die unübersichtlich ist. Und dann zeig mir mal bitte wie du diese vermeindlich unübersichtliche Stelle übersichtlicher gestalten würdest. In voller Erwartung Thorsten |
Re: Bass Player Komponente: TBassDLLPlayer (+ Demos)
@runger:
Na toll, letzter Besuch: 16.11.2005, 09:37 (also heute morgen) Wieso bekomme ich dann keine Antwort? Herumlästern, aber wenn es dann konkret wird kein Kommentar mehr abgeben. Das habe ich gern. Leicht seucherliche Grüße Thorsten |
Re: Bass Player Komponente: TBassDLLPlayer (+ Demos)
naja Kritiker gibt es immer, egal was man macht...
Wobei: runger hat ja auch was gutes geschrieben Zitat:
|
Re: Bass Player Komponente: TBassDLLPlayer (+ Demos)
So, leider habe ich eine schlechte Nachricht zu verkünden.
Ich war dieses Wochenende mal wieder zu hause und dort konnte ich endlich den besagten Test durchführen. Welcher Test? Na ganz einfach: was passiert, wenn man mehr als eine Soundkarte hat? In meinem Musikstudio habe ich eine Maschine mit zwei Soundkarten. Wozu? na ganz einfach, um einen Monitor (zum Vorhören) zu haben. Naja, wie dem auch sei. Leider muss ich euch mitteilen, dass die neue Komponente (v2.1) nicht mehr mehr als eine Soundkarte unterstützen kann. Dieses Problem ergibt sich leider bei der Benutzung von bass_fx.dll diese möchte nämlich auf Funktionen der Bass.dll zugreifen. Deshalb sucht bass_fx.dll auch nach der bass.dll. Da aber leider die Bass-Funktionen nicht als Objekt zur Verfügung stehen, überschreibt die Bass_init-Prozedur die globalen Einstellungen in der bass.dll. Deshalb gewinnt immer die letzte Initialisierung. Schade. Also, wer mehr Funktionen braucht, kann leider nur eine Soundkarte ansprechen. Ich finde das ziemlich be******** aber kann es leider zur Zeit nicht ändern. /* Warum ging es vorher?: Weil die bass.dll für jede Soundkarte extra in den Speicher geladen wurde. Da gab es dann zwei globale, abgeschlossene Bass-Systeme (für jede Soundkarte eine) Und genau dieses geniale Prinzip kann nicht mehr angewendet werden, wenn man die bass_fx.dll benutzen möchte. */ Bin also für Vorschläge offen. MfG Thorsten |
Re: Bass Player Komponente: TBassDLLPlayer (+ Demos)
hmm also mir ist es im prinzip egal, ob es für mehrere Soundkarten geht, da ich sowieso immer nur für eine code..
Trotzdem hätte ich eine Bitte, und zwar ob du vielleicht kurz (wie wir es schon einmal hatten) schreiben kannst, welche CodeZeilen man jetzt braucht um die dlls einzubinden, und dann um Channels anzulegen, etc. Würde denk ich vielen helfen! (inklusive mir :D) thx |
Re: Bass Player Komponente: TBassDLLPlayer (+ Demos)
Da brauch ich eigentlich nicht viel zu schreiben...
Das geht wie gehabt. Die Zusatzfunktionen der bass_fx.dll stehen sofort zur Verfügung.
Delphi-Quellcode:
Hoffe das hilft weiter.
BassChannel.Tempo:= -30..30; // Tempo verändern
BassChannel.Samplerate:= z.B.: 30870..57330 // Samplerate verändern BassChannel.Pitch:=-30..30; // Pitch verändern MfG Thorsten |
Re: Bass Player Komponente: TBassDLLPlayer (+ Demos)
aha thx.
Und die bass.dll / bass_fx.dll sollte wahrscheinlich im Programm - Verzeichnis liegen |
Re: Bass Player Komponente: TBassDLLPlayer (+ Demos)
Um die Dll-Dateien brauchst du dir keine Gedanken machen. Wenn sie nicht vorhanden sind, werden sie automatisch erzeugt.
MfG Thorsten |
Re: Bass Player Komponente: TBassDLLPlayer (+ Demos)
Zitat:
|
Re: Bass Player Komponente: TBassDLLPlayer (+ Demos)
Update der TBassDLLPlayer - Komponente von Version 1.23 (bzw. 1.24) auf 1.25 . (
![]() Änderung: Laden aus einer Resource hinzugefügt. Ein Demo ist in den "SimplePayer Demos" enthalten.
Delphi-Quellcode:
function LoadFromResourceName(ResourceName: PChar; ResTyp: TRC_ResourceTyp): Boolean;
Code:
Beispiel:
[b]ResTyp[/b] kann vom Wert RC_MUSIC oder RC_STREAM sein.
- [i][b]RC_MUSIC[/b][/i] gibt an das es sich bei der Resource um eine Musicdatei (*.mod, *.it, *.xm ...) handelt. - [i][b]RC_STREAM[/b][/i] gibt an das es sich bei der Resource um eine Sampledatei (*.wav, *.mp3, ...) handelt. Der Rückgabewert der Funktion [i]LoadFromResourceName[/i] ist bei Erfolg [i][b]True[/b][/i] anderenfalls [i][b]False[/b][/i]. Die Resourcen müssen vom Ressourcentyp [i]RCDATA[/i] sein.
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin // Load Music from Resource if not BassdllPlayer1.LoadFromResourceName('MeineModMusicDaten', RC_MUSIC) then Windows.Beep(880,150); // Start playing BassdllPlayer1.Play; end; procedure TForm1.Button2Click(Sender: TObject); begin // Load Stream from Resource if not BassdllPlayer1.LoadFromResourceName('MeineWavStreamDaten', RC_STREAM) then Windows.Beep(880,150); // Start playing BassdllPlayer1.Play; end; Die Resourcedatei (.rc) sieht dann zB. so aus:
Code:
;Resourcename | Resource Typ | Resourcefile
; MeineModMusicDaten RCDATA "Moddatei.XM" MeineWavStreamDaten RCDATA "Wavedatei.WAV" |
Re: Bass Player Komponente: TBassDLLPlayer (+ Demos)
mal eine Frage:
Gibts zu der Komponente schon irgendwo sowas wie eine Dokumentation, zu dem Einbau, Verwendung der Funktionen etc? Ansonsten würd ich mich eventuell bereit erklären, sowas anzugehen :D |
Mir ist was anderes aufgefallen (kann sein dass es in zwischen behoben ist):
Bei BassDllPlayer1.GetSongLengthAsString bekommt man nicht die Länge, sondern die aktuelle Trackposition als String. Es müsste also BassDllPlayer1.GetSongPosAsString oder so heissen, oder nicht? Gruß Mister X |
Re: Bass Player Komponente: TBassDLLPlayer (+ Demos)
Zitat:
Im Moment binich ab Umbauen der Kompon. auf Bass 2.2 sowie "Multichannel"-System wie bei der BassDLLEx. Es wird zwei Version geben, bei der ersten wird die Bass.Dll mit eingebunden wird und bei der anderen nicht. So oder so ähnlich... Das wird aber noch dauern. Wenn du eine Dokumentation machen möchtest ist das kein Problem. Zitat:
|
Re: Bass Player Komponente: TBassDLLPlayer (+ Demos)
Wenn ich beim DemoPlayerEX einen neuen Channel hinzufügen will, bekomme ich eine Fehlermeldung, das "LaUp.Font.Color" einen ungültigen Eigenschaftswert hat.
Fehler taucht bei alles Versionen auf. |
Re: Bass Player Komponente: TBassDLLPlayer (+ Demos)
Zitat:
Du brauchst aber nur den Wert im Entwurf ändern, dann funzt es |
Re: Bass Player Komponente: TBassDLLPlayer (+ Demos)
THX, funzt!
|
Re: Bass Player Komponente: TBassDLLPlayer (+ Demos)
Hallo turboPascal
Zitat:
![]() Nerv nerv nerv :mrgreen: Edit: nein wird es nicht, hast du ja bereits gesagt, dass es in der 2.2 auch nicht anders wird/ möglich ist - sorry :oops: |
Re: Bass Player Komponente: TBassDLLPlayer (+ Demos)
Zitat:
Wie merkst du denn dass die Songs nicht freigegeben werden? Ich hatte das Problem auch mal (dadurch wurde immer mehr Speicher benötigt), habe das dann aber gelöst indem ich eine Zeile Quelltext weggelöscht habe. //EDIT: Hier ist der Post dazu ![]() |
Re: Bass Player Komponente: TBassDLLPlayer (+ Demos)
Moin,
habe ich gemerkt indem ich einen Titel umbenennen oder löschen wollte und es vorher grad gespielt wurde. Da bin ich stuzig geworden..... Vielen Dank für den Ansatz, werd ich mit großer Neugierde testen, denn ich habe meinen ganzes Programm dahingehend geändert, dass ich zwischen jedem Titel den Bassdllplayer immer komplett freigebe. Wenn ich deine Lösung gebacken bekomm hau ich mir zwar die Hand an den Kopf, weil ich alles umsonst geändert hab, ABER, dann wär´s wenigstens "ordentlicher" :wall: :wall: :wall: Gruß Padavan Edit: Zitat:
weder hier: BassdllPlayer.pas noch hier: Bass_Dynamic.pas noch hier: DLLLoader.pas :gruebel: |
Re: Bass Player Komponente: TBassDLLPlayer (+ Demos)
Zitat:
|
Re: Bass Player Komponente: TBassDLLPlayer (+ Demos)
@omata:
Ich bin jetzt durch mein eigenens Programm draufgekommen, dass in den Units von dir irgendwo ein kleiner Fehler sein muss. Und zwar passiert dieser beim Laden einer Datei (TBassChannel.LoadfromFile()). Bei deinem Demoplayer (v2.1) bekomme ich nämlich auch manchmal diesen Fehler ("Ungültige Gleitkommaoperation"). Wobei es seltsam ist, dass dieser Fehler nur auftaucht, wenn man das Programm über den Explorer startet, aus Delphi heraus gibt es keine Probleme (siehe: ![]() Vielleicht kannst du eine kleine Rückmeldung geben, ob du dir vorstellen kannst, was es da hat. |
Re: Bass Player Komponente: TBassDLLPlayer (+ Demos)
So, bin wieder da...
Also, das Freigeben eines Liedes erfolgt beim Beenden des Programms, beim Neuladen eines Liedes oder beim Löschen eines Channels. Das heisst man kann ein Lied erst umbenennen oder löschen, wenn man den Channel, in dem es geladen wurde mit einem anderen Lied lädt, den Channel aus der Channelliste löscht oder das Programm beendet. Stop drücken reicht nicht. So muss das Lied nicht immer wieder neu von der Platte geholt werden. Nur wenn man es wirklich nicht mehr benötigt, wird es entladen. Das ist schon seit der 1. Version so. Habe ich gerade mal getestet. Und was dieser komische Gleitkommafehler angeht, habe ich keine Ahnung was ihr da meint. Bei mir ist dieser Fehler noch nicht aufgetreten. Liegt das vielleicht an der MP3-Datei? Was genau habt ihr an? Eine Visualisierung? Was meint ihr mit aus dem Explorer starten? Verändert ihr die Compilereinstellungen für die Prüfroutinen? Ist der Fehler reproduzierbar? Verwirrte Grüsse, Thorsten |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:37 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