AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte BassPlayerEx mit erweiterten Soundeffekten...
Thema durchsuchen
Ansicht
Themen-Optionen

BassPlayerEx mit erweiterten Soundeffekten...

Ein Thema von omata · begonnen am 15. Mär 2006 · letzter Beitrag vom 24. Jul 2008
Antwort Antwort
Seite 4 von 5   « Erste     234 5      
omata
Registriert seit: 26. Aug 2004
Nachdem wir hier mal gestartet sind und der Thread nun doch langsam unübersichtlich wird, mache ich hier mal was neues auf.
Unübersichtlich deshalb, weil es mittlerweile zwei Varianten gibt. Beide haben ihre Vor- und Nachteile. Und leider habe ich keine Möglichkeit gefunden, alles in einem Projekt zu vereinen.

Dieser Thread beschäftigt sich mit dem Einsatz der Bass.dll und ihrer Erweiterungs-Dlls. Dies alles funktioniert allerdings nur auf einer Soundkarte (pro Anwendung). Wer mehr Soundkarten aus einer Anwendung heraus ansteueren möchte (z.B. für einen Monitor) sollte hier mal schauen.

Die Visualisierungen können jetzt auch als Plugin nachgeladen werden. Die Pluginstruktur ist die von Winamp.
Die Plugins findet ihr hier.


Viele Grüsse
Thorsten
Miniaturansicht angehängter Grafiken
screen_201.jpg  
Angehängte Dateien
Dateityp: exe bassplayer_170.exe (384,5 KB, 337x aufgerufen)
Dateityp: zip bassplayerex__b_3_3__808.zip (309,7 KB, 444x aufgerufen)
Dateityp: zip bassplayerex__b_3_3__143.zip (791,7 KB, 439x aufgerufen)
 
Benutzerbild von rollstuhlfahrer
rollstuhlfahrer

 
Delphi 7 Professional
 
#31
  Alt 29. Jan 2008, 17:04
der letzte Post ist schon etwas länger her.
Ich nutze den BassPlayerEx mit 2 Soundkarten.
Beim durchteten von meinem Programm ist mir aufgefallen, dass wenn ich den EQ munter ein und ausschalte (eq.Start; eq.Stop) die CPU-Anzeige jedes mal um ca. 0,9-1,1 % steigt. Was mir noch aufgefallen ist, ist dass sich die verschiedenen EQs überlagern.
Heißt soviel:
-> 1. EQ an
-> 2. EQ einstellen
-> 3. EQ aus

-> Schritte 1 bis 3 mehrmals wiederholen

-> Beobachtung:
Die EQs müssen sich überlagern, da dann die Lautsprecher bei dunklen Tönen stark kratzen, wass sie ohne EQ/ nur 1 mal angeschaltetem EQ nicht tun

rollstuhlfahrer

PS: mein Code sieht so aus:
Delphi-Quellcode:
if CheckBoxEQ.Checked then
begin
  Channel1.Equiliser.Start;
  Channel2.Equiliser.Start;
  EQChange(Sender);
end else
begin
  Channel1.Equiliser.Stop;
  Channel2.Equiliser.Stop;
end;
Und Fehler konnte ich in BassEquiliserU noch nicht finden

EDIT: Mal nen Screen zur veranschaulischung
Bernhard
  Mit Zitat antworten Zitat
omata

 
Delphi 7 Enterprise
 
#32
  Alt 29. Jan 2008, 18:37
Hallo rollstuhlfahrer,

danke für den Hinweis. Ich habe die Archive schon korrigiert.

Da kannst das Problem auch schnell selber lösen, indem du in der Datei BassEquiliserU.pas folgende Methode veränderst...
Delphi-Quellcode:
procedure TBassEquiliser.Stop;
var i:integer;
    Band:TBassEquiliserBand;
begin
  for i:=1 to length(_Band) do begin
    Band:=_Band[i-1];
    Band.par.fGain:=0;
    Update(Band);
  end;
  _Enabled:=false;
  ClearAllBand; // <-- diese Zeile hinzufügen
end;
Gruss
Thorsten
  Mit Zitat antworten Zitat
Benutzerbild von rollstuhlfahrer
rollstuhlfahrer

 
Delphi 7 Professional
 
#33
  Alt 3. Feb 2008, 21:33
noch was wichtiges zum ändern:

wenn man 2 Mal (auch aus versehen) Channelx.Equisiler.Start aufruft, wird dieser auch tatsächlich 2 mal gestartet. Das hat zur folge, dass die Töne kratzen, obwohl der Rechner und die Festplatte schnell genug sind. Folgende Code-Änderunges kann man dann durchführen:

Delphi-Quellcode:
procedure TBassEquiliser.Start;
begin
  if not _Enabled then // <--
  begin // <--
    _Enabled:=true;
    Init;
  end; // <--
end;

procedure TBassEquiliser.Stop;
var i:integer;
    Band:TBassEquiliserBand;
begin
  if _Enabled then // <--
  begin // <--
    for i:=1 to length(_Band) do begin
      Band:=_Band[i-1];
      Band.par.fGain:=0;
      Update(Band);
    end;
    _Enabled:=false;
    ClearAllBand;
  end; // <--
end;
rollstuhlfahrer
Bernhard
  Mit Zitat antworten Zitat
100nF
 
#34
  Alt 7. Mär 2008, 20:06
hallo,

wollte jetzt bei einem neuen projekt die bassplayer-komponente verwenden.
nun blick ich da aber irgendwie voll nicht durch...
also einen Track abspielen ist kein problem, das hab ich shcon hingekriegt. habe leider beim letzten programm mit dieser komponente auch ein bisschen "gebastelt"^^ dieses mal will ichs aber ein wenig"professioneller" machen, und möglicht viel die internen funktioonen von der komponente nutzen usw.

eine kleine hilfedatei oder sowas hast du nicht oder?
wäre eben gut zu wissen was z.B. jede einzelne unit und/oder klassen machen, ich weiss z.B. nicht was mir die "FrameSoundKarteU" bringt. ausserdem mach ichs jetzt so, dass ich eifach ein TBassPlayer erzeuge und zwei Channels hinzufüge, und dann führe ich jede eintzelne funktion immer direkt vom Channel aus und den TBassPlayer brauch ich für rein gar nix mehr. Jetzt weiss ich nicht ob das normal ist, oder ob man den TBassPlayer auch verwenden sollte um z.B. irgendwelche werte zu setzen oder auszulesen.
sorry ist irgendwie voll kompliziert geschrieben aber ist halb so schlimm wenn dus nicht verstehst

also zu meinem programm:
es wird eine art jukebox, mit musikarchiv und verschiedene abspiellisten die geladen und gespeichert werden können. ausserdem will ich die fade-funktion nutzen, somit brauche ich wohl 2 channels. cd abspielen, Internet-Streams, ID3-informationen auslesen usw. sollen auch möglich sein über die komponente. eine visualisation brauch ich auch, und zwar eine die ausgewählt werden kann, also mit den DLL-Plugins.
hättest du vielleicht vorschläge wie ich da vorgehen soll?
z.B. soll ich die interne playlist von der komponente nutzen (gibt doch eine oder?), und soll ich lieder mit channel.loadfromlied oder mit loadfromfile abspielen? was bringt das loadfromlied für vorteile? und brauch ich eine TFrameSoundkarte?

sorry für die vielen fragen, aber ich hab keine lust nochmal einfach was zusammenzubasteln, ich wills dieses mal wirklich möglichst effizient machen.

wäre sehr dankbar für eine antwort!

EDIT: jetzt kommst du bestimmt mit "schau in die demo". hab ich shcon gemacht -> ich finde sie ist sehr kompliziert aufgebaut mit den vielen frames und so...ausserdem wird da verdammt viel code gebraucht, geht das nicht mit viel weniger?? ja ich hab einfach den überblick nicht bei der demo, und das ganze in ein anderes projekt zu übertragen gibt erstens viel zu viel arbeit und zweitens lern ich dann nix ausser Ctrl+C und Ctrl+V

EDIT2: eifach gesagt, ich versteh einfach den internen aufbau der komponente nicht!

Gruss
urbanbruhin
  Mit Zitat antworten Zitat
Benutzerbild von rollstuhlfahrer
rollstuhlfahrer

 
Delphi 7 Professional
 
#35
  Alt 8. Mär 2008, 15:32
HI urbanbruhin,
  • Ne Hilfe-Datei gibt es meines Wissens nicht
  • Ich brauche den TBassPlayer auch nur zum erstellen der Channels und zum setzten der globalen Ausgangslautstärke sowie für die PlugIns
  • CD abspielen: keine Ahnung
  • Id3-Tags gibts über Channel.Lied.xxx
  • interne playlist: fehlanzeige (was macht: loadnextlied??)
  • InternetStreams: Channel.LoadFromNetStream(...)
  • Fade geht über Channel.doFadeIn / Channel.doFadeOut Steuern (im sinne der Abfragen) oder grafiken musst du selbst machen
  • Visualisierungen gibts auch: BassPlayer.ShowVisControlForm siehe dazu meine erweiterung hier
  • Channel.LoadFromFile benötigt eine Datei und ruft Channel.LoadFromLied auf
  • Channel.LoadFromLied macht exakt das selbe wie Channel.LoadFromFile nur dass Channel.LoadFromLied den Typ TLied benötigt
  • TFrameSoundkarte wird nur im Demoprogramm verwendet (1. Zeile Tabs)

hoffe, ich konnte dir helfen

rollstuhlfahrer
Bernhard
  Mit Zitat antworten Zitat
100nF
 
#36
  Alt 8. Mär 2008, 17:12
Hallo rollstuhlfahrer,

Danke für deine Antwort, war sehr hilfreich!

was mich nun noch intressieren würde, warum es beim TBassPlayer eine globale lautstärke gibt, und bei jedem einzelnen channel ebenfalls eine volume?
soll ich am besten die eigenschaft volume bei den einzelnen channels gar nie setzen, sondern immer nur bei BassPlayer.volume?
wird dann die volume der einzelnen channels ebenfalls geändert oder wie muss ich das ganze verstehen?

EDIT: mit channel.lied bekommt man nur den Titel, den Interpret und die länge des tracks raus oder? und was ist channel.lied.bezeichnung? ich glaub, die informationen lese ich besser direkt über die MPEGAudio aus das geht warscheinlich schneller, und es sind dann auch informationen wie z.B. Album vorhanden.

Gruss
urbanbruhin
  Mit Zitat antworten Zitat
Benutzerbild von rollstuhlfahrer
rollstuhlfahrer

 
Delphi 7 Professional
 
#37
  Alt 9. Mär 2008, 09:14
ich setze die Channel-lautstärke so gut wie nie (für was gibts normalisieren!!)
die globale Lautstärke könnte man mit WMP-Lautstärkeregler vergleichen. somit hast du insgesammt 4 Regler pro Channel (ja und?)

rollstuhlfahrer

PS: im anhang ein Screen (norm. heißt normalisieren)
Miniaturansicht angehängter Grafiken
screen_326.jpg  
Bernhard
  Mit Zitat antworten Zitat
100nF
 
#38
  Alt 9. Mär 2008, 10:44
okay, das ist jetzt glaub mehr oder weniger alles klar.

jetzt muss ich nur noch rausfinden wie ich die ID3-Tags am besten ermittle. mit den Jedi-Komponenten werden z.T. einige Tracks nicht erkanns, also es kommen keine Informationen raus, wo jedoch bei Channel.Lied.xx war rauskommt wenn ich mich nicht täusche. Jeder einzelne Track beim hinzufügen ins Archiv noch in den Channel laden dauert jedoch bestimmt sehr lange, darum würde ich dies lieber umgehen..naja mal schauen wie ich das mache.

Also dann mal danke für deine Hilfe!

mfg
  Mit Zitat antworten Zitat
Benutzerbild von rollstuhlfahrer
rollstuhlfahrer

 
Delphi 7 Professional
 
#39
  Alt 9. Mär 2008, 19:35
nimm doch die Id3Lib von Muetze1
Link: http://www.muetze1.de/?c=2&lang=ger

rollstuhlfahrer

EDIT: das mit dem laden geht auch einfacher
Delphi-Quellcode:
with TLied.Create(filename) do
begin
showmessage(Interpret + ' - ' + Titel);
Free;
end;
Bernhard
  Mit Zitat antworten Zitat
Benutzerbild von rollstuhlfahrer
rollstuhlfahrer

 
Delphi 7 Professional
 
#40
  Alt 13. Apr 2008, 08:06
HI,

ich meld mich mal wieder hier zu Wort.
Zum Thema Erweiterungen ist zu sagen, dass ich überhaupt nicht weiß, wie ich den BassPlayerEx dazu bring, WMA Dateien zu lesen. An der BassWMA.dll soll es nicht liegen. Welches Stückchen Code muss jetzt geändert werden, dass der Player auch WMA abspielt?

rollstuhlfahrer
Bernhard
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 4 von 5   « Erste     234 5      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:40 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz