BASS_FX 2.4.12.1

Started by (: JOBnik! :),

(: JOBnik! :)

Hi ;D

Quote from: yenerich
Quote from: (: JOBnik! :)Which effect are we talking about? :)
The one for rasing volume as replay gain. DSPDAM?

Sorry for a delay, I didn't have time to check it.
BASS_FX_DSPFX_DAMP will dynamically increase/decrease volume of a sound.
If your music has clicks and the original volume is low, then increasing volume will of course
make those clicks much hearable.
Currently BASS_FX doesn't has any noise filter, but you could try using the BASS_FX_DSPFX_PEAKEQ to try to filter some frequencies :)

yenerich

Quote from: (: JOBnik! :)Currently BASS_FX doesn't has any noise filter, but you could try using the BASS_FX_DSPFX_PEAKEQ to try to filter some frequencies :)

Yes, i know the noise don't comes from BASS_FX.
I tried using the EQ but no success.

Can't you add some filter to avoid clicks and pops? Could be a good idea!!

martmix

Hi Jobnik,

Do you have any idea in how many months the new version of BASS_FX will be released? And can you tell me if it will have a (much) better beat-position-trigger?

Greetings,

Martin

(: JOBnik! :)

Hi ;D

BASS_FX 2.3.0.2 is here :)

2.3.0.2 - 09/04/2007
--------------------
* BEAT:
  * Added Beat position detection for decoded streams
     BASS_FX_BPM_BeatDecodeGet

  * Added new functions:
     BASS_FX_BPM_BeatCallbackReset
     BASS_FX_BPM_BeatSetParameters
     BASS_FX_BPM_BeatGetParameters

* REVERSE:
  * Multi-channel support
  * Added new feature to change playing direction from Reverse to Forward and vice-versa
     BASS_FX_ReverseSetDirection
     BASS_FX_ReverseGetDirection

* BPM:
  * Fixed: one more critical bug in BPM functions

* DSP:
  * BASS_FX_DSPFX_PEAKEQ:
     Improved effect and reduced CPU usage
     Fixed: a bug, preventing using fQ if fBandwidth < 0.1f
     Changed: fQ min limit to 0.1f

  * BASS_FX_DSPFX_ECHO3:
     Fixed: a bug in BASS_FX_DSP_GetParameters, that would return a wrong lChannel value

  * Error code: BASS_FX_ERROR_STEREO *removed* (replaced with BASS_ERROR_FORMAT)

* TEMPO:
  * Setting functions name changed:
     BASS_FX_TempoSettingSet -> BASS_FX_TempoSetOption
     BASS_FX_TempoSettingGet -> BASS_FX_TempoGetOption

     BASS_FX_TEMPO_SETTING_xxx -> BASS_FX_TEMPO_OPTION_xxx

ramses

Hi : JOBnik! :,

There's a problem with BASS_FX 2.3.0.2 it cause application freeze when using BASS_FX_DSP_Set with BASS_FX_DSPFX_DAMP.

If i return to BASS_FX 2.3.0.1 everything is OK.

Did you have any idea or debug version to see what happen ?

Regards.

(: JOBnik! :)

Hi ;D

Quote from: ramsesThere's a problem with BASS_FX 2.3.0.2 it cause application freeze when using BASS_FX_DSP_Set with BASS_FX_DSPFX_DAMP.

If i return to BASS_FX 2.3.0.1 everything is OK.

Did you have any idea or debug version to see what happen ?

Just tested on XP and 2000 and there's no freezing or anything else with this effect.
Please test it with the DSP example, changing/adding to BASS_FX_DSPFX_DAMP and let me know...

(: JOBnik! :)

#246
Hi ;D

Just a small notice, as I've updated the package... don't know how BASS.BAS happened to come with it and a small typo in frmDSP.frm :)
No changes in DLL or any other examples.

ramses

Hi,

The problem is steel there and i can't play mp3 files without freezing application.

The sequence i use to play mp3 is :

Slide the previous one:
BASS_ChannelSlideAttributes(geStream, -1, -2, -101, Pl(_gSlideTime)*1000)
geStream=0

Create the stream:
leFlags=OUBinaire(cBass::BASS_STREAM_PRESCAN, CBass::BASS_STREAM_DECODE)
geStream=BASS_StreamCreateFile(gsMorceauEnCours, leGapDebut, 0, leFlags)

Create tempo channel:
leFlags=OUBinaire(CBass::BASS_FX_FREESOURCE, CBass::BASS_STREAM_AUTOFREE)
geStream=gpBass:BASS_FX_TempoCreate(geStream, leFlags)

Set slide attributes:
BASS_ChannelSetAttributes(geStream, -1, Pl(_gVolume), -101)

Play the stream:
BASS_ChannelPlay(geStream)

Active DSP on channel:
BASS_FX_DSP_Set(peStream,CBASS::BASS_FX_DSPFX_DAMP,pePriorité)
BASS_FX_DSP_SetParameters(peStream,CBass::BASS_FX_DSPFX_DAMP,&:DAMP)

It could freeze even if i use:
BASS_ChannelStop(geStream)
BASS_StreamFree(geStream)

Did you see anything wrong in the sequence ?

Did you have a debug version to send me and see what happen ?

Regards

Philippe

martin71

Hi Jobnik,

First of all thanks for your hard work on BASS_FX. The new version looks very promissing.

I have 2 questions:

1) Call BASS_FX_BPM_BeatDecodeGet(chan, 0, 60, BASS_FX_BPM_BKGRND, AddressOf GetBeatPos_Callback, 0) returns error code 100 with BASS_ErrorGetCode. What does it mean?

2) I checked the beatpositions (given in realtime) in a wave editor (adobe audition) and they aren't exactly on the beat (and yes i use BASS_MUSIC_PRESCAN). How can I get more preciser beatpositions?

Have a nice vacation  ;)

Martin

(: JOBnik! :)

Hi ;D

Quote from: ramsesThe problem is steel there and i can't play mp3 files without freezing application.

The sequence i use to play mp3 is :

Slide the previous one:
BASS_ChannelSlideAttributes(geStream, -1, -2, -101, Pl(_gSlideTime)*1000)
geStream=0

Create the stream:
leFlags=OUBinaire(cBass::BASS_STREAM_PRESCAN, CBass::BASS_STREAM_DECODE)
geStream=BASS_StreamCreateFile(gsMorceauEnCours, leGapDebut, 0, leFlags)

Create tempo channel:
leFlags=OUBinaire(CBass::BASS_FX_FREESOURCE, CBass::BASS_STREAM_AUTOFREE)
geStream=gpBass:BASS_FX_TempoCreate(geStream, leFlags)

Set slide attributes:
BASS_ChannelSetAttributes(geStream, -1, Pl(_gVolume), -101)

Play the stream:
BASS_ChannelPlay(geStream)

Active DSP on channel:
BASS_FX_DSP_Set(peStream,CBASS::BASS_FX_DSPFX_DAMP,pePriorité)
BASS_FX_DSP_SetParameters(peStream,CBass::BASS_FX_DSPFX_DAMP,&:DAMP)

It could freeze even if i use:
BASS_ChannelStop(geStream)
BASS_StreamFree(geStream)

Did you see anything wrong in the sequence ?

Did you have a debug version to send me and see what happen ?

Tried it the way you wrote and couldn't reproduce the error here.
Please try the updated DLL from this thread.
If it won't help, I'll send you a debug version, but only tomorrow or a day after.

Quote from: martin71Hi Jobnik,

First of all thanks for your hard work on BASS_FX. The new version looks very promissing.

You're welcome :)

Quote from: martin71I have 2 questions:

1) Call BASS_FX_BPM_BeatDecodeGet(chan, 0, 60, BASS_FX_BPM_BKGRND, AddressOf GetBeatPos_Callback, 0) returns error code 100 with BASS_ErrorGetCode. What does it mean?

chan must be a decode channel, i.e: you have to create a stream using BASS_STREAM_DECODE flag :)

Quote from: martin712) I checked the beatpositions (given in realtime) in a wave editor (adobe audition) and they aren't exactly on the beat (and yes i use BASS_MUSIC_PRESCAN). How can I get more preciser beatpositions?

Check this thread :)

ramses

Thanks for updated dll but it did not solde the problem.

I'm waiting for your debug version of the dll.

Regards

Philippe

philippe*at*qpratools.com

(: JOBnik! :)

#251
Hi ;D

Here's an update to try, that should fix floating-point error :)
Quote from: Michael2005However, occasionally (rarely) I get a floating point overflow error in bass_fx (just after creating my stream). I am using 32-bit streams with tempo. I've attached the error message & info to hopefully shed some light on the issue.

Updated BASS_FX, also fixes this issue:
Quote from: ramsesThere's a problem with BASS_FX 2.3.0.2 it cause application freeze when using BASS_FX_DSP_Set with BASS_FX_DSPFX_DAMP.

If i return to BASS_FX 2.3.0.1 everything is OK.

Did you have any idea or debug version to see what happen ?

And this bug, from this thread ;)
Quote from: Michael2005I've recently updated my app with bass_fx v2.3.0.2. I made ONLY the required modifications to compile my app with the new library but I keep getting the same error message (in run-time). I've included a bug report generated with madExcept. Any ideas? I would really appreciate your help on this.

* Fixed also 2 more bugs (in BASS_FX_DSPFX_ECHO and BASS_FX_DSPFX_REVERB effects).

http://www.jobnik.org/files/bass_fx.dll

Quote from: RenegadeIs this a recommended update for all BASS_FX users?

It's released only for testing and yes it's recommended to use this one because it has bug fixes.
After the testings are done, it will be released as 2.3.0.3 release :)

Z

Hi,

Just to report a crash i'm having. Maybe something I'm doing wrong.

We have 2 or 3 ogg streams that are decoded in floating point and fed to a mixer. Each of these streams may have a dsp echo on it. Whenever I'm using echo2 on the second or third stream, I have a crash in bass_fx. The same code works well with echo or echo3.

Just to let you know.

(: JOBnik! :)

#253
Hi ;D

Quote from: ZHi,

Just to report a crash i'm having. Maybe something I'm doing wrong.

We have 2 or 3 ogg streams that are decoded in floating point and fed to a mixer. Each of these streams may have a dsp echo on it. Whenever I'm using echo2 on the second or third stream, I have a crash in bass_fx. The same code works well with echo or echo3.

Just to let you know.

Could you please send me a crash log (dr. watson log?) and please write the way you're applying the effect :)

Chris

Hi
With the new release I will have the follwing error
if I will setting new BPM Flags

BASS_FX_BPM_Free(Player1.GetChannel);
BASS_FX_BPM_CALLbackSet(player1.GetChannel,
    @GetBPM_CallBack1,
    Sound_Config.BPMTime.ItemIndex + 1, BPMMinMax_1, BPMCheckFlag_1,
    DWORD(self));

Sometimes The stream will than stop without any reason
Bass_ErrorGetCode will return 5 (InvalideHandle)
Greets Chris

(: JOBnik! :)

Hi ;D

Quote from: ChrisHi
With the new release I will have the follwing error
if I will setting new BPM Flags

BASS_FX_BPM_Free(Player1.GetChannel);
BASS_FX_BPM_CALLbackSet(player1.GetChannel,
    @GetBPM_CallBack1,
    Sound_Config.BPMTime.ItemIndex + 1, BPMMinMax_1, BPMCheckFlag_1,
    DWORD(self));

Sometimes The stream will than stop without any reason
Bass_ErrorGetCode will return 5 (InvalideHandle)
Greets Chris

Which new flags?
BASS_FX_BPM_CallbackSet(..) can have only 1 flag BASS_FX_BPM_MULT2

Chris

Hi
in this example

var
 BPMMinMax_1,
 BPMCheckFlag_1 : DWord;

procedure SetNewFlags;
begin
 BPMMinMax_1 := MakeLong(80,160);
 BPMCheckFlag_1 := 0;//No BPM_MULTI2
 BASS_FX_BPM_CALLbackSet(player1.GetChannel,
    @GetBPM_CallBack1,
    Sound_Config.BPMTime.ItemIndex + 1, BPMMinMax_1, BPMCheckFlag_1,
    DWORD(self));
end;

Greets Chris

Z

Quote from: (: JOBnik! :)Could you please send me a crash log (dr. watson log?) and please write the way you're applying the effect :)

Hi,

I cannot give you a log. It seems that Borland is trapping the exception and let the program run. Note that the crash happens only when enabling the dsp, not when I'm setting the echo parameters.

I get 'access violation at address 003339AF in module BASS_FX.DLL read of address BAADF035'

Here is how the streams are created :
QuoteGStream=BASS_StreamCreateFile(true,pFile->Data,0,pFile->Size,BASS_STREAM_DECODE | BASS_STREAM_PRESCAN | BASS_SAMPLE_FLOAT );

Here is how the dsp are set:
Quote// Echo2 semble planter dans la dernière version de bass_fx

   BASS_FX_DSPECHO2                   echoconfig;

  if(DSPSet==true)
  {
      BASS_FX_DSP_Remove            (GStream, BASS_FX_DSPFX_ECHO2);
    DSPSet                           =   false;
  }
   if(GDelayLevel)
   {
      echoconfig.fFeedback      =   0.4f;
      echoconfig.fDryMix         =   1.0f;
      echoconfig.fWetMix         =   -((float)GDelayLevel/100.0f);
      echoconfig.fDelay            =   0.20f+((float)GDelayTime/280.0f); // 1200..10000
      echoconfig.lChannel         =   BASS_FX_DSP_CHANALL;
    if(DSPSet==false)
         BASS_FX_DSP_Set               (GStream, BASS_FX_DSPFX_ECHO2, 2);
      BASS_FX_DSP_SetParameters   (GStream, BASS_FX_DSPFX_ECHO2, &echoconfig);
    DSPSet                           =   true;
   }

/*
   BASS_FX_DSPECHO3                   echoconfig;

  if(DSPSet==true)
  {
      BASS_FX_DSP_Remove            (GStream, BASS_FX_DSPFX_ECHO3);
    DSPSet                           =   false;
  }
   if(GDelayLevel)
   {
      echoconfig.fDryMix         =   1.0f;
      echoconfig.fWetMix         =   -((float)GDelayLevel/100.0f);
      echoconfig.fDelay            =   0.20f+((float)GDelayTime/280.0f); // 1200..10000
      echoconfig.lChannel         =   BASS_FX_DSP_CHANALL;
    if(DSPSet==false)
         BASS_FX_DSP_Set               (GStream, BASS_FX_DSPFX_ECHO3, 2);
      BASS_FX_DSP_SetParameters   (GStream, BASS_FX_DSPFX_ECHO3, &echoconfig);
    DSPSet                           =   true;
   }
*/ 

GDelayLevel and GDelayTime varying from 0 to 100

(: JOBnik! :)

Hi ;D

Here's an updated BASS_FX, that should fix these 2 issues:

1.
Quote from: ChrisHi
With the new release I will have the follwing error
if I will setting new BPM Flags

BASS_FX_BPM_Free(Player1.GetChannel);
BASS_FX_BPM_CALLbackSet(player1.GetChannel,
    @GetBPM_CallBack1,
    Sound_Config.BPMTime.ItemIndex + 1, BPMMinMax_1, BPMCheckFlag_1,
    DWORD(self));

Sometimes The stream will than stop without any reason
Bass_ErrorGetCode will return 5 (InvalideHandle)
Greets Chris

2.
Quote from: ZHi,

Just to report a crash i'm having. Maybe something I'm doing wrong.

We have 2 or 3 ogg streams that are decoded in floating point and fed to a mixer. Each of these streams may have a dsp echo on it. Whenever I'm using echo2 on the second or third stream, I have a crash in bass_fx. The same code works well with echo or echo3.

Just to let you know.

http://www.jobnik.org/files/bass_fx.dll

Please let me know if you still have any errors :)

emiliojazz

Hi jobNik!
After a lot of testing regarding the Beat Callback, I found a strange thing:
comparing the beatPos given by the callback with the actual position of the channel being playing
I noticed that the difference between those 2 values sometimes is 1 and sometimes is 22-23 (no intermediate values)...and this value is not affected by the "beat release time" parameter in BeatSetParameters.
I'm using an ASIO buffer with 4 ms latency.
Where the problem can be? Can be in the position given by the callback or in the position read from the channel?
Can be a slight delay between the time passed to the callback and the time the callback is raised?

Thanks.
Emiliano Paterlini