![]() |
fmod equalizer
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:
Erklärung der Parameter:
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; 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 ![]() 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 |
Re: fmod equalizer
Ok habe die Antwort gefunden.
Der Fehler war, das es anstatt:
Delphi-Quellcode:
EQBands[i] := FSOUND_FX_Enable(FSOUND_ALL,FSOUND_FX_PARAMEQ);
Delphi-Quellcode:
heißen muss.
EQBands[i] := FSOUND_FX_Enable(song.Channel,FSOUND_FX_PARAMEQ);
//Wobei Channel hier die Variable ist in welche Vorher der channel gespeichert wurde 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
Delphi-Quellcode:
Aber es geht nicht. wisst ihr warum, bzw. wie es geht?
FSOUND_Stream_Open(PChar(song.Filename),FSOUND_ENABLEFX and FSOUND_NORMAL, 0, 0);
MfG Flips |
Re: fmod equalizer
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 |
Re: fmod equalizer
Nehme mal an du meinst das so:
Delphi-Quellcode:
Klappt leider auch nicht...
FSOUND_Stream_Open(PChar(song.Filename),FSOUND_ENABLEFX or FSOUND_NORMAL, 0, 0);
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:57 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