AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

fmod equalizer

Ein Thema von Flips · begonnen am 27. Dez 2005 · letzter Beitrag vom 28. Dez 2005
Antwort Antwort
Flips

Registriert seit: 17. Feb 2005
Ort: Sankt Wendel
491 Beiträge
 
Delphi 7 Professional
 
#1

fmod equalizer

  Alt 27. Dez 2005, 14:53
Hi.

Bin gerade dabei meinen Player zu verbessern/neu zu coden.
Jetzt wollte ich einen Equalizer drin haben.
Mit folgendem Code habe ich es versucht zu testen.

Delphi-Quellcode:
var EQBands : array [0..10] of integer;

...

Procedure Test_EQ;
var i : integer;
begin
  FSOUND_SetPaused(FSOUND_ALL,true);
  for i := 0 to 10 do
  EQBands[i] := FSOUND_FX_Enable(FSOUND_ALL,FSOUND_FX_PARAMEQ);
    
  FSOUND_FX_SetParamEQ(EQBands[0], 80, 12, 15);
  FSOUND_FX_SetParamEQ(EQBands[1], 170, 12, 15);
  FSOUND_FX_SetParamEQ(EQBands[2], 310, 12, 15);
  FSOUND_FX_SetParamEQ(EQBands[3], 600, 12, 15);
  FSOUND_FX_SetParamEQ(EQBands[4], 1000, 12, 15);
  FSOUND_FX_SetParamEQ(EQBands[5], 3000, 12, 15);
  FSOUND_FX_SetParamEQ(EQBands[6], 6000, 12, 15);
  FSOUND_FX_SetParamEQ(EQBands[7], 12000, 12, 15);
  FSOUND_FX_SetParamEQ(EQBands[8], 14000, 12, 15);
  FSOUND_FX_SetParamEQ(EQBands[9], 16000, 12, 15);

  fmod.FSOUND_SetPaused(FSOUND_ALL,false);
end;
Erklärung der Parameter:
Laut der Fmod hilfe gibt der erste Parameter der Funktion FSOUND_FX_SetParamEQ die Id des Effekts an, welche vorher in dem Array gespeichert wurde.
Der 2. Parameter gibt den Center Wert an (?), mögliche Werte von 80 bis 16000, habe die benutzen Werte aus diesem Thread hier.
Der 3. Parameter gibt irgendeine Bandweite an (?), standard ist 12.
Der 4. Parameter gibt den Gain Wert an, im bereich -15 bis 15, damit man merkt wenn was passiert habe ich 15 eingestellt.

Wisst ihr warum es trotzdem nicht geht?

MfG
Flips
Philipp F.
  Mit Zitat antworten Zitat
Flips

Registriert seit: 17. Feb 2005
Ort: Sankt Wendel
491 Beiträge
 
Delphi 7 Professional
 
#2

Re: fmod equalizer

  Alt 27. Dez 2005, 20:44
Ok habe die Antwort gefunden.
Der Fehler war, das es anstatt:
 EQBands[i] := FSOUND_FX_Enable(FSOUND_ALL,FSOUND_FX_PARAMEQ);
Delphi-Quellcode:
 EQBands[i] := FSOUND_FX_Enable(song.Channel,FSOUND_FX_PARAMEQ);
//Wobei Channel hier die Variable ist in welche Vorher der channel gespeichert wurde
heißen muss.

Nur damit der Equalizer funktioniert, muss es bei FSOUND_Stream_Open
ja heißen FSOUND_ENABLEFX. Allerdings brauche ich für alle meine Features
FSOUND_ENABLEFX und FSOUND_NORMAL.

Jetzt habe ich versucht sie zu verbinden durch AND, also
FSOUND_Stream_Open(PChar(song.Filename),FSOUND_ENABLEFX and FSOUND_NORMAL, 0, 0); Aber es geht nicht. wisst ihr warum, bzw. wie es geht?

MfG Flips
Philipp F.
  Mit Zitat antworten Zitat
omata

Registriert seit: 26. Aug 2004
Ort: Nebel auf Amrum
3.154 Beiträge
 
Delphi 7 Enterprise
 
#3

Re: fmod equalizer

  Alt 28. Dez 2005, 00:57
Moin,

ich würde es mal mit OR versuchen.
Bei AND werden ja nur die Bits übernommen, die in beiden Operanden gesetzt sind.
Bei OR werden alle gesetzten Bits der Operanden auch im Ergebnis gesetzt.

MfG
Thorsten
  Mit Zitat antworten Zitat
Flips

Registriert seit: 17. Feb 2005
Ort: Sankt Wendel
491 Beiträge
 
Delphi 7 Professional
 
#4

Re: fmod equalizer

  Alt 28. Dez 2005, 18:02
Nehme mal an du meinst das so:
FSOUND_Stream_Open(PChar(song.Filename),FSOUND_ENABLEFX or FSOUND_NORMAL, 0, 0); Klappt leider auch nicht...
Philipp F.
  Mit Zitat antworten Zitat
Antwort Antwort


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 23:32 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