Author Topic: BASS_FX 2.4.12.1  (Read 837217 times)

zittergie

  • Posts: 31
Re: BASS_FX 2.4.8
« Reply #575 on: 27 Nov '12 - 19:23 »
Hi, do you plan an arm linux version?

(: JOBnik! :)

  • Posts: 1080
Re: BASS_FX 2.4.8
« Reply #576 on: 1 Dec '12 - 11:42 »
Hi ;D

Yep...

hamsen

  • Posts: 22
Re: BASS_FX 2.4.8
« Reply #577 on: 16 Dec '12 - 08:50 »
Using Delphi XE2 and Windows 8 PRO.
Trying to compile the BPM project, but I get compile errors:

In bpm.pas:
line 347: Incompatible types: Pointer and Integer;
This is probably due to an incorrect declaration in bass_fx at line 365.
MinMaxBPM and Flags is defined a pointer.

In bpm.pas:
line 104: Incompatible types: NativeUInt and Pointer;
???

Regards
Thomas

(: JOBnik! :)

  • Posts: 1080
Re: BASS_FX 2.4.8
« Reply #578 on: 16 Dec '12 - 15:06 »
Hi ;D

There was a typo in Delphi Unit "BASS_FX.PAS", it's fixed now, please redownload the package :)

hamsen

  • Posts: 22
Re: BASS_FX 2.4.8
« Reply #579 on: 16 Dec '12 - 17:29 »
Hi ;D

There was a typo in Delphi Unit "BASS_FX.PAS", it's fixed now, please redownload the package :)

Thanks.
That fixed the first error.

But not the error in line 104.

Regards
Thomas

(: JOBnik! :)

  • Posts: 1080
Re: BASS_FX 2.4.8
« Reply #580 on: 17 Dec '12 - 10:28 »
Hi ;D

I guess "timeSetEvent" function in Delphi can't accept "Pointer" in "user" param.
Then please try changing "Pointer" to "Integer" and see if it helps in "GetBeatPos_Callback" function:

procedure GetBeatPos_Callback(handle: DWORD; beatpos: DOUBLE; user: Pointer); stdcall;

if it doesn't helps, then it's needed somehow to typecast "Pointer" to "Integer"

e.g:
timeSetEvent(round((beatpos - curpos) * 1000), 0, @beatTimerProc, DWORD(user), TIME_ONESHOT);
« Last Edit: 17 Dec '12 - 11:14 by (: JOBnik! :) »

hamsen

  • Posts: 22
Re: BASS_FX 2.4.8
« Reply #581 on: 17 Dec '12 - 15:40 »
Thanks for your help.
I typecasted like this:
timeSetEvent(round((beatpos - curpos) * 1000), 0, @beatTimerProc, NativeUInt(user), TIME_ONESHOT);
and it Works fine.


hamsen

  • Posts: 22
Re: BASS_FX 2.4.8
« Reply #582 on: 30 Dec '12 - 08:58 »
I finally managed to get BPM detection to work.
Unfortunately, I don't think the values are correct.

I have tested various programs available on the internet.
Many of them yields the same values as I get with my code (probably because they use the same code).

I have compared the generated values of some songs to a database of BPM's found on the internet.
None of my values are close to those values.

However, Mixmeister BPM Analyzer seems to calculate the "correct" values.

Anyone have any thoughts on this?

Regards
Thomas

(: JOBnik! :)

  • Posts: 1080
Re: BASS_FX 2.4.9
« Reply #583 on: 3 Feb '13 - 18:47 »
Hi ;D

there's now version 2.4.9 is released

2.4.9 - 16/01/2013
------------------
* BASS_FX:
  * WinCE version introduced (package bass_fx24-ce.zip) currently doesn't include most BASS_FX_BFX_xxx effects.
  * Linux ARM version introduced (package bass_fx24-linux-arm.zip) currently doesn't include most BASS_FX_BFX_xxx effects.

* DSP:
  * Added more effects to Android, WinCE & Linux ARM ports:
     BASS_FX_BFX_PEAKEQ
     BASS_FX_BFX_MIX
     BASS_FX_BFX_VOLUME_ENV

* Tempo and Reverse:
  * According to this request: https://www.un4seen.com/forum/?topic=13910
    Added support for DECODETO option.

* Tempo:
  * iOS, WinCE & Linux ARM: Enabled the BASS_ATTRIB_TEMPO_OPTION_USE_QUICKALGO option on tempo
    streams by default for lower CPU usage. See docs on how to disable it.

* iOS: Added armv7s architecture support.
« Last Edit: 3 Feb '13 - 19:13 by (: JOBnik! :) »

zittergie

  • Posts: 31
Re: BASS_FX 2.4.9
« Reply #584 on: 19 Feb '13 - 19:23 »
Using BASS_FX 2.4.9 on Raspberry Pi to code an EQ takes up 100% CPU and music start to stutter.
Disabling to EQ and all works fine.

I am using the hard float version.

Is it doable to code a working EQ on the Raspberry Pi ?

Code: [Select]
procedure TFormEQ.SetEQ;
var mystream: HStream;
begin
  case stream of
    1: mystream:=genBassStream1;
    2: mystream:=genBassStream2;
    3: mystream:=CDStream;
    4: mystream:=Reversestream;
    5: mystream:=Radiostream;
  end;

  PreVolume.lChannel:=BASS_BFX_CHANALL;
  PreVolume.fVolume:=1;

  FxEqualizer[0]:=BASS_ChannelSetFX(mystream,BASS_FX_BFX_VOLUME,1);
  FxEqualizer[1]:=BASS_ChannelSetFX(mystream,BASS_FX_BFX_PEAKEQ,1);
  FxEqualizer[2]:=BASS_ChannelSetFX(mystream,BASS_FX_BFX_PEAKEQ,1);
  FxEqualizer[3]:=BASS_ChannelSetFX(mystream,BASS_FX_BFX_PEAKEQ,1);
  FxEqualizer[4]:=BASS_ChannelSetFX(mystream,BASS_FX_BFX_PEAKEQ,1);
  FxEqualizer[5]:=BASS_ChannelSetFX(mystream,BASS_FX_BFX_PEAKEQ,1);
  FxEqualizer[6]:=BASS_ChannelSetFX(mystream,BASS_FX_BFX_PEAKEQ,1);
  FxEqualizer[7]:=BASS_ChannelSetFX(mystream,BASS_FX_BFX_PEAKEQ,1);
  FxEqualizer[8]:=BASS_ChannelSetFX(mystream,BASS_FX_BFX_PEAKEQ,1);
  FxEqualizer[9]:=BASS_ChannelSetFX(mystream,BASS_FX_BFX_PEAKEQ,1);
  FxEqualizer[10]:=BASS_ChannelSetFX(mystream,BASS_FX_BFX_PEAKEQ,1);

  PreVolume.lChannel:=BASS_BFX_CHANALL;
  PreVolume.fVolume:=Trackbar1.Position/100;
  BASS_FXSetParameters(FxEqualizer[0],@PreVolume);;

  Equalizer.fGain:=TB_EQ1.Position;
  Equalizer.fBandwidth:=1;
  Equalizer.fCenter:=32;
  Equalizer.lBand:=10;
  Equalizer.lChannel:=BASS_BFX_CHANALL;
  BASS_FXSetParameters(FxEqualizer[1],@Equalizer);
  Equalizer.fGain:=TB_EQ2.Position;
 // Equalizer.lBand:=2;
  Equalizer.fCenter:=64;
  BASS_FXSetParameters(FxEqualizer[2],@Equalizer);
  Equalizer.fGain:=TB_EQ3.Position;
//  Equalizer.lBand:=3;
  Equalizer.fCenter:=128;
  BASS_FXSetParameters(FxEqualizer[3],@Equalizer);
  Equalizer.fGain:=TB_EQ4.Position;
//  Equalizer.lBand:=4;
  Equalizer.fCenter:=256;
  BASS_FXSetParameters(FxEqualizer[4],@Equalizer);
  Equalizer.fGain:=TB_EQ5.Position;
//  Equalizer.lBand:=5;
  Equalizer.fCenter:=512;
  BASS_FXSetParameters(FxEqualizer[5],@Equalizer);
  Equalizer.fGain:=TB_EQ6.Position;
//  Equalizer.lBand:=6;
  Equalizer.fCenter:=1024;
  BASS_FXSetParameters(FxEqualizer[6],@Equalizer);
  Equalizer.fGain:=TB_EQ7.Position;
//  Equalizer.lBand:=7;
  Equalizer.fCenter:=2048;
  BASS_FXSetParameters(FxEqualizer[7],@Equalizer);
  Equalizer.fGain:=TB_EQ8.Position;
//  Equalizer.lBand:=8;
  Equalizer.fCenter:=4096;
  BASS_FXSetParameters(FxEqualizer[8],@Equalizer);
  Equalizer.fGain:=TB_EQ9.Position;
//  Equalizer.lBand:=9;
  Equalizer.fCenter:=8192;
  BASS_FXSetParameters(FxEqualizer[9],@Equalizer);
  Equalizer.fGain:=TB_EQ10.Position;
//  Equalizer.lBand:=10;
  Equalizer.fCenter:=16384;
  BASS_FXSetParameters(FxEqualizer[10],@Equalizer);
end; 

Ian @ un4seen

  • Administrator
  • Posts: 26015
Re: BASS_FX 2.4.9
« Reply #585 on: 20 Feb '13 - 14:37 »
It would be more efficient to have a single BASS_FX_BFX_PEAKEQ effect instance with multiple bands, rather than a separate effect for each band, ie. call BASS_ChannelSetFX only once and then make use of the "lBand" to set each band's parameters. Your parameter setting code could be modified something like this...

Code: [Select]
  Equalizer.fGain:=TB_EQ1.Position;
  Equalizer.fBandwidth:=1;
  Equalizer.fCenter:=32;
  Equalizer.lBand:=0;
  Equalizer.lChannel:=BASS_BFX_CHANALL;
  BASS_FXSetParameters(FxEqualizer[1],@Equalizer);
  Equalizer.fGain:=TB_EQ2.Position;
  Equalizer.lBand:=1;
  Equalizer.fCenter:=64;
  BASS_FXSetParameters(FxEqualizer[1],@Equalizer);
  Equalizer.fGain:=TB_EQ3.Position;
  Equalizer.lBand:=2;
  Equalizer.fCenter:=128;
  BASS_FXSetParameters(FxEqualizer[1],@Equalizer);
...

zittergie

  • Posts: 31
Re: BASS_FX 2.4.9
« Reply #586 on: 20 Feb '13 - 19:11 »
Thanx,

Going to test this.  Now I see how it works and should be used.

Tested and it works good on the Pi.
Now only stuttering when fading out/in of two songs.
« Last Edit: 28 Feb '13 - 22:49 by zittergie »

DoctorDangerous

  • Posts: 33
Re: BASS_FX 2.4.9
« Reply #587 on: 8 Apr '13 - 09:10 »
Got it working in .NET. Nice library. Thanks!
« Last Edit: 8 Apr '13 - 10:04 by DoctorDangerous »

nadia

  • Posts: 332
Re: BASS_FX 2.4.9
« Reply #588 on: 7 May '13 - 09:08 »
Hello  ;D

I think that I've found a regression in versions 2.4.8 and 2.4.9 of BASS_FX respect to version 2.4.7.

Calls to the BASS_FX_BPM_BeatSetParameters function seem to always return FALSE and parameters are not acccepted; BASS_ErrorGetCode returns error 5; this is very strange because a subsequent call to the BASS_FX_BPM_BeatDecodeGet function works as expected and will not return any error but, obviously, will work with its default parameters. The passed stream handle, which is a decoding channel, should be OK or it should fail as well.

Any idea? As mentioned, with version 2.4.7 the problem doesn't happen so it's likely that something changed....  ???

As a second matter, looking at the documentation and at the header file, I've noticed that the first parameter of the BASS_FX_BPM_BeatDecodeGet function is named "chan" while for other "beat" related functions the first parameter is named "handle": am I right in assuming that they always mean the same thing?

Kind Regards  ;D

Nadia

(: JOBnik! :)

  • Posts: 1080
Re: BASS_FX 2.4.9
« Reply #589 on: 7 May '13 - 16:25 »
Hi ;D

You're right!
I see that there indeed were some changes in BASS_FX_BPM_BeatDecodeGet function... and now you can't set parameters for decoding detection, because channel handle is freed ;)

It will be fixed in next release :)

btw, chan means for decoding channel and handle is for both :)

nadia

  • Posts: 332
Re: BASS_FX 2.4.9
« Reply #590 on: 8 May '13 - 12:53 »
Hi  ;D

thanks for confirming my doubts: do you have a time frame about the next release ?

Kind Regards  ;D

Nadia

Hi ;D

You're right!
I see that there indeed were some changes in BASS_FX_BPM_BeatDecodeGet function... and now you can't set parameters for decoding detection, because channel handle is freed ;)

It will be fixed in next release :)

btw, chan means for decoding channel and handle is for both :)

(: JOBnik! :)

  • Posts: 1080
Re: BASS_FX 2.4.9
« Reply #591 on: 9 May '13 - 12:37 »
Hi ;D

Working on it :)
I believe that by the end of this month it will be ready.

Also a note, there will be an API changes in DSP definitions and structures and BPM functions (BASS_FX_BPM_Translate is removed)...
I might also remove BASS_FX_BPM_BeatDecodeGet function, as all of it content could be done pretty easily by a user and if I'll remove it, then all of it content will be added to BPM example (not decided yet) :)

It will be 2.4.10, but with changes I've planned for 2.5 :)
« Last Edit: 9 May '13 - 12:40 by (: JOBnik! :) »

nadia

  • Posts: 332
Re: BASS_FX 2.4.9
« Reply #592 on: 9 May '13 - 23:01 »
Hi  ;D

is there any chance to get a pre-release that would fix this specific bug in a shorter time ?  ;)

Kind Regards  ;D

Nadia


Hi ;D

Working on it :)
I believe that by the end of this month it will be ready.

Also a note, there will be an API changes in DSP definitions and structures and BPM functions (BASS_FX_BPM_Translate is removed)...
I might also remove BASS_FX_BPM_BeatDecodeGet function, as all of it content could be done pretty easily by a user and if I'll remove it, then all of it content will be added to BPM example (not decided yet) :)

It will be 2.4.10, but with changes I've planned for 2.5 :)

(: JOBnik! :)

  • Posts: 1080
Re: BASS_FX 2.4.9
« Reply #593 on: 12 May '13 - 10:21 »
Hi ;D

I can't send it now, because I've made some compatibility break changes in library and headers.
I'm about to revert compatibility break changes, to remain in library, but no in documentations, then you'll be able to test it ;)
« Last Edit: 15 May '13 - 12:27 by (: JOBnik! :) »

(: JOBnik! :)

  • Posts: 1080
Re: BASS_FX 2.4.9
« Reply #594 on: 29 May '13 - 13:57 »
Hi ;D

Please test this one. It won't break compatibility with BASS 2.4 version and with your application:
http://www.jobnik.org/files/bass_fx.dll

In a couple days the final release should be ready.
« Last Edit: 29 May '13 - 14:34 by (: JOBnik! :) »

nadia

  • Posts: 332
Re: BASS_FX 2.4.9
« Reply #595 on: 29 May '13 - 14:41 »
Hi  ;D

this update seems to fix the issue ;D ;D
Do you have the build for x64 also?

Kind Regards  ;D

Nadia

Hi ;D

Please test this one. It won't break compatibility with BASS 2.4 version and with your application:
http://www.jobnik.org/files/bass_fx.dll

In a couple days the final release should be ready.

(: JOBnik! :)

  • Posts: 1080
Re: BASS_FX 2.4.9
« Reply #596 on: 2 Jun '13 - 09:30 »
Hi ;D

I thought all packages would already be ready, but it will take me a few more days to complete and update all packages/API/docs/examples, so there you go for x64 version:
http://www.jobnik.org/files/bass_fx64.dll (rename it to bass_fx.dll)

rv

  • Guest
Re: BASS_FX 2.4.9
« Reply #597 on: 3 Jun '13 - 09:29 »
Hello,
I have a little problem with the echo2 fx.
In the documentation, you are saying thatthe fdrymix parameter is [-2..+2]
I don't know if it is a .net float convertion problem with negative values, but what I get is :
0 to +2 is exactly the same as 0 to -2.

SO +2  or  -2 are exactly the same = max amount.

Do your compiler is IEEE 754 for floating point numbers?

(: JOBnik! :)

  • Posts: 1080
Re: BASS_FX 2.4.10
« Reply #598 on: 3 Jun '13 - 15:59 »
Hi ;D

there's now version 2.4.10 is released

2.4.10 - 02/06/2013
-------------------
* BASS_FX:
   * Please see DSP and BPM sections for decprecated effects/functions.
     To not break compatibility with BASS 2.4 version, these effects and functions will still remain in BASS_FX,
     but are removed from documentations and will be totally removed from BASS_FX in the future.
   * BASS_ERROR_FX_NODECODE error code *removed*, will return BASS_ERROR_DECODE instead (Tempo/Reverse/BPM/Beat)
   * BASS_ERROR_FX_BPMINUSE error code *removed*, will return BASS_ERROR_ALREADY instead (BPM/Beat)
   * Tempo and BPM functions updated to latest SoundTouch library version 1.7.1

* Tempo:
  * Multi-channel support is added, but:
     * No SSE optimizations
     * BASS_ATTRIB_TEMPO_OPTION_USE_AA_FILTER is by default set to FALSE on iOS, Android, WinCE and Linux ARM platforms for lower CPU usage
     * Not part of SoundTouch library, sources will be sent to Olli Parviainen after BASS_FX release
  * Sound quality improvements
  * Improved output sound stream duration to match better with ideal duration
  * Fixed BASS_ERROR_UNKNOWN issue with Windows 8 x64, posted in this thread:
    http://www.un4seen.com/forum/?topic=14499.0

* BPM:
  * BASS_FX_BPM_Translate and all of its options, BASS_FX_BPM_TRAN_xxx, are *deprecated*
  * BPMPROCESSPROC *renamed* to BPMPROGRESSPROC
  * BPM example is updated to fit above changes
  * Tuned detection algorithm
  * Fixed detection bug in Android, WinCE & Linux ARM platforms, for returning odd values
  * Fixed percents bug in BPMPROGRESSPROC
  * Changed default min/max BPM window to SoundTouch's 29/200

* Beat:
  * Fixed regression since version 2.4.8 in BASS_FX_BPM_BeatDecodeGet function,
    that would free a "chan" when detection is completed, as described in this thread:
    http://www.un4seen.com/forum/?topic=2181.msg102805#msg102805

* DSP:
  * Ported all effects to Android, WinCE & Linux ARM platforms

  * BASS_FX_BFX_ROTATE:
        added new structure "BASS_BFX_ROTATE" with params:
        "fRate"    - set the rotation rate/speed in Hz between channels
        "lChannel" - multi-channel support, only for even number of channels

  * BASS_FX_BFX_ECHO4:
        added new effect and structure "BASS_BFX_ECHO4" with params:
        "fDryMix"   - unaffected signal mix
        "fWetMix"   - affected signal mix
        "fFeedback" - output signal to feed back into input
        "fDelay"    - delay seconds
        "bStereo"   - even channels are echoed to each other if enabled
        "lChannel"  - multi-channel support

  * BASS_FX_BFX_ECHO        - *deprecated*, use BASS_FX_BFX_ECHO4
  * BASS_FX_BFX_ECHO2       - *deprecated*, use BASS_FX_BFX_ECHO4
  * BASS_FX_BFX_ECHO3       - *deprecated*, use BASS_FX_BFX_ECHO4
  * BASS_FX_BFX_REVERB      - *deprecated*, use BASS_FX_BFX_ECHO4 with fFeedback enabled
  * BASS_FX_BFX_FLANGER     - *deprecated*, use BASS_FX_BFX_CHORUS
  * BASS_FX_BFX_COMPRESSOR  - *deprecated*, use BASS_FX_BFX_COMPRESSOR2
  * BASS_FX_BFX_APF         - *deprecated*, use BASS_FX_BFX_BQF with BASS_BFX_BQF_ALLPASS filter
  * BASS_FX_BFX_LPF         - *deprecated*, use 2x BASS_FX_BFX_BQF with BASS_BFX_BQF_LOWPASS filter and appropriate fQ values

Hello,
I have a little problem with the echo2 fx.
In the documentation, you are saying thatthe fdrymix parameter is [-2..+2]
I don't know if it is a .net float convertion problem with negative values, but what I get is :
0 to +2 is exactly the same as 0 to -2.

SO +2  or  -2 are exactly the same = max amount.

Do your compiler is IEEE 754 for floating point numbers?

Tested and it should be fine changing from -2 to +2... I'll recheck it.
« Last Edit: 3 Jun '13 - 16:10 by (: JOBnik! :) »

zittergie

  • Posts: 31
Re: BASS_FX 2.4.10
« Reply #599 on: 4 Jun '13 - 14:07 »
Thanks,

works fine on the Raspberry Pi.
Still using BASS_FX_BFX_ECHO, BASS_FX_BFX_REVERB & BASS_FX_BFX_FLANGER so I have to adept to the new BASS_FX_BFX_ECHO4 & BASS_FX_BFX_CHORUS.