Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Bass.dll Equalizer (https://www.delphipraxis.net/62930-bass-dll-equalizer.html)

Nils_13 11. Feb 2006 16:36


Bass.dll Equalizer
 
Hi,

ich möchte einen kleinen Equalizer mit Reverb-Funktion programmieren (wie im Beispiel). Das will ich mit der Bass.dll machen. Das Beispiel läuft irgendwie nicht, abgeleitete Klassen vom Bassdllplayer bringen auch nur Inakzeptable Ergebnisse. Wie kann ich einen Equalizer mit der Bass.dll programmieren, der aus 3 Trackbars besteht (von mir aus auch mehr) und möglichst eine Reverb-Funktion hat ?

DP-Maintenance 11. Feb 2006 16:41

DP-Maintenance
 
Dieses Thema wurde von "alcaeus" von "Sonstige Fragen zu Delphi" nach "Multimedia" verschoben.
Wenns um Multimedia geht, warum nicht gleich dorthin? ;)

omata 11. Feb 2006 16:43

Re: Bass.dll Equalizer
 
Hallo Nils,

hast du dir mal mein Demo oder auch diese Demo (neueste Version) angesehen?
Dort gibt es eine eigene Equalizer-Klasse.

MfG
Thorsten

Nils_13 11. Feb 2006 16:46

Re: Bass.dll Equalizer
 
Welche soll ich da nehmen ?

omata 11. Feb 2006 17:02

Re: Bass.dll Equalizer
 
Naja, die erste Demo benötigt keine Graphics32-Komponenten. Wenn es dir also nur um den Equalizer und die Spezialfunktionen geht, dann reicht auch die erste Demo. Wenn du ein bischen über den Tellerrand schauen möchtest kannst du dir auch mal die neuste Version anschauen, dort sind dann auch die Visualisierungen stärker vertreten.

Der größte Unterschied zwischen den beiden Versionen besteht in der Dll-Benutzung. In der ersten Version wird diese direkt in den Speicher geladen, in der Zweiten wird eine Dll aus der EXE-ausgepackt und dann so geladen wie es Windows vorschreibt. Vorteil der ersten Variante ist dabei, dass man unendlich viele Soundkarten unanhängig voneinander ansprechen kann (in einer Anwendung! mit unendlich vielen Channels pro Soundkarte - auch ältere Soundkarten). Nachteil dieser Variante ist, dass die Sonderfunktionen wie Tempo, Pitch und Samplerate nicht eingebaut werden können, weil dafür eine weiter Dll nötig ist, die nur dann funktioniert, wenn die bass.dll so geladen wird wie es Windows vorschreibt. Deshalb gibt es jetzt die neue Version, da ist dann aber nur noch eine Soundkarte pro Anwendung möglich.

Wie du siehtst ist das Thema etwas komplexer. Du must selber entscheiden was du brauchst/machen willst.

MfG
Thorsten

Nils_13 11. Feb 2006 17:48

Re: Bass.dll Equalizer
 
Welche Unit ist jetzt die Frage, ich habe jetzt einfach die vom zweiten Link genommen, aber welche Units sind wichtig ?

omata 11. Feb 2006 19:07

Re: Bass.dll Equalizer
 
Alle, die mit Bass* beginnen...

Nils_13 12. Feb 2006 11:01

Re: Bass.dll Equalizer
 
Delphi-Quellcode:
var
  BassEqulisierReverb       : TBassEqulisierReverb;
 
procedure TfrmMain.FormCreate(Sender: TObject);
begin
  BassEqulisierReverb := TBassEqulisierReverb.Create;
end;

procedure TfrmMain.TrackBar1Change(Sender: TObject);
begin
  if BASS_ChannelIsActive(chan) = BASS_ACTIVE_PLAYING then
  begin
    BassEqulisierReverb.Level   := TrackBar1.Position;
  end;
end;
Warum passiert nichts, wenn ich die TrackBar verschiebe ?

omata 12. Feb 2006 19:28

Re: Bass.dll Equalizer
 
Hallo Nils,

das geht so nicht!

Meine Klassenstruktur nimmt dir viele Sachen ab. Das funktioniert aber nur wenn du auch meine Klassen benutzt. BassPlayerU und BassChannelU sind das Grundgerüst. Wenn du alles selber machen willst, dann must du auch alles selber machen. Nur Teile meiner Klassen kannst du nicht benutzen, entweder alles oder nichts.

Kontret zu deiner Frage eine Gegenfrage: Woher weiß die Reverb-Klasse welchen Channel du manipulieren willst? - Das muss initialisiert werden (das passiert automatisch, wenn du BassChannelU benutzt)


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:45 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