Hi
Sorry das ich mich nicht schon früher gemeldet habe!
Bei mir funzt es wie es soll!
Was sagt BASS_ErrorGetCode();?
Feileicht kannst du ja einwenig Code zeigen?
Das ist ein kleiner ausschnitt aus meinem Code (Bass.dll)!
Delphi-Quellcode:
BASS_StreamFree(Channel_Song);
ReverbHandle := 0
Channel_Song:= (BASS_StreamCreateFile(FALSE, PChar(FileName), 0, 0, Sound_Flags));
Private
Saved8087CW : WORD; // FPU exceptions
ReverbHandle : HFX;
ReverbParam : BASS_FXREVERB;
FReverbLevel : WORD;
Procedure TAudioEngine.Set_SoundEffect(Value : TSoundEffects);
begin
FSoundEffects:= Value;
{ Save the current FPU state and then disable FPU exceptions }
Saved8087CW := Default8087CW;
{ Disable all fpu exceptions }
Set8087CW($133f);
if fxReverb in FSoundEffects then
begin
if ReverbHandle = 0 then
ReverbHandle:= BASS_ChannelSetFX(Channel_Song , BASS_FX_REVERB, NumEQBands+2);
if ReverbHandle <> 0 then
begin
if BASS_FXGetParameters(ReverbHandle, @ReverbParam) then
ReverbParam.fInGain := 0.0;
ReverbParam.fReverbMix := FReverbLevel * 0.5 - 16.0;
ReverbParam.fReverbTime := 1000.0;
ReverbParam.fHighFreqRTRatio := 0.1;
BASS_FXSetParameters(ReverbHandle, @ReverbParam);
end;
end
else
begin
if ReverbHandle <> 0 then
if BASS_ChannelRemoveFX(Channel_Song, ReverbHandle) then
ReverbHandle:= 0;
end;
Set8087CW(Saved8087CW); { Restore to original status }
end;
{-------------------------------- Reverb --------------------------------------}
// Min = 0
// DefPos = 0
// Max = 30
// def enablr = false
procedure TAudioEngine.Set_ReverbLevel(Value : WORD); // Reverb
begin
if Value < 0 then
FReverbLevel:= 0
else
FReverbLevel := Value;
if fxReverb in FSoundEffects then
begin
if ReverbHandle <> 0 then
begin
if BASS_FXGetParameters(ReverbHandle, @ReverbParam) then
begin
ReverbParam.fReverbMix := FReverbLevel * 0.5 - 16.0;
BASS_FXSetParameters(ReverbHandle, @ReverbParam)
end;
end;
end;
end;