BASS_FX 2.4.12.1

Started by (: JOBnik! :),

Chris

#140
So sorry about the Delay.....the last days I have had not so much time...
The New Release will working fine..!!!
Only one Thing a little bit  scraper if the Parameters  of
fThreshold ,fAttacktime,fReleasetime at the Min Values(0.1 - 0.5) Maybe its better to set the MinValues a little bit higher
But i must say the Effekt is very stable
One Question about the Compressor
The FX Compressor will have one Great Effekt if a Audiosong is a liitle bit clipped
with the Active FX Compressor the Clipping is going...is that from the Theory with the DSP Compressor also possible ??
Greets Chris


HarryHar

Just wondering am I doing something wrong or is it not possible to count the BPM of a WMA file. returns 0 everytime.

Also, i get a lot of floating point errors with a lot of songs (MP3). Anu ideas ???

gr. Harold

Chris

#142
Hi
var
 BPMHandle : HStream;
begin
  bpmHandle := BASS_StreamCreateFile(false, PChar(FileName), 0,
        0, BASS_SAMPLE_LOOP or  BASS_STREAM_DECODE);
      if (bpmHandle = 0) then
        bpmHandle := BASS_WMA_StreamCreateFile(false,
          PChar(FileName), 0, 0, BASS_SAMPLE_LOOP or  BASS_STREAM_DECODE);
   If BPMHandle <> 0 then begin
     //Do some Stuff
   end;

Greets Chris
about your FloatingPoint Errors Show please the Rest of your Code
 

Chris

#143
@ JOBnik!
I will have here some Problems with the Updated BASS_FX_DSPFX_DAMP
Auto Decreasing The Level will work ...
but
Auto Increasing The Level will not longer work !!!
Do you have change some thing in the Beta Release ???
Greets Chris

Chris

#144
Hi
The Final Bass_FX.dll will working Fine now
(The Bug in the BASS_FX_DSPFX_DAMP is History  :)

Good working !!!!!
One Question
BASS_DSPFX_APF (ALL Pass Filter)
It seams that this Filter will have the Same Effect as BASS_FX_DSPFX_REVERB .....
and
BASS_FXDSPFX_LPF (LOWPASSFILTER)
it seams that this Filter will have the same Effect  as BASS_FX_DSPFX_S2M

Greets Chris

georgebou

Hello Jobnik.
I use the code below and the GetPosFloat returns wrong file length in Secs.
Var
   GetPosQword:Int64;
   GetPosDword:Cardinal;
   GetPosFloat:Extended;

 // Free musics
 If BASSAPI_HandleOf_MOD<>0 Then Begin
    BASS_MusicFree(BASSAPI_HandleOf_MOD);
 End;
 // Handle flags for MOD Files
 GenerateFlagForMODFiles:=BASS_MUSIC_CALCLEN or BASS_STREAM_DECODE;

 BASSAPI_HandleOf_MOD := BASS_MusicLoad(FALSE, f, 0, 0, GenerateFlagFor_Files,0);
BASSAPI_HandleOf_MOD := BASS_FX_TempoCreate(BASSAPI_HandleOf_MOD, BASS_FX_FREESOURCE);
                    GetPosDword:=BASS_MusicGetLength(BASSAPI_HandleOf_MOD,TRUE);
GetPosQword:=GetPosDword;
GetPosFloat:=BASS_ChannelBytes2Seconds(BASSAPI_HandleOf_MOD,GetPosQword);

When i Don't use the
BASSAPI_HandleOf_MOD := BASS_FX_TempoCreate(BASSAPI_HandleOf_MOD, BASS_FX_FREESOURCE);
the file length in Secs is calculated correctly.
What's going on? This happens only with HMusic Music files

(: JOBnik! :)

Hi ;D

You can get the file length before creating a Tempo stream, or just don't forget that you've to get the length of the original/source handle with: BASS_FX_TempoGetSource(..) function :)

e.g:
GetPosDword:=BASS_MusicGetLength(BASS_FX_TempoGetSource(BASSAPI_HandleOf_MOD),TRUE);
Have fun!

8) JOBnik! 8)

Chris

#148
Hi
I have still dedected a Crash in the Bass_fx.dll
it seams to be The Call  Bass_ChannelGetData inside of  the Bass_FX.dll
EAccessViolation by Adress  03009856 in Modul 'bass_fx.dll  Reading Adress of 045DD000

thread $5d0: <priority:15>
03009856 +00 bass_fx.dll
77c0a3ad +a6 msvcrt.dll            _endthreadex
0042faaf +27 PC_Pro.exe  madExcept ThreadExceptFrame

main thread ($fb4):
7c90eb94 +000 ntdll.dll                       KiFastSystemCallRet
7c90e9be +00a ntdll.dll                       NtWaitForSingleObject
7c919016 +087 ntdll.dll                       RtlpWaitForCriticalSection
7c901046 +041 ntdll.dll                       RtlEnterCriticalSection
1001bdc3 +399 bass.dll                        BASS_ChannelGetData
1001c42a +075 bass.dll                        BASS_ChannelGetLevel
733a9599 +00a MSVBVM60.DLL                    BASIC_CLASS_Release
004cb345 +01d PC_Pro.exe   Player_A  2073  +1 TPlayerA.SetVuMeter
005ae7eb +05b PC_Pro.exe   MainForm  3133  +6 TForm_Raum_1.pos_timer_2Timer
00477ddf +01b PC_Pro.exe   ExtCtrls  1620  +1 TTimer.Timer
00477c4b +02f PC_Pro.exe   ExtCtrls  1578  +4 TTimer.WndProc
00457e50 +014 PC_Pro.exe   Classes  10565  +8 StdWndProc
77d1bcc7 +00a user32.dll                      DispatchMessageA
004ada5c +0ac PC_Pro.exe   Forms     6696 +13 TApplication.ProcessMessage
004adaa3 +00f PC_Pro.exe   Forms     6715  +1 TApplication.HandleMessage
004add3e +0a6 PC_Pro.exe   Forms     6799 +16 TApplication.Run
005c4b0d +29d PC_Pro.exe   PC_Pro      76 +35 initialization

disassembling:
0300984a loc_300984a:
0300984a   cmp     edx, ecx
0300984c   jge     loc_300988c
0300984c
0300984e   mov     eax, edx
03009850   add     edx, [ebp+$10]
03009853   shl     eax, 2
03009850
03009856 sub_3009856:                     ; function entry point
03009856 > fld     dword ptr [esi+edx*4]
03009859   fsub    dword ptr [eax+esi]
0300985c   fcomp   dword ptr [$300b140]
03009862   fnstsw  ax
03009864   test    ah, $41
03009867   jp      loc_3009882
03009867
03009869   test    ebx, ebx
0300986b   jz      loc_300986e
0300986b
0300986d   dec     ebx
0300986b
0300986e loc_300986e:
0300986e   fcom    dword ptr [esi+edx*4]
03009871   fnstsw  ax
03009873   test    ah, $41
03009876   jnz     loc_3009888
03009876
03009878   fstp    st
0300987a   fld     dword ptr [esi+edx*4]
0300987d   mov     [ebp+8], edx
03009880   jmp     loc_3009888
03009880
03009880 ; ---------------------------------------------------------
03009880
03009882 loc_3009882:
03009882   inc     ebx
03009883   cmp     ebx, 5
03009886   jg      loc_300988c
03009886
03009888 loc_3009888:
03009888   cmp     edx, edi
0300988a   jg      loc_300984a
0300988a
0300988c loc_300988c:
0300988c   mov     eax, [ebp+8]
0300988f   pop     edi
03009890   pop     esi
03009891   pop     ebx
03009892   fstp    st
03009894   pop     ebp
03009895   ret     $c
Greets Chris

nadia

Hi,  ;D

2 questions:

1- does the BASS_FX_TempoGetSource returns a valid handle if the BASS_FX_TempoCreate was called using the BASS_FX_FREESOURCE flag? From the documentation I cannot find this information.

2- if I call the BASS_FX_TempoGetSource without specifying BASS_FX_FREESOURCE flag, how will the original channel be deallocated?

Thanks in advance and Kind Regards  ;D

Nadia

(: JOBnik! :)

#150
Hi ;D

Quote from: nadia1- does the BASS_FX_TempoGetSource returns a valid handle if the BASS_FX_TempoCreate was called using the BASS_FX_FREESOURCE flag? From the documentation I cannot find this information.

That  flag has nothing to do with the returned value, all it does is to check if the user wants BASS_FX to free the source handle as well when calling BASS_StreamFree function or not, i.e. not freeing the source handle, that has created using BASS_StreamCreateFile(..,BASS_STREAM_DECODE) function, so without that flag you'll have to do it by yourself ;)

i.e:
1. Creating a Tempo stream without BASS_FX_FREESOURCE will only free the handle created with BASS_FX_TempoCreate function.

2. Creating a Tempo stream using BASS_FX_FREESOURCE will free the handles created with BASS_StreamCreateFile and BASS_FX_TempoCreate as well ;)

Quote from: nadia2- if I call the BASS_FX_TempoGetSource without specifying BASS_FX_FREESOURCE flag, how will the original channel be deallocated?

Are you sure you wrote a right function? I think you meant to write about BASS_FX_TempoCreate? if so, check the explanations above ;)

BASS_FX_TempoGetSource returns the handle of the e.g: BASS_StreamCreateFile function.

@Chris, which effect are you using? :)

Have fun!

8) JOBnik! 8)

nadia

Hi JOBnik,  ;D

thanks for your answer: I was believing that calling BASS_FX_TempoCreate with BASS_FX_FREESOURCE flag would have caused an immediate free of the original stream decoding channel created using  BASS_StreamCreateFile: instead this flag simply tells to the future call to BASS_StreamFree function to free the original decoding channel and also the resampled channel? Have I understood correctly?  ;)

Kind Regards  ;D

Nadia

Chris

#152
 Hi JOBnik
BASS_FX_DSPFX_DAMP,

The curious is that the Crash will not come on the same File sometimes it will crash sometimes not...
After the Crash the Sound will hang in a Endless Loop (Playing the Last Buffers in a Endless Loop)
Greets Chris

I forget
i have no change made on the  Standard Parameters

MB_SOFT

Hi JOBnik,
hope you're fine now!!
I'm sorry to bother you with the same problem: i have some file sthat play totally silently when using BASS_FX_DSPFX_DAMP with 16 bit buffers.
Here is an exemple:
http://www.mbsoft.biz/download/radiojingle.mp3
If you try this file in a 16 bit buffer with the following parameters:
.fTarget = 0.96
.fQuiet = 0.01
.fRate = 0.05
.fGain = 1.0
.fDelay = 0.2
you'll hear only silence....
Note that just changing .fdelay to 0.3 it play fine....

Hope you have some time to check calculations in the DAMP source code...
Anyway thank you for your this great fx dll

Angel

in order to get the BPM of a file via bass_fx, does the stream has to be a decoding stream? or will a regular stream work aswell?

big_gun

Typically a decoding stream works. Don't worry, you can open the same file, once normal, and once for decoding at the same time...

Rick

big_gun

Oh, By The Way:

Bass for VB.NET and C# has been updated to reflect the changes in version 2.1.0.1 of Bass_FX.

Download it here http://www.un4seen.com/bass.html#addons

Angel

Quote from: big_gunTypically a decoding stream works. Don't worry, you can open the same file, once normal, and once for decoding at the same time...

Rick

well,i don't want to use a decoding stream next to my normal stream if it isnt really needed, the old bpmf.dll had an example which i used, unfortunatly,using that causes a slight 'hang' in the system while the BPM is being calculated. Another decoding stream next to my normal stream means more resources (altho it wouldnt be much).Reading the bassfx help file,i come to the conclusion that i can get the bpm from a non decoding stream with 'BASS_FX_BPM_CallbackSet', but i migh be mistaken,the helpfile isnt really as clear as the bass helpfile is

(: JOBnik! :)

Hi ;D

Quote from: nadiathanks for your answer: I was believing that calling BASS_FX_TempoCreate with BASS_FX_FREESOURCE flag would have caused an immediate free of the original stream decoding channel created using  BASS_StreamCreateFile: instead this flag simply tells to the future call to BASS_StreamFree function to free the original decoding channel and also the resampled channel? Have I understood correctly?  ;)

Well... think of it the other way around ;) if this flag would free the source handle, then you would hear silence, you know... ;)

You've understood correctly! ;)

Quote from: ChrisBASS_FX_DSPFX_DAMP,

The curious is that the Crash will not come on the same File sometimes it will crash sometimes not...
After the Crash the Sound will hang in a Endless Loop (Playing the Last Buffers in a Endless Loop)

Are you using some other effects as well, Tempo, Reverse or BPM? Because DynamicAMP has nothing to do with BASS_ChannelGetData(..) function. Please send me the dr. watson's debug file or the full debug info, and if you can please send a file that may reproduce the crash :)

Quote from: MB_SOFThope you're fine now!!

Thanks :) getting better :)

Quote from: MB_SOFTI'm sorry to bother you with the same problem: i have some file sthat play totally silently when using BASS_FX_DSPFX_DAMP with 16 bit buffers.
Here is an exemple:
http://www.mbsoft.biz/download/radiojingle.mp3
If you try this file in a 16 bit buffer with the following parameters:
.fTarget = 0.96
.fQuiet = 0.01
.fRate = 0.05
.fGain = 1.0
.fDelay = 0.2
you'll hear only silence....
Note that just changing .fdelay to 0.3 it play fine....

Hope you have some time to check calculations in the DAMP source code...

As I've already said :) the file is playing fine here and the file before that. It plays fine with 16 and 32 bits.

I've made a loop that starts the sound from 6% and it raised to what I've choosed and no silence at all :)

My system is: Intel P4 3.0GHz, RealTek 7.1 (onboard) sound card, DirectX 9.0c, WinXP PRO SP2 with latests sound drivers... which system do you have?

Quote from: MB_SOFTAnyway thank you for your this great fx dll

You're welcome and thank you and all who're using BASS_FX :)

Quote from: Angelwell,i don't want to use a decoding stream next to my normal stream if it isnt really needed, the old bpmf.dll had an example which i used, unfortunatly,using that causes a slight 'hang' in the system while the BPM is being calculated. Another decoding stream next to my normal stream means more resources (altho it wouldnt be much).Reading the bassfx help file,i come to the conclusion that i can get the bpm from a non decoding stream with 'BASS_FX_BPM_CallbackSet', but i migh be mistaken,the helpfile isnt really as clear as the bass helpfile is

1st of all you don't have to use the decoding channel for detecting the BPM, as you've found out you can use BASS_FX_BPM_CallbackSet(..) function. The decoding BPM check is good if you want to check the BPM of a file from that exact point to another with almost no time :) the other options Callback will only calculate the BPM from the last choosen seconds, e.g. you want to know a BPM every 10 (or else) seconds (you'll get a BPM after the seconds number you've choosed).
I'll see what kind of improvements can I add to the helpfile ;)

Quote from: big_gunOh, By The Way:

Bass for VB.NET and C# has been updated to reflect the changes in version 2.1.0.1 of Bass_FX.

Download it here http://www.un4seen.com/bass.html#addons

There're still some errors in APIs there ;) I'll send you the list of correction to do ;)

Thank you :)

Have fun!

8) JOBnik! 8)

MB_SOFT

#159
As I've already said  the file is playing fine here and the file before that. It plays fine with 16 and 32 bits.
I've made a loop that starts the sound from 6% and it raised to what I've choosed and no silence at all


Thank you for your reply and tests.
I'm surprised you was not able to reproduce the problem as i'm having the problem to all my users on very different hardware/os systems. Note that the problem occurs when starting play the file from the absolute begin position; if i seek the start position of 1 or 2 seconds then it play fine.
Here there is another "silent" file:
http://www.mbsoft.biz/download/introspot.mp3
I remarked that the problem occur with files having some gap on top.
Do you have any test application to run on my computer to check the problem?

Here the calls sequence on my application:
BASS_StreamCreateFile
BASS_StreamGetLength
BASS_ChannelBytes2Seconds
BASS_FX_DSP_Set
BASS_ChannelPlay

System:
Windows: XP Service Pack 2 2600
Pc Freq: 1534 Mhz - AuthenticAMD - 1 Cpu(s) - 0
Free Ram: 348 MB
DirectX version is: 9
Bass.dll version: 2. 1
BassFx.dll version: 2. 1
BASS_GetDeviceDescription: Periferica wave SB Live!
Latency is: 1 with a min buffer: 50
device driver: C:\WINDOWS\system32\drivers\emu10k1m.sys - 5.12.1.3300
Bass DLL buffer: 500
Bass DLL period is: 100